Blob Blame History Raw
This is a summary of the steps required to make a new release.  Do not
attempt to run these manually - instead use the 'makerelease'
application and makerelease.xml file.  Get 'makerelease' from the
makerelease repository:

  git clone https://github.com/hardaker/makerelease
  cd makerelease
  perl Makefile.PL
  make
  sudo make install

Then to run it from a directory to release:

  makerelease -c NETSNMPTRUNK/dist/makerelease.xml

It will prompt you for all needed information and tasks to be done.

IMPORTANT NOTE:
    Don't *ever* release a second tar ball under the same name as the
    first.  It's much much much better to release another version
    instead, since you don't have to figure out from the bug reports
    that a user really grabbed the first snapshot instead of the
    second when they complain about version "XXX" not working.

====== makerelease -n output showing makerelease documented steps ======

STEP: 1: Setup Steps

  This set of steps will do some preliminary "safety" checks to ensure the
  local environment is ok and setup some important information.

  ===== Entering Step: 1 =====

STEP: 1.1: Setup Checck

  This should show the last version number published in this branch by
  looking at the time line in the README file:

  Commands to execute:

    head -1 README

STEP: 1.2: Pick a Version Number

  Please enter the version number to publish.  Net-SNMP convention dictates
  that this be a version number like 5.4 or 5.4.1.  Pre-releases that occur
  before a branch freezes should be appended with ".preN" like 5.4.1.pre2. 
  Release-candidates should be labeled ".rcN" like 5.4.1.rc1.

  Decide on a value for parameter 'VERSION'

    parameter: VERSION

    prompt:    Enter the new version number:

STEP: 1.3: Defining a second internal version string

  Internal perl code will be executed

STEP: 1.4: Release Parameter Information

  Here is the configured information we'll be using:

  VERSION:		   {VERSION}

  VERSION with dashes:	   {VERSIONDASHES}

  Floating point VERSION:  {VERSIONFLOAT}

  Branch URL:		   {BRANCHPATH}

STEP: 1.5: update

  We need to make sure your code is up to date and matches the latest
  sources in this branch.

  Commands to execute:

    svn update

STEP: 1.6: Check for changes

  This steps looks for outstanding files that have been modified.  There
  should be no outstanding modifications!  If this step finds outstanding
  modified files you need to check them in or revert them before
  continuing!

  Commands to execute:

    svn -u status | egrep '^[^\?]'

  (Leaving Step: 1)

STEP: 2: Source Code Setup

  This set of steps will modify various places within the source code tree
  to bring it up to date with the new version number about to be published.

  ===== Entering Step: 2 =====

STEP: 2.1: Libtool / Library versioning setup

  These steps will modify the various files in the source tree that contain
  the version number, show you the changes that will be made and then check
  in the resulting changes if you approve of them.

  ===== Entering Step: 2.1 =====

STEP: 2.1.1: version:libtoolmanualedit

  You (may) need to edit Makefile.top to update the library version
  numbering (usually just for the first pre-release of a given version). 
  See the comments in RELEASE-INSTRUCTIONS about LIBCURRENT, LIBAGE and
  LIBREVISION.

  This script will commit the file for you after you're done.

STEP: 2.1.2: version:commit

  We'll now commit the Makefile.top file if you've modified it.

  Commands to execute:

    svn commit -m "version update" Makefile.top

  (Leaving Step: 2.1)

STEP: 2.2: Change The Version Number

  These steps will modify the various files in the source tree that contain
  the version number, show you the changes that will be made and then check
  in the resulting changes if you approve of them.

  ===== Entering Step: 2.2 =====

STEP: 2.2.1: Modify the source files

  We will now modify files through the code to replace the version number
  with the newer one.

  Modifying files:

    replacing: 'VERSION = '(.*)'' with: 'VERSION = \'{VERSIONFLOAT}\''


    files:  glob=ARRAY(0x8dc9064)

      perl/SNMP/SNMP.pm

      perl/agent/agent.pm

      perl/agent/Support/Support.pm

      perl/agent/default_store/default_store.pm

      perl/default_store/default_store.pm

      perl/OID/OID.pm

      perl/ASN/ASN.pm

      perl/AnyData_SNMP/Storage.pm

      perl/AnyData_SNMP/Format.pm

      perl/TrapReceiver/TrapReceiver.pm



  Modifying files:

    replacing: 'NetSnmpVersionInfo = "[\d\.]+"' with: 'NetSnmpVersionInfo =
  "{VERSION}"'


    files:  glob=ARRAY(0x8dc8fd4)

      snmplib/snmp_version.c



  Modifying files:

    replacing: 'Version: [\.0-9a-zA-Z]+' with: 'Version: {VERSION}'


    files:  glob=ARRAY(0x8dc8f44)

      README

      FAQ

      dist/net-snmp.spec



  Modifying files:

    replacing: 'VERSION = [\.0-9a-zA-Z]+' with: 'VERSION = {VERSION}'


    files:  glob=ARRAY(0x8dc8ed4)

      dist/Makefile



  Modifying files:

    replacing: 'AC_INIT\(\[Net-SNMP\], \[([^\]]+)\]' with:
  'AC_INIT([Net-SNMP], [{VERSION}]'


    files:  glob=ARRAY(0x8dc8e64)

      configure.in



  Modifying files:

    replacing: 'NetSnmpVersionInfo = "[^"]+"' with: 'NetSnmpVersionInfo =
  "{VERSION}"'


    files:  glob=ARRAY(0x8dc8df4)

      snmplib/snmp_version.c



STEP: 2.2.2: Running autoconf to rebuild configure

  We modified configure.in, so we now need to run autoconf to rebuild
  configure.

  XXX: in the future we should verify the correct autoconf version number

  Commands to execute:

    autoconf

STEP: 2.2.3: Running svn diff to check changes

  Check the following changes for proper version number differences before
  we commit the chances.

  Commands to execute:

    svn diff

STEP: 2.2.4: Running svn commit to commit the changes

  Check the changes in the above diff and then we'll commit the results
  here if they look ok.

  Commands to execute:

    svn commit -m "Version number update"

  (Leaving Step: 2.2)

STEP: 2.3: docs:make

  This step will create manual pages from doxygen instrumented code files.

  Commands to execute:

    make docs

    make mancp

STEP: 2.4: docs:update

  This will run svn status to figure out what files have changed since the
  previous man page generation steps were done.  After this step, we'll
  commit all the modified files.

  You may find additional files (marked with a ?) that should be added to
  the svn repository and you'll need to do this by hand before going on to
  the next step.

  Note: based on a recent net-snmp-admin discussion, we're no longer going
  to be adding the bazillions of man pages that doxygen generates by
  default.  Only important ones should be added.

  Commands to execute:

    svn -u status man

STEP: 2.5: docs:manualaddnewman

  Update man/Makefile.in with details of any new man pages, and run 'svn
  add' on them.

  I'll commit these changes for you after you're done.

STEP: 2.6: docs:commit

  Commands to execute:

    svn commit -m "documentation update" man

  (Leaving Step: 2)

STEP: 3: Testing Steps

  These steps will help you test the source code to ensure it passes some
  simple "it works" tests.

  ===== Entering Step: 3 =====

STEP: 3.1: build:distclean

  First we need to clean the existing build tree and start from scratch.

  Commands to execute:

    make distclean

STEP: 3.2: build:configure

  We need to run configure to set up the build tree.

  Commands to execute:

    ./configure --cache=config.cache --with-defaults
  --with-mib-modules='host examples examples/example testhandler smux Rmon
  disman/event-mib' --with-transports=IPX --enable-ipv6
  --enable-embedded-perl --enable-shared

STEP: 3.3: build:make

  Then we need to build the code

  Commands to execute:

    make

STEP: 3.4: build:test

  Now we run "make test" which should produce a perfect set up test
  results.  If not, this needs to be fixed or at least understood and
  accepted as is for some other reason.

  Commands to execute:

    make test TESTOPTS=-n

STEP: 3.5: code:checkcomments

  This command looks for source code oddities and policy violations.

  Commands to execute:

    make checks

  (Leaving Step: 3)

STEP: 4: Release File Steps

  Certain files in the distribution and built on a per-release basis. 
  These steps will help set up these files.

  ===== Entering Step: 4 =====

STEP: 4.1: code:makedepend

  This step creates Makefile dependencies using the "distdepend" rule in
  the top level Makefile.

  Commands to execute:

    make distdepend

STEP: 4.2: code:commitdepend

  This step commits the dependency changes done in the previous step.

  Commands to execute:

    svn commit -m "make depend" `find . -name Makefile.depend`

STEP: 4.3: changelog:svn2cl

  We need to extract the portions of the change logs committed to the
  repository.

  Commands to execute:

    svn2cl -f ChangeLog.add --break-before-msg --stop-on-copy

    perl dist/changelogfix  < ChangeLog.add > ChangeLog.reallyadd

STEP: 4.4: changelog:manualedit

  You need to manually insert the *relevent* portions of
  'ChangeLog.reallyadd' into the ChangeLog file. I'll commit these changes
  for you after you finish cutting out the proper changes.

STEP: 4.5: changelog:commit

  Commands to execute:

    svn commit -m "version update" ChangeLog

STEP: 4.6: docs:newnews

  Commands to execute:

    perl dist/extractnews -s ----- -e ----- ChangeLog

STEP: 4.7: docs:newnews

  Commands to execute:

    perl dist/extractnews -c CHANGES.new2 -n NEWS.new2 ChangeLog.reallyadd

STEP: 4.8: docs:README

  You need to manually insert the relevent portions of 'CHANGES.new' and
  'NEWS.new' into the CHANGES and NEWS file. (There are alternative
  versions in 'CHANGES.new2' and 'NEWS.new2') You may wish to update the
  README file as well. I'll commit these changes for you afterwards

STEP: 4.9: docs:commit

  Commands to execute:

    svn commit -m "version update" README NEWS CHANGES

STEP: 4.10: release:update

  One more svn update and status to make sure nothing odd exists in your
  source tree.	Please check the results!

  Commands to execute:

    svn -u status

  (Leaving Step: 4)

STEP: 5: Make the Release

  This is it!  After this point it's much harder to turn back.	If
  everything is ok until this point and you're ready to actually stamp the
  release in git and make release files, these steps will do that for you.

  ===== Entering Step: 5 =====

STEP: 5.1: release:tag

  This will actually svn copy the current checked out branch to the new tag
  name.  Specifically:

  svn copy {BRANCHPATH} .../tags/Ext-{VERSIONDASHES}

  Commands to execute:

    svn copy -m "{VERSION} release" {BRANCHPATH}
  https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/tags/Ext-{VERSIONDA
  SHES}

STEP: 5.2: release:makedist

  Commands to execute:

    svn export
  https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/tags/Ext-{VERSIONDA
  SHES}/net-snmp net-snmp-{VERSION}

STEP: 5.3: release:removefiles

  Commands to execute:

    net-snmp-{VERSION}/remove-files net-snmp-{VERSION}

STEP: 5.4: release:makedist

  Commands to execute:

    star artype=ustar -c -z -f net-snmp-{VERSION}.tar.gz 
  net-snmp-{VERSION}

STEP: 5.5: release:makezipclean

  Commands to execute:

    rm -f net-snmp-{VERSION}.zip

STEP: 5.6: release:makezip

  Commands to execute:

    zip -r net-snmp-{VERSION}.zip  net-snmp-{VERSION}

STEP: 5.7: release:searching-gpg-keys

  Commands to execute:

    gpg --list-secret-keys net-snmp-admin

STEP: 5.8: release:gpg

  Commands to execute:

    gpg -u 317F8F64 -a --detach-sign net-snmp-{VERSION}.tar.gz

STEP: 5.9: release:gpg

  Commands to execute:

    gpg -u 317F8F64 -a --detach-sign net-snmp-{VERSION}.zip

STEP: 5.10: Release File Test

  We'll also re-build the source and retest a few things to ensure the
  packaged file can actually be built.

  ===== Entering Step: 5.10 =====

STEP: 5.10.1: posttest:untar

  Commands to execute:

    rm -rf net-snmp-{VERSION}

STEP: 5.10.2: posttest:untar

  Commands to execute:

    tar xzf net-snmp-{VERSION}.tar.gz

STEP: 5.10.3: posttest:configure

  Commands to execute:

    cd net-snmp-{VERSION} && ./configure --cache=config.cache
  --with-defaults --with-mib-modules='host examples examples/example	
  testhandler smux Rmon disman/event-mib' --with-transports=IPX
  --enable-ipv6 --enable-embedded-perl --enable-shared

STEP: 5.10.4: posttest:make

  Commands to execute:

    cd net-snmp-{VERSION} && make

STEP: 5.10.5: posttest:test

  Commands to execute:

    cd net-snmp-{VERSION} && make test

  (Leaving Step: 5.10)

  (Leaving Step: 5)

STEP: 6: Release the results

  Now we'll publish the results to the SF server

  ===== Entering Step: 6 =====

STEP: 6.1: rsync the new files

  This will copy the results to the SF uploads directory in your account on
  frs.sourceforge.net

  Commands to execute:

    rsync -v net-snmp-{VERSION}.tar.gz net-snmp-{VERSION}.tar.gz.asc
  net-snmp-{VERSION}.zip net-snmp-{VERSION}.zip.asc
  frs.sourceforge.net:uploads/

STEP: 6.2: Update the SF release web page

  Commands to execute:

    firefox
  'http://sourceforge.net/project/admin/editpackages.php?group_id=12694'

  (Leaving Step: 6)

STEP: 7: 

  Binaries: build rpms, .tar.gzs, etc.

STEP: 8: Advertise it!

  ===== Entering Step: 8 =====

STEP: 8.1: 

  Add a note to the source forge news system:

  http://sourceforge.net/news/submit.php?group_id=12694

  Commands to execute:

    firefox 'http://sourceforge.net/news/submit.php?group_id=12694'

STEP: 8.2: 

  Send an announcement message to one of the following mailing lists based
  on it's type:

  pre:	  net-snmp-coders@lists.sourceforge.net

  rc:	  net-snmp-users@lists.sourceforge.net

  final:  net-snmp-announce@lists.sourceforge.net

STEP: 8.3: 

  Update the topic on the #Net-SNMP channel if this is a trunk based
  release.

STEP: 8.4: 

  Update the freshmeat listing (Wes needs to do this):

  http://freshmeat.net/projects/net-snmp/

  Commands to execute:

    firefox http://freshmeat.net/projects/net-snmp/

  (Leaving Step: 8)

STEP: 9: 

  Advertise: NEWS upload to sf, publish on -announce, freshmeat, and the
  GNU FSF directory (http://directory.fsf.org/project/net-snmp/)... (send
  mail to bug-directory@gnu.org)





====== BEGIN OBSOLETE (pre-makerelease) DOCUMENTATION ======

***************************************************************************
TESTING:

  1) Update the source tree to catch all recent commits,
     and check that all local changes have been committed.

     $ svn -u status
     $ svn    update

  2) Change the libtool version information in Makefile.top.
     See MANUAL - STEP 1 later in these instructions.
     'makerelease' will commit this file automatically.

  3) Configure the suite with as many modules as possible,
     build and test it.  The makerelease script will use
     the options:

      $ ./configure  '--with-mib-modules=host examples examples/example  \
                              testhandler smux Rmon disman/event-mib'    \
                      --with-transports=IPX  --enable-ipv6               \
                      --enable-embedded-perl --enable-shared

     Ideally this should be repeated on as many systems as possible
     (including running "make install").  However the makerelease
     script will only test things on the current box, and will not
     try to install the software.


***************************************************************************
DOCUMENTATION:

  4)  Update the version number in the doxygen.conf file
      (handled automatically by 'makerelease') and generate
      the doxygen extracted manual pages.

        $ make docs
        $ make mancp

     'makerelease' will commit this file automatically.
     Note that any new man pages should be added to Makefile.in.
     This is *NOT* currently handled by the makerelease script.

  5) Check the code for illegal constructs (e.g. C++ style comments
     or GNU make specific constructs in Makefiles):

        $ make checks

  6) Update Makefile dependencies:

        $ make distdepend

     'makerelease' will commit these dependencies automatically.

  7) Update the ChangeLog file with details of all (recent) changes
     to the suite.  See MANUAL - STEP 2 later in these instructions.
     'makerelease' will commit this file automatically.

  8) Update the README, NEWS, and CHANGES files with details of
     significant changes to the suite.  See MANUAL - STEP 3 later
     in these instructions.
     'makerelease' will commit these files automatically.


***************************************************************************
RELEASE:

  9) Make sure all changes are checked in:

       $ svn -u status
       $ svn    update

     [Note that this step is omitted when running "makerelease"]

 10) Change the version number in various files
       (README, FAQ, configure.in, net-snmp.spec and assorted Perl modules).
     'makerelease' will update and commit these files automatically.

 11) Create a tag checkpoint for this release:

       $ svn copy  /trunk                 /tags/Ext-5-x
     or
       $ svn copy  /branches/V5-x-patches /tags/Ext-5-x-y

 12) Construct the source packages:

        $ svn export /tags/Ext-5-x-y/net-snmp net-snmp-5.x.y
        $ net-snmp-5.x.y/remove-files         net-snmp-5.x.y
        $ star artype=ustar -c -z -f net-snmp-5.x.y.tar.gz    net-snmp-5.x.y
        $ rm -f net-snmp-5.x.y.zip"
        $ zip -r net-snmp-5.x.y.zip net-snmp-5.x.y"


 13) Sign (or checksum) the packages:

     Wes/Robert:
        $ gpg -u net-snmp-admin -a --detach-sign net-snmp-5.x.y.tar.gz
        $ gpg -u net-snmp-admin -a --detach-sign net-snmp-5.x.y.zip
     Others:
        $ md5sum net-snmp-5.x.y.tar.gz > net-snmp-5.x.y.tar.gz.md5
        $ md5sum net-snmp-5.x.y.zip    > net-snmp-5.x.y.zip.md5


***************************************************************************
RELEASE TESTING:

 14) Unpack a clean copy of the tarball, configure, build and
     test the release tarball.

 15) Double-check that there are no outstanding changes that have
     been missed from the CVS checkin:

        $ svn status

Note:  This is the last stage that is handled by the "makerelease" script
       Everything following will need to be done manually.

 15) Upload the packages (and signature files) to the SourceForge server:
 
        $ ncftpput upload.sf.net incoming net-snmp-5.x.y.tar.gz
        $ ncftpput upload.sf.net incoming net-snmp-5.x.y.zip
        * SF pages:  "Admin" -> "File Releases"
        * net-snmp:  "Add Release" (or "Edit Release")
        * Create (or choose) an appropriate release name
             e.g.  "5.x.y source code"  (or "5.x.y pre-releases")
        * "Edit This Release"
        * Select the tarball and/or other relevant files

 16) Announce the release on the appropriate list.
     Pre-release announcements (and a call for testing) should be
     sent to net-snmp-coders, release-candidates to net-snmp-users.

     Full releases should be announced on net-snmp-users, and as a
     news item on the project home page - including the NEWS snippet
     of significant changes since the last release.

 17) Update the following htdocs files (in the main git trunk):
         htdocs/download.html
         htdocs/dev/schedule.html

     [Make sure you have permissions set up properly on the web
      server so that files created become group-writable!!!]

     That concludes the process for pre-releases and release-candidates.
     For full releases, wait a week to ensure that there are no major
     problems, before continuing with the remaining steps.

        If there are known problems and another release is planned to
     fix them, don't announce the broken version - wait for the updated
     one instead.

 18) Once this week has elapsed, submit an announement of the new
     release to net-snmp-announce.  This message will need to be
     explicitly authorized via MailMan.

     Also update the IRC topic to include mention of this release.

 19) For a release on the most recent development line, start bugging
     Wes to update the freshmeat, Free Software Directory and
     Wikipedia entries.

 20) For a release on the most recent development line, update the
     'htdocs/page-top.html' file (in the main git trunk) to reference
     the latest version.

     Update the following files with any changes:

         htdocs/docs/readmefiles/NEWS
         htdocs/docs/readmefiles/CHANGES
         htdocs/docs/readmefiles/README*
         htdocs/COPYING

     [Make sure you have permissions set up properly on the web
      server so that files created become group-writable!!!]
         

 21) For a major new-feature release (i.e. 5.x), create the patches
     branch:

        $ git co -b  V5-x-patches

     and update the git main trunk with a new version number:

        $ local/Version-Munge.pl -v 5.(x+1).dev -M -P -C

     The 1 week delay (and continued code freeze) is to to ensure that
     developer effort is concentrated on immediate problems following
     the release.  Any major problems should hopefully come to light
     during this period, so after a week it should be safe to create
     the patches branch and officially end the code freeze on MAIN.

 22) Update the official patches tracker set:

     - any patches for this new release tarball should be given
       priority 9
     - all patches for the previous release on this line should
       be marked at priority 5
     - all patches for earlier releases on this line should
       be marked at priority 1, and closed

     If a line has been designated closed, then all official
     patches for that line should be marked as closed as well.

 23) Hide the pre-release repository from the File Releases
     admin pages.

 24) Clean up the 'dist' dir of the relevant V5-x-patches branch.
     Only leave the following files:

     changelogfix  cvsshow  cvsup  extractnews  makerelease
     net-snmp.spec  snmpd-init.d  snmptrapd-init.d

     Note that any files removed should also be deleted from
     git repository.


***************************************************************************
CREATING BINARY DISTRIBUTIONS

  0) Always REMOVE ALL PREVIOUS INSTALLS FIRST, then do a make install
     from the tar-ball extracted sources and *THEN* rebuild all
     binaries again.  This ensures that everything (especially perl
     modules) are properly linked against the right libraries.

  1) always build releases from a tarball, not from git.

  2) Add mib modules that are common.  Basically, add:

       host                      -- where supported.
       disman/event-mib
       smux

  3) use --with-defaults --with-syscontact="Unknown" 
                         --with-syslocation="Unknown"

  4) when running make install, do it like:

     $ make install prefix=/some/path/to/home/ARCH/usr/local \
            exec_prefix=/some/path/to/home/ARCH/usr/local
    
  5) Tar it up:

     $ cd /some/path/to/home/ARCH
     $ tar czf net-snmp-5.0.3-ARCH.tar.gz usr/local

  6) upload and release, like you did for the source code but with a
     different package name for binaries (5.0.3 binaries).

  7) RPMs [do this in main line even if its for a patch branch]:
     $ cd dist
     $ cp ../net-snmp-5.0.8.tar.gz rpm/SOURCES
     $ make RELEASE=1
     
     This should put multiple binary rpm files in:
       dist/rpm/RPMS/i386/
     And one source RPM in:
       dist/rpm/SRPMS/

     *** These files need to be renamed to include the OS version.

         EG: ...i386.rpm needs to become ...fc5.i386.rpm

  8) Remove (or hide) binaries from older releases of the same line,
     where you have submitted a newer binary for the same architecture.
     Once the last binary for a particular release version has been
     removed, hide that repository.
     

***************************************************************************
***************************************************************************
MANUAL - STEP 1

  Changing the libtool version information in Makefile.top.

      - If any interfaces/structures have been removed or changed since the
        last update, increment current (+5), and set age and revision to 0.
        Stop!

      - If any interfaces have been added since the last public release,
        then increment current and age, and set revision to 0.
        Stop!

      - If the source code has changed at all since the last update,
        then increment revision (c:r:a becomes c:r+1:a).

      Note: maintenance releases (eg 5.2.x) should never have changes
            that would require current to be incremented.

  The check-api-changes script in the dist directory will construct a
  diff of all headers, which can be useful for determining if anything
  needs bumping.

     Update these variables now, so that when you run
     make in a second to test things you can spot libtool yelling
     about improper numbering before you make the release and not
     after you've uploaded the tar ball :-/


***************************************************************************
MANUAL - STEP 2

  Changing the libtool version information in Makefile.top.
  Updating the ChangeLog file

      - The ChangeLog entries are extracted (normally automatically)
        using the command:

          $ svn2cl -f ChangeLog.add --break-before-msg --stop-on-copy

        If you don't have svn2cl installed, you can try and find a
        suitable binary package for your architecture, or you can
        get it directly from
              http://ch.tudelft.nl/~arthur/svn2cl
        You may need to rename the script from 'svn2cl.sh' to 'svn2cl'

      - In either case, they are fixed up (automatically) using:

          $ perl dist/changelogfix < ChangeLog.add > ChangeLog.reallyadd
        or
          $ perl dist/changelogfix V5-{N}-patches < ChangeLog.add > ChangeLog.reallyadd

      - The manual processing step is to insert the appropriate portion
        of the file 'ChangeLog.reallyadd' into 'ChangeLog'.  You can
        usually find the point where the previous release started in
        the file by searching for "version tag".

      - Please keep the line of dashes at the top of the file, as this
        makes it easier to copy during the next release.

      - If using emacs, switch from changelog-mode to text-mode.

      - Check in the new ChangeLog:

          $ svn commit -m "update for release X" ChangeLog

        This is done automatically by "makerelease"


***************************************************************************
MANUAL - STEP 3

Updating README, NEWS, and CHANGES files

  [ This information has been moved to:

  http://www.net-snmp.org/wiki/index.php/Commit_message_auto-extraction_formats

  ]

However, leaving some examples here for quick referral:

  git commit messages that generate auto-NEWS and auto-CHANGES
  extractions should be formatted like the following examples:

    NEWS: snmpd: I did something really cool to the agent
    CHANGES: snmptrapd: fixed something minor in snmptrapd
    NEWS: perl: PATCH: 123,456: Applied patches 123 and 456 to support perl6
    CHANGES: BUG: 13: Fixed bug 13 & secured the world at large against hackers
    NEWS: perl: PATCH: 123: from Robert: did something
    NEWS: perl: PATCH: 123: from "Robert Story": did something else