Blame dist/RELEASE-INSTRUCTIONS

Packit fcad23
This is a summary of the steps required to make a new release.  Do not
Packit fcad23
attempt to run these manually - instead use the 'makerelease'
Packit fcad23
application and makerelease.xml file.  Get 'makerelease' from the
Packit fcad23
makerelease repository:
Packit fcad23
Packit fcad23
  git clone https://github.com/hardaker/makerelease
Packit fcad23
  cd makerelease
Packit fcad23
  perl Makefile.PL
Packit fcad23
  make
Packit fcad23
  sudo make install
Packit fcad23
Packit fcad23
Then to run it from a directory to release:
Packit fcad23
Packit fcad23
  makerelease -c NETSNMPTRUNK/dist/makerelease.xml
Packit fcad23
Packit fcad23
It will prompt you for all needed information and tasks to be done.
Packit fcad23
Packit fcad23
IMPORTANT NOTE:
Packit fcad23
    Don't *ever* release a second tar ball under the same name as the
Packit fcad23
    first.  It's much much much better to release another version
Packit fcad23
    instead, since you don't have to figure out from the bug reports
Packit fcad23
    that a user really grabbed the first snapshot instead of the
Packit fcad23
    second when they complain about version "XXX" not working.
Packit fcad23
Packit fcad23
====== makerelease -n output showing makerelease documented steps ======
Packit fcad23
Packit fcad23
STEP: 1: Setup Steps
Packit fcad23
Packit fcad23
  This set of steps will do some preliminary "safety" checks to ensure the
Packit fcad23
  local environment is ok and setup some important information.
Packit fcad23
Packit fcad23
  ===== Entering Step: 1 =====
Packit fcad23
Packit fcad23
STEP: 1.1: Setup Checck
Packit fcad23
Packit fcad23
  This should show the last version number published in this branch by
Packit fcad23
  looking at the time line in the README file:
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    head -1 README
Packit fcad23
Packit fcad23
STEP: 1.2: Pick a Version Number
Packit fcad23
Packit fcad23
  Please enter the version number to publish.  Net-SNMP convention dictates
Packit fcad23
  that this be a version number like 5.4 or 5.4.1.  Pre-releases that occur
Packit fcad23
  before a branch freezes should be appended with ".preN" like 5.4.1.pre2. 
Packit fcad23
  Release-candidates should be labeled ".rcN" like 5.4.1.rc1.
Packit fcad23
Packit fcad23
  Decide on a value for parameter 'VERSION'
Packit fcad23
Packit fcad23
    parameter: VERSION
Packit fcad23
Packit fcad23
    prompt:    Enter the new version number:
Packit fcad23
Packit fcad23
STEP: 1.3: Defining a second internal version string
Packit fcad23
Packit fcad23
  Internal perl code will be executed
Packit fcad23
Packit fcad23
STEP: 1.4: Release Parameter Information
Packit fcad23
Packit fcad23
  Here is the configured information we'll be using:
Packit fcad23
Packit fcad23
  VERSION:		   {VERSION}
Packit fcad23
Packit fcad23
  VERSION with dashes:	   {VERSIONDASHES}
Packit fcad23
Packit fcad23
  Floating point VERSION:  {VERSIONFLOAT}
Packit fcad23
Packit fcad23
  Branch URL:		   {BRANCHPATH}
Packit fcad23
Packit fcad23
STEP: 1.5: update
Packit fcad23
Packit fcad23
  We need to make sure your code is up to date and matches the latest
Packit fcad23
  sources in this branch.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn update
Packit fcad23
Packit fcad23
STEP: 1.6: Check for changes
Packit fcad23
Packit fcad23
  This steps looks for outstanding files that have been modified.  There
Packit fcad23
  should be no outstanding modifications!  If this step finds outstanding
Packit fcad23
  modified files you need to check them in or revert them before
Packit fcad23
  continuing!
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn -u status | egrep '^[^\?]'
Packit fcad23
Packit fcad23
  (Leaving Step: 1)
Packit fcad23
Packit fcad23
STEP: 2: Source Code Setup
Packit fcad23
Packit fcad23
  This set of steps will modify various places within the source code tree
Packit fcad23
  to bring it up to date with the new version number about to be published.
Packit fcad23
Packit fcad23
  ===== Entering Step: 2 =====
Packit fcad23
Packit fcad23
STEP: 2.1: Libtool / Library versioning setup
Packit fcad23
Packit fcad23
  These steps will modify the various files in the source tree that contain
Packit fcad23
  the version number, show you the changes that will be made and then check
Packit fcad23
  in the resulting changes if you approve of them.
Packit fcad23
Packit fcad23
  ===== Entering Step: 2.1 =====
Packit fcad23
Packit fcad23
STEP: 2.1.1: version:libtoolmanualedit
Packit fcad23
Packit fcad23
  You (may) need to edit Makefile.top to update the library version
Packit fcad23
  numbering (usually just for the first pre-release of a given version). 
Packit fcad23
  See the comments in RELEASE-INSTRUCTIONS about LIBCURRENT, LIBAGE and
Packit fcad23
  LIBREVISION.
Packit fcad23
Packit fcad23
  This script will commit the file for you after you're done.
Packit fcad23
Packit fcad23
STEP: 2.1.2: version:commit
Packit fcad23
Packit fcad23
  We'll now commit the Makefile.top file if you've modified it.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn commit -m "version update" Makefile.top
Packit fcad23
Packit fcad23
  (Leaving Step: 2.1)
Packit fcad23
Packit fcad23
STEP: 2.2: Change The Version Number
Packit fcad23
Packit fcad23
  These steps will modify the various files in the source tree that contain
Packit fcad23
  the version number, show you the changes that will be made and then check
Packit fcad23
  in the resulting changes if you approve of them.
Packit fcad23
Packit fcad23
  ===== Entering Step: 2.2 =====
Packit fcad23
Packit fcad23
STEP: 2.2.1: Modify the source files
Packit fcad23
Packit fcad23
  We will now modify files through the code to replace the version number
Packit fcad23
  with the newer one.
Packit fcad23
Packit fcad23
  Modifying files:
Packit fcad23
Packit fcad23
    replacing: 'VERSION = '(.*)'' with: 'VERSION = \'{VERSIONFLOAT}\''
Packit fcad23
Packit fcad23
Packit fcad23
    files:  glob=ARRAY(0x8dc9064)
Packit fcad23
Packit fcad23
      perl/SNMP/SNMP.pm
Packit fcad23
Packit fcad23
      perl/agent/agent.pm
Packit fcad23
Packit fcad23
      perl/agent/Support/Support.pm
Packit fcad23
Packit fcad23
      perl/agent/default_store/default_store.pm
Packit fcad23
Packit fcad23
      perl/default_store/default_store.pm
Packit fcad23
Packit fcad23
      perl/OID/OID.pm
Packit fcad23
Packit fcad23
      perl/ASN/ASN.pm
Packit fcad23
Packit fcad23
      perl/AnyData_SNMP/Storage.pm
Packit fcad23
Packit fcad23
      perl/AnyData_SNMP/Format.pm
Packit fcad23
Packit fcad23
      perl/TrapReceiver/TrapReceiver.pm
Packit fcad23
Packit fcad23
Packit fcad23
Packit fcad23
  Modifying files:
Packit fcad23
Packit fcad23
    replacing: 'NetSnmpVersionInfo = "[\d\.]+"' with: 'NetSnmpVersionInfo =
Packit fcad23
  "{VERSION}"'
Packit fcad23
Packit fcad23
Packit fcad23
    files:  glob=ARRAY(0x8dc8fd4)
Packit fcad23
Packit fcad23
      snmplib/snmp_version.c
Packit fcad23
Packit fcad23
Packit fcad23
Packit fcad23
  Modifying files:
Packit fcad23
Packit fcad23
    replacing: 'Version: [\.0-9a-zA-Z]+' with: 'Version: {VERSION}'
Packit fcad23
Packit fcad23
Packit fcad23
    files:  glob=ARRAY(0x8dc8f44)
Packit fcad23
Packit fcad23
      README
Packit fcad23
Packit fcad23
      FAQ
Packit fcad23
Packit fcad23
      dist/net-snmp.spec
Packit fcad23
Packit fcad23
Packit fcad23
Packit fcad23
  Modifying files:
Packit fcad23
Packit fcad23
    replacing: 'VERSION = [\.0-9a-zA-Z]+' with: 'VERSION = {VERSION}'
Packit fcad23
Packit fcad23
Packit fcad23
    files:  glob=ARRAY(0x8dc8ed4)
Packit fcad23
Packit fcad23
      dist/Makefile
Packit fcad23
Packit fcad23
Packit fcad23
Packit fcad23
  Modifying files:
Packit fcad23
Packit fcad23
    replacing: 'AC_INIT\(\[Net-SNMP\], \[([^\]]+)\]' with:
Packit fcad23
  'AC_INIT([Net-SNMP], [{VERSION}]'
Packit fcad23
Packit fcad23
Packit fcad23
    files:  glob=ARRAY(0x8dc8e64)
Packit fcad23
Packit fcad23
      configure.in
Packit fcad23
Packit fcad23
Packit fcad23
Packit fcad23
  Modifying files:
Packit fcad23
Packit fcad23
    replacing: 'NetSnmpVersionInfo = "[^"]+"' with: 'NetSnmpVersionInfo =
Packit fcad23
  "{VERSION}"'
Packit fcad23
Packit fcad23
Packit fcad23
    files:  glob=ARRAY(0x8dc8df4)
Packit fcad23
Packit fcad23
      snmplib/snmp_version.c
Packit fcad23
Packit fcad23
Packit fcad23
Packit fcad23
STEP: 2.2.2: Running autoconf to rebuild configure
Packit fcad23
Packit fcad23
  We modified configure.in, so we now need to run autoconf to rebuild
Packit fcad23
  configure.
Packit fcad23
Packit fcad23
  XXX: in the future we should verify the correct autoconf version number
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    autoconf
Packit fcad23
Packit fcad23
STEP: 2.2.3: Running svn diff to check changes
Packit fcad23
Packit fcad23
  Check the following changes for proper version number differences before
Packit fcad23
  we commit the chances.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn diff
Packit fcad23
Packit fcad23
STEP: 2.2.4: Running svn commit to commit the changes
Packit fcad23
Packit fcad23
  Check the changes in the above diff and then we'll commit the results
Packit fcad23
  here if they look ok.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn commit -m "Version number update"
Packit fcad23
Packit fcad23
  (Leaving Step: 2.2)
Packit fcad23
Packit fcad23
STEP: 2.3: docs:make
Packit fcad23
Packit fcad23
  This step will create manual pages from doxygen instrumented code files.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    make docs
Packit fcad23
Packit fcad23
    make mancp
Packit fcad23
Packit fcad23
STEP: 2.4: docs:update
Packit fcad23
Packit fcad23
  This will run svn status to figure out what files have changed since the
Packit fcad23
  previous man page generation steps were done.  After this step, we'll
Packit fcad23
  commit all the modified files.
Packit fcad23
Packit fcad23
  You may find additional files (marked with a ?) that should be added to
Packit fcad23
  the svn repository and you'll need to do this by hand before going on to
Packit fcad23
  the next step.
Packit fcad23
Packit fcad23
  Note: based on a recent net-snmp-admin discussion, we're no longer going
Packit fcad23
  to be adding the bazillions of man pages that doxygen generates by
Packit fcad23
  default.  Only important ones should be added.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn -u status man
Packit fcad23
Packit fcad23
STEP: 2.5: docs:manualaddnewman
Packit fcad23
Packit fcad23
  Update man/Makefile.in with details of any new man pages, and run 'svn
Packit fcad23
  add' on them.
Packit fcad23
Packit fcad23
  I'll commit these changes for you after you're done.
Packit fcad23
Packit fcad23
STEP: 2.6: docs:commit
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn commit -m "documentation update" man
Packit fcad23
Packit fcad23
  (Leaving Step: 2)
Packit fcad23
Packit fcad23
STEP: 3: Testing Steps
Packit fcad23
Packit fcad23
  These steps will help you test the source code to ensure it passes some
Packit fcad23
  simple "it works" tests.
Packit fcad23
Packit fcad23
  ===== Entering Step: 3 =====
Packit fcad23
Packit fcad23
STEP: 3.1: build:distclean
Packit fcad23
Packit fcad23
  First we need to clean the existing build tree and start from scratch.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    make distclean
Packit fcad23
Packit fcad23
STEP: 3.2: build:configure
Packit fcad23
Packit fcad23
  We need to run configure to set up the build tree.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    ./configure --cache=config.cache --with-defaults
Packit fcad23
  --with-mib-modules='host examples examples/example testhandler smux Rmon
Packit fcad23
  disman/event-mib' --with-transports=IPX --enable-ipv6
Packit fcad23
  --enable-embedded-perl --enable-shared
Packit fcad23
Packit fcad23
STEP: 3.3: build:make
Packit fcad23
Packit fcad23
  Then we need to build the code
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    make
Packit fcad23
Packit fcad23
STEP: 3.4: build:test
Packit fcad23
Packit fcad23
  Now we run "make test" which should produce a perfect set up test
Packit fcad23
  results.  If not, this needs to be fixed or at least understood and
Packit fcad23
  accepted as is for some other reason.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    make test TESTOPTS=-n
Packit fcad23
Packit fcad23
STEP: 3.5: code:checkcomments
Packit fcad23
Packit fcad23
  This command looks for source code oddities and policy violations.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    make checks
Packit fcad23
Packit fcad23
  (Leaving Step: 3)
Packit fcad23
Packit fcad23
STEP: 4: Release File Steps
Packit fcad23
Packit fcad23
  Certain files in the distribution and built on a per-release basis. 
Packit fcad23
  These steps will help set up these files.
Packit fcad23
Packit fcad23
  ===== Entering Step: 4 =====
Packit fcad23
Packit fcad23
STEP: 4.1: code:makedepend
Packit fcad23
Packit fcad23
  This step creates Makefile dependencies using the "distdepend" rule in
Packit fcad23
  the top level Makefile.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    make distdepend
Packit fcad23
Packit fcad23
STEP: 4.2: code:commitdepend
Packit fcad23
Packit fcad23
  This step commits the dependency changes done in the previous step.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn commit -m "make depend" `find . -name Makefile.depend`
Packit fcad23
Packit fcad23
STEP: 4.3: changelog:svn2cl
Packit fcad23
Packit fcad23
  We need to extract the portions of the change logs committed to the
Packit fcad23
  repository.
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn2cl -f ChangeLog.add --break-before-msg --stop-on-copy
Packit fcad23
Packit fcad23
    perl dist/changelogfix  < ChangeLog.add > ChangeLog.reallyadd
Packit fcad23
Packit fcad23
STEP: 4.4: changelog:manualedit
Packit fcad23
Packit fcad23
  You need to manually insert the *relevent* portions of
Packit fcad23
  'ChangeLog.reallyadd' into the ChangeLog file. I'll commit these changes
Packit fcad23
  for you after you finish cutting out the proper changes.
Packit fcad23
Packit fcad23
STEP: 4.5: changelog:commit
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn commit -m "version update" ChangeLog
Packit fcad23
Packit fcad23
STEP: 4.6: docs:newnews
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    perl dist/extractnews -s ----- -e ----- ChangeLog
Packit fcad23
Packit fcad23
STEP: 4.7: docs:newnews
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    perl dist/extractnews -c CHANGES.new2 -n NEWS.new2 ChangeLog.reallyadd
Packit fcad23
Packit fcad23
STEP: 4.8: docs:README
Packit fcad23
Packit fcad23
  You need to manually insert the relevent portions of 'CHANGES.new' and
Packit fcad23
  'NEWS.new' into the CHANGES and NEWS file. (There are alternative
Packit fcad23
  versions in 'CHANGES.new2' and 'NEWS.new2') You may wish to update the
Packit fcad23
  README file as well. I'll commit these changes for you afterwards
Packit fcad23
Packit fcad23
STEP: 4.9: docs:commit
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn commit -m "version update" README NEWS CHANGES
Packit fcad23
Packit fcad23
STEP: 4.10: release:update
Packit fcad23
Packit fcad23
  One more svn update and status to make sure nothing odd exists in your
Packit fcad23
  source tree.	Please check the results!
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn -u status
Packit fcad23
Packit fcad23
  (Leaving Step: 4)
Packit fcad23
Packit fcad23
STEP: 5: Make the Release
Packit fcad23
Packit fcad23
  This is it!  After this point it's much harder to turn back.	If
Packit fcad23
  everything is ok until this point and you're ready to actually stamp the
Packit fcad23
  release in git and make release files, these steps will do that for you.
Packit fcad23
Packit fcad23
  ===== Entering Step: 5 =====
Packit fcad23
Packit fcad23
STEP: 5.1: release:tag
Packit fcad23
Packit fcad23
  This will actually svn copy the current checked out branch to the new tag
Packit fcad23
  name.  Specifically:
Packit fcad23
Packit fcad23
  svn copy {BRANCHPATH} .../tags/Ext-{VERSIONDASHES}
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn copy -m "{VERSION} release" {BRANCHPATH}
Packit fcad23
  https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/tags/Ext-{VERSIONDA
Packit fcad23
  SHES}
Packit fcad23
Packit fcad23
STEP: 5.2: release:makedist
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    svn export
Packit fcad23
  https://net-snmp.svn.sourceforge.net/svnroot/net-snmp/tags/Ext-{VERSIONDA
Packit fcad23
  SHES}/net-snmp net-snmp-{VERSION}
Packit fcad23
Packit fcad23
STEP: 5.3: release:removefiles
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    net-snmp-{VERSION}/remove-files net-snmp-{VERSION}
Packit fcad23
Packit fcad23
STEP: 5.4: release:makedist
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    star artype=ustar -c -z -f net-snmp-{VERSION}.tar.gz 
Packit fcad23
  net-snmp-{VERSION}
Packit fcad23
Packit fcad23
STEP: 5.5: release:makezipclean
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    rm -f net-snmp-{VERSION}.zip
Packit fcad23
Packit fcad23
STEP: 5.6: release:makezip
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    zip -r net-snmp-{VERSION}.zip  net-snmp-{VERSION}
Packit fcad23
Packit fcad23
STEP: 5.7: release:searching-gpg-keys
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    gpg --list-secret-keys net-snmp-admin
Packit fcad23
Packit fcad23
STEP: 5.8: release:gpg
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    gpg -u 317F8F64 -a --detach-sign net-snmp-{VERSION}.tar.gz
Packit fcad23
Packit fcad23
STEP: 5.9: release:gpg
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    gpg -u 317F8F64 -a --detach-sign net-snmp-{VERSION}.zip
Packit fcad23
Packit fcad23
STEP: 5.10: Release File Test
Packit fcad23
Packit fcad23
  We'll also re-build the source and retest a few things to ensure the
Packit fcad23
  packaged file can actually be built.
Packit fcad23
Packit fcad23
  ===== Entering Step: 5.10 =====
Packit fcad23
Packit fcad23
STEP: 5.10.1: posttest:untar
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    rm -rf net-snmp-{VERSION}
Packit fcad23
Packit fcad23
STEP: 5.10.2: posttest:untar
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    tar xzf net-snmp-{VERSION}.tar.gz
Packit fcad23
Packit fcad23
STEP: 5.10.3: posttest:configure
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    cd net-snmp-{VERSION} && ./configure --cache=config.cache
Packit fcad23
  --with-defaults --with-mib-modules='host examples examples/example	
Packit fcad23
  testhandler smux Rmon disman/event-mib' --with-transports=IPX
Packit fcad23
  --enable-ipv6 --enable-embedded-perl --enable-shared
Packit fcad23
Packit fcad23
STEP: 5.10.4: posttest:make
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    cd net-snmp-{VERSION} && make
Packit fcad23
Packit fcad23
STEP: 5.10.5: posttest:test
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    cd net-snmp-{VERSION} && make test
Packit fcad23
Packit fcad23
  (Leaving Step: 5.10)
Packit fcad23
Packit fcad23
  (Leaving Step: 5)
Packit fcad23
Packit fcad23
STEP: 6: Release the results
Packit fcad23
Packit fcad23
  Now we'll publish the results to the SF server
Packit fcad23
Packit fcad23
  ===== Entering Step: 6 =====
Packit fcad23
Packit fcad23
STEP: 6.1: rsync the new files
Packit fcad23
Packit fcad23
  This will copy the results to the SF uploads directory in your account on
Packit fcad23
  frs.sourceforge.net
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    rsync -v net-snmp-{VERSION}.tar.gz net-snmp-{VERSION}.tar.gz.asc
Packit fcad23
  net-snmp-{VERSION}.zip net-snmp-{VERSION}.zip.asc
Packit fcad23
  frs.sourceforge.net:uploads/
Packit fcad23
Packit fcad23
STEP: 6.2: Update the SF release web page
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    firefox
Packit fcad23
  'http://sourceforge.net/project/admin/editpackages.php?group_id=12694'
Packit fcad23
Packit fcad23
  (Leaving Step: 6)
Packit fcad23
Packit fcad23
STEP: 7: 
Packit fcad23
Packit fcad23
  Binaries: build rpms, .tar.gzs, etc.
Packit fcad23
Packit fcad23
STEP: 8: Advertise it!
Packit fcad23
Packit fcad23
  ===== Entering Step: 8 =====
Packit fcad23
Packit fcad23
STEP: 8.1: 
Packit fcad23
Packit fcad23
  Add a note to the source forge news system:
Packit fcad23
Packit fcad23
  http://sourceforge.net/news/submit.php?group_id=12694
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    firefox 'http://sourceforge.net/news/submit.php?group_id=12694'
Packit fcad23
Packit fcad23
STEP: 8.2: 
Packit fcad23
Packit fcad23
  Send an announcement message to one of the following mailing lists based
Packit fcad23
  on it's type:
Packit fcad23
Packit fcad23
  pre:	  net-snmp-coders@lists.sourceforge.net
Packit fcad23
Packit fcad23
  rc:	  net-snmp-users@lists.sourceforge.net
Packit fcad23
Packit fcad23
  final:  net-snmp-announce@lists.sourceforge.net
Packit fcad23
Packit fcad23
STEP: 8.3: 
Packit fcad23
Packit fcad23
  Update the topic on the #Net-SNMP channel if this is a trunk based
Packit fcad23
  release.
Packit fcad23
Packit fcad23
STEP: 8.4: 
Packit fcad23
Packit fcad23
  Update the freshmeat listing (Wes needs to do this):
Packit fcad23
Packit fcad23
  http://freshmeat.net/projects/net-snmp/
Packit fcad23
Packit fcad23
  Commands to execute:
Packit fcad23
Packit fcad23
    firefox http://freshmeat.net/projects/net-snmp/
Packit fcad23
Packit fcad23
  (Leaving Step: 8)
Packit fcad23
Packit fcad23
STEP: 9: 
Packit fcad23
Packit fcad23
  Advertise: NEWS upload to sf, publish on -announce, freshmeat, and the
Packit fcad23
  GNU FSF directory (http://directory.fsf.org/project/net-snmp/)... (send
Packit fcad23
  mail to bug-directory@gnu.org)
Packit fcad23
Packit fcad23
Packit fcad23
Packit fcad23
Packit fcad23
Packit fcad23
====== BEGIN OBSOLETE (pre-makerelease) DOCUMENTATION ======
Packit fcad23
Packit fcad23
***************************************************************************
Packit fcad23
TESTING:
Packit fcad23
Packit fcad23
  1) Update the source tree to catch all recent commits,
Packit fcad23
     and check that all local changes have been committed.
Packit fcad23
Packit fcad23
     $ svn -u status
Packit fcad23
     $ svn    update
Packit fcad23
Packit fcad23
  2) Change the libtool version information in Makefile.top.
Packit fcad23
     See MANUAL - STEP 1 later in these instructions.
Packit fcad23
     'makerelease' will commit this file automatically.
Packit fcad23
Packit fcad23
  3) Configure the suite with as many modules as possible,
Packit fcad23
     build and test it.  The makerelease script will use
Packit fcad23
     the options:
Packit fcad23
Packit fcad23
      $ ./configure  '--with-mib-modules=host examples examples/example  \
Packit fcad23
                              testhandler smux Rmon disman/event-mib'    \
Packit fcad23
                      --with-transports=IPX  --enable-ipv6               \
Packit fcad23
                      --enable-embedded-perl --enable-shared
Packit fcad23
Packit fcad23
     Ideally this should be repeated on as many systems as possible
Packit fcad23
     (including running "make install").  However the makerelease
Packit fcad23
     script will only test things on the current box, and will not
Packit fcad23
     try to install the software.
Packit fcad23
Packit fcad23
Packit fcad23
***************************************************************************
Packit fcad23
DOCUMENTATION:
Packit fcad23
Packit fcad23
  4)  Update the version number in the doxygen.conf file
Packit fcad23
      (handled automatically by 'makerelease') and generate
Packit fcad23
      the doxygen extracted manual pages.
Packit fcad23
Packit fcad23
        $ make docs
Packit fcad23
        $ make mancp
Packit fcad23
Packit fcad23
     'makerelease' will commit this file automatically.
Packit fcad23
     Note that any new man pages should be added to Makefile.in.
Packit fcad23
     This is *NOT* currently handled by the makerelease script.
Packit fcad23
Packit fcad23
  5) Check the code for illegal constructs (e.g. C++ style comments
Packit fcad23
     or GNU make specific constructs in Makefiles):
Packit fcad23
Packit fcad23
        $ make checks
Packit fcad23
Packit fcad23
  6) Update Makefile dependencies:
Packit fcad23
Packit fcad23
        $ make distdepend
Packit fcad23
Packit fcad23
     'makerelease' will commit these dependencies automatically.
Packit fcad23
Packit fcad23
  7) Update the ChangeLog file with details of all (recent) changes
Packit fcad23
     to the suite.  See MANUAL - STEP 2 later in these instructions.
Packit fcad23
     'makerelease' will commit this file automatically.
Packit fcad23
Packit fcad23
  8) Update the README, NEWS, and CHANGES files with details of
Packit fcad23
     significant changes to the suite.  See MANUAL - STEP 3 later
Packit fcad23
     in these instructions.
Packit fcad23
     'makerelease' will commit these files automatically.
Packit fcad23
Packit fcad23
Packit fcad23
***************************************************************************
Packit fcad23
RELEASE:
Packit fcad23
Packit fcad23
  9) Make sure all changes are checked in:
Packit fcad23
Packit fcad23
       $ svn -u status
Packit fcad23
       $ svn    update
Packit fcad23
Packit fcad23
     [Note that this step is omitted when running "makerelease"]
Packit fcad23
Packit fcad23
 10) Change the version number in various files
Packit fcad23
       (README, FAQ, configure.in, net-snmp.spec and assorted Perl modules).
Packit fcad23
     'makerelease' will update and commit these files automatically.
Packit fcad23
Packit fcad23
 11) Create a tag checkpoint for this release:
Packit fcad23
Packit fcad23
       $ svn copy  /trunk                 /tags/Ext-5-x
Packit fcad23
     or
Packit fcad23
       $ svn copy  /branches/V5-x-patches /tags/Ext-5-x-y
Packit fcad23
Packit fcad23
 12) Construct the source packages:
Packit fcad23
Packit fcad23
        $ svn export /tags/Ext-5-x-y/net-snmp net-snmp-5.x.y
Packit fcad23
        $ net-snmp-5.x.y/remove-files         net-snmp-5.x.y
Packit fcad23
        $ star artype=ustar -c -z -f net-snmp-5.x.y.tar.gz    net-snmp-5.x.y
Packit fcad23
        $ rm -f net-snmp-5.x.y.zip"
Packit fcad23
        $ zip -r net-snmp-5.x.y.zip net-snmp-5.x.y"
Packit fcad23
Packit fcad23
Packit fcad23
 13) Sign (or checksum) the packages:
Packit fcad23
Packit fcad23
     Wes/Robert:
Packit fcad23
        $ gpg -u net-snmp-admin -a --detach-sign net-snmp-5.x.y.tar.gz
Packit fcad23
        $ gpg -u net-snmp-admin -a --detach-sign net-snmp-5.x.y.zip
Packit fcad23
     Others:
Packit fcad23
        $ md5sum net-snmp-5.x.y.tar.gz > net-snmp-5.x.y.tar.gz.md5
Packit fcad23
        $ md5sum net-snmp-5.x.y.zip    > net-snmp-5.x.y.zip.md5
Packit fcad23
Packit fcad23
Packit fcad23
***************************************************************************
Packit fcad23
RELEASE TESTING:
Packit fcad23
Packit fcad23
 14) Unpack a clean copy of the tarball, configure, build and
Packit fcad23
     test the release tarball.
Packit fcad23
Packit fcad23
 15) Double-check that there are no outstanding changes that have
Packit fcad23
     been missed from the CVS checkin:
Packit fcad23
Packit fcad23
        $ svn status
Packit fcad23
Packit fcad23
Note:  This is the last stage that is handled by the "makerelease" script
Packit fcad23
       Everything following will need to be done manually.
Packit fcad23
Packit fcad23
 15) Upload the packages (and signature files) to the SourceForge server:
Packit fcad23
 
Packit fcad23
        $ ncftpput upload.sf.net incoming net-snmp-5.x.y.tar.gz
Packit fcad23
        $ ncftpput upload.sf.net incoming net-snmp-5.x.y.zip
Packit fcad23
        * SF pages:  "Admin" -> "File Releases"
Packit fcad23
        * net-snmp:  "Add Release" (or "Edit Release")
Packit fcad23
        * Create (or choose) an appropriate release name
Packit fcad23
             e.g.  "5.x.y source code"  (or "5.x.y pre-releases")
Packit fcad23
        * "Edit This Release"
Packit fcad23
        * Select the tarball and/or other relevant files
Packit fcad23
Packit fcad23
 16) Announce the release on the appropriate list.
Packit fcad23
     Pre-release announcements (and a call for testing) should be
Packit fcad23
     sent to net-snmp-coders, release-candidates to net-snmp-users.
Packit fcad23
Packit fcad23
     Full releases should be announced on net-snmp-users, and as a
Packit fcad23
     news item on the project home page - including the NEWS snippet
Packit fcad23
     of significant changes since the last release.
Packit fcad23
Packit fcad23
 17) Update the following htdocs files (in the main git trunk):
Packit fcad23
         htdocs/download.html
Packit fcad23
         htdocs/dev/schedule.html
Packit fcad23
Packit fcad23
     [Make sure you have permissions set up properly on the web
Packit fcad23
      server so that files created become group-writable!!!]
Packit fcad23
Packit fcad23
     That concludes the process for pre-releases and release-candidates.
Packit fcad23
     For full releases, wait a week to ensure that there are no major
Packit fcad23
     problems, before continuing with the remaining steps.
Packit fcad23
Packit fcad23
        If there are known problems and another release is planned to
Packit fcad23
     fix them, don't announce the broken version - wait for the updated
Packit fcad23
     one instead.
Packit fcad23
Packit fcad23
 18) Once this week has elapsed, submit an announement of the new
Packit fcad23
     release to net-snmp-announce.  This message will need to be
Packit fcad23
     explicitly authorized via MailMan.
Packit fcad23
Packit fcad23
     Also update the IRC topic to include mention of this release.
Packit fcad23
Packit fcad23
 19) For a release on the most recent development line, start bugging
Packit fcad23
     Wes to update the freshmeat, Free Software Directory and
Packit fcad23
     Wikipedia entries.
Packit fcad23
Packit fcad23
 20) For a release on the most recent development line, update the
Packit fcad23
     'htdocs/page-top.html' file (in the main git trunk) to reference
Packit fcad23
     the latest version.
Packit fcad23
Packit fcad23
     Update the following files with any changes:
Packit fcad23
Packit fcad23
         htdocs/docs/readmefiles/NEWS
Packit fcad23
         htdocs/docs/readmefiles/CHANGES
Packit fcad23
         htdocs/docs/readmefiles/README*
Packit fcad23
         htdocs/COPYING
Packit fcad23
Packit fcad23
     [Make sure you have permissions set up properly on the web
Packit fcad23
      server so that files created become group-writable!!!]
Packit fcad23
         
Packit fcad23
Packit fcad23
 21) For a major new-feature release (i.e. 5.x), create the patches
Packit fcad23
     branch:
Packit fcad23
Packit fcad23
        $ git co -b  V5-x-patches
Packit fcad23
Packit fcad23
     and update the git main trunk with a new version number:
Packit fcad23
Packit fcad23
        $ local/Version-Munge.pl -v 5.(x+1).dev -M -P -C
Packit fcad23
Packit fcad23
     The 1 week delay (and continued code freeze) is to to ensure that
Packit fcad23
     developer effort is concentrated on immediate problems following
Packit fcad23
     the release.  Any major problems should hopefully come to light
Packit fcad23
     during this period, so after a week it should be safe to create
Packit fcad23
     the patches branch and officially end the code freeze on MAIN.
Packit fcad23
Packit fcad23
 22) Update the official patches tracker set:
Packit fcad23
Packit fcad23
     - any patches for this new release tarball should be given
Packit fcad23
       priority 9
Packit fcad23
     - all patches for the previous release on this line should
Packit fcad23
       be marked at priority 5
Packit fcad23
     - all patches for earlier releases on this line should
Packit fcad23
       be marked at priority 1, and closed
Packit fcad23
Packit fcad23
     If a line has been designated closed, then all official
Packit fcad23
     patches for that line should be marked as closed as well.
Packit fcad23
Packit fcad23
 23) Hide the pre-release repository from the File Releases
Packit fcad23
     admin pages.
Packit fcad23
Packit fcad23
 24) Clean up the 'dist' dir of the relevant V5-x-patches branch.
Packit fcad23
     Only leave the following files:
Packit fcad23
Packit fcad23
     changelogfix  cvsshow  cvsup  extractnews  makerelease
Packit fcad23
     net-snmp.spec  snmpd-init.d  snmptrapd-init.d
Packit fcad23
Packit fcad23
     Note that any files removed should also be deleted from
Packit fcad23
     git repository.
Packit fcad23
Packit fcad23
Packit fcad23
***************************************************************************
Packit fcad23
CREATING BINARY DISTRIBUTIONS
Packit fcad23
Packit fcad23
  0) Always REMOVE ALL PREVIOUS INSTALLS FIRST, then do a make install
Packit fcad23
     from the tar-ball extracted sources and *THEN* rebuild all
Packit fcad23
     binaries again.  This ensures that everything (especially perl
Packit fcad23
     modules) are properly linked against the right libraries.
Packit fcad23
Packit fcad23
  1) always build releases from a tarball, not from git.
Packit fcad23
Packit fcad23
  2) Add mib modules that are common.  Basically, add:
Packit fcad23
Packit fcad23
       host                      -- where supported.
Packit fcad23
       disman/event-mib
Packit fcad23
       smux
Packit fcad23
Packit fcad23
  3) use --with-defaults --with-syscontact="Unknown" 
Packit fcad23
                         --with-syslocation="Unknown"
Packit fcad23
Packit fcad23
  4) when running make install, do it like:
Packit fcad23
Packit fcad23
     $ make install prefix=/some/path/to/home/ARCH/usr/local \
Packit fcad23
            exec_prefix=/some/path/to/home/ARCH/usr/local
Packit fcad23
    
Packit fcad23
  5) Tar it up:
Packit fcad23
Packit fcad23
     $ cd /some/path/to/home/ARCH
Packit fcad23
     $ tar czf net-snmp-5.0.3-ARCH.tar.gz usr/local
Packit fcad23
Packit fcad23
  6) upload and release, like you did for the source code but with a
Packit fcad23
     different package name for binaries (5.0.3 binaries).
Packit fcad23
Packit fcad23
  7) RPMs [do this in main line even if its for a patch branch]:
Packit fcad23
     $ cd dist
Packit fcad23
     $ cp ../net-snmp-5.0.8.tar.gz rpm/SOURCES
Packit fcad23
     $ make RELEASE=1
Packit fcad23
     
Packit fcad23
     This should put multiple binary rpm files in:
Packit fcad23
       dist/rpm/RPMS/i386/
Packit fcad23
     And one source RPM in:
Packit fcad23
       dist/rpm/SRPMS/
Packit fcad23
Packit fcad23
     *** These files need to be renamed to include the OS version.
Packit fcad23
Packit fcad23
         EG: ...i386.rpm needs to become ...fc5.i386.rpm
Packit fcad23
Packit fcad23
  8) Remove (or hide) binaries from older releases of the same line,
Packit fcad23
     where you have submitted a newer binary for the same architecture.
Packit fcad23
     Once the last binary for a particular release version has been
Packit fcad23
     removed, hide that repository.
Packit fcad23
     
Packit fcad23
Packit fcad23
***************************************************************************
Packit fcad23
***************************************************************************
Packit fcad23
MANUAL - STEP 1
Packit fcad23
Packit fcad23
  Changing the libtool version information in Makefile.top.
Packit fcad23
Packit fcad23
      - If any interfaces/structures have been removed or changed since the
Packit fcad23
        last update, increment current (+5), and set age and revision to 0.
Packit fcad23
        Stop!
Packit fcad23
Packit fcad23
      - If any interfaces have been added since the last public release,
Packit fcad23
        then increment current and age, and set revision to 0.
Packit fcad23
        Stop!
Packit fcad23
Packit fcad23
      - If the source code has changed at all since the last update,
Packit fcad23
        then increment revision (c:r:a becomes c:r+1:a).
Packit fcad23
Packit fcad23
      Note: maintenance releases (eg 5.2.x) should never have changes
Packit fcad23
            that would require current to be incremented.
Packit fcad23
Packit fcad23
  The check-api-changes script in the dist directory will construct a
Packit fcad23
  diff of all headers, which can be useful for determining if anything
Packit fcad23
  needs bumping.
Packit fcad23
Packit fcad23
     Update these variables now, so that when you run
Packit fcad23
     make in a second to test things you can spot libtool yelling
Packit fcad23
     about improper numbering before you make the release and not
Packit fcad23
     after you've uploaded the tar ball :-/
Packit fcad23
Packit fcad23
Packit fcad23
***************************************************************************
Packit fcad23
MANUAL - STEP 2
Packit fcad23
Packit fcad23
  Changing the libtool version information in Makefile.top.
Packit fcad23
  Updating the ChangeLog file
Packit fcad23
Packit fcad23
      - The ChangeLog entries are extracted (normally automatically)
Packit fcad23
        using the command:
Packit fcad23
Packit fcad23
          $ svn2cl -f ChangeLog.add --break-before-msg --stop-on-copy
Packit fcad23
Packit fcad23
        If you don't have svn2cl installed, you can try and find a
Packit fcad23
        suitable binary package for your architecture, or you can
Packit fcad23
        get it directly from
Packit fcad23
              http://ch.tudelft.nl/~arthur/svn2cl
Packit fcad23
        You may need to rename the script from 'svn2cl.sh' to 'svn2cl'
Packit fcad23
Packit fcad23
      - In either case, they are fixed up (automatically) using:
Packit fcad23
Packit fcad23
          $ perl dist/changelogfix < ChangeLog.add > ChangeLog.reallyadd
Packit fcad23
        or
Packit fcad23
          $ perl dist/changelogfix V5-{N}-patches < ChangeLog.add > ChangeLog.reallyadd
Packit fcad23
Packit fcad23
      - The manual processing step is to insert the appropriate portion
Packit fcad23
        of the file 'ChangeLog.reallyadd' into 'ChangeLog'.  You can
Packit fcad23
        usually find the point where the previous release started in
Packit fcad23
        the file by searching for "version tag".
Packit fcad23
Packit fcad23
      - Please keep the line of dashes at the top of the file, as this
Packit fcad23
        makes it easier to copy during the next release.
Packit fcad23
Packit fcad23
      - If using emacs, switch from changelog-mode to text-mode.
Packit fcad23
Packit fcad23
      - Check in the new ChangeLog:
Packit fcad23
Packit fcad23
          $ svn commit -m "update for release X" ChangeLog
Packit fcad23
Packit fcad23
        This is done automatically by "makerelease"
Packit fcad23
Packit fcad23
Packit fcad23
***************************************************************************
Packit fcad23
MANUAL - STEP 3
Packit fcad23
Packit fcad23
Updating README, NEWS, and CHANGES files
Packit fcad23
Packit fcad23
  [ This information has been moved to:
Packit fcad23
Packit fcad23
  http://www.net-snmp.org/wiki/index.php/Commit_message_auto-extraction_formats
Packit fcad23
Packit fcad23
  ]
Packit fcad23
Packit fcad23
However, leaving some examples here for quick referral:
Packit fcad23
Packit fcad23
  git commit messages that generate auto-NEWS and auto-CHANGES
Packit fcad23
  extractions should be formatted like the following examples:
Packit fcad23
Packit fcad23
    NEWS: snmpd: I did something really cool to the agent
Packit fcad23
    CHANGES: snmptrapd: fixed something minor in snmptrapd
Packit fcad23
    NEWS: perl: PATCH: 123,456: Applied patches 123 and 456 to support perl6
Packit fcad23
    CHANGES: BUG: 13: Fixed bug 13 & secured the world at large against hackers
Packit fcad23
    NEWS: perl: PATCH: 123: from Robert: did something
Packit fcad23
    NEWS: perl: PATCH: 123: from "Robert Story": did something else