doc/release_steps.txt
author Mirko Banchi <mk.banchi@gmail.com>
Fri, 24 Apr 2009 09:07:00 +0200
changeset 4401 427cec7079f3
parent 3683 05797303259b
child 4534 2680abc768f2
permissions -rw-r--r--
add amsdu field

Steps in doing an ns-3 release

1. check out a clean ns-3-dev somewhere
2. prepare the source files
   - revise and check in AUTHORS, if needed
   - revise and check in RELEASE_NOTES
   - DO NOT change VERSION at this time
   - confirm that Doxygen builds cleanly and without warnings
     (./waf check; ./waf --doxygen), and check in any necessary changes 
   - ensure no regressions (./waf --regression)
3. ./waf configure; ./waf dist
   - this will create an ns-3-dev.tar.bz2 tarball
   - this will also create a ns-3-dev-ref-traces.tar.bz2 tarball
4. test dev tarball on release platforms (waf check and maybe some other 
   scripts)
5. once you are happy with the tarball, tag ns-3-dev and ns-3-dev-ref-traces
   - hg tag "ns-3.x"
   - hg push 
   - cd into regression/ns-3-dev-ref-traces
   - hg tag "ns-3.x"
   - hg push 
6. clone the tagged ns-3-dev and place it on the repository
   - ssh code.nsnam.org; sudo tcsh; su code;
   - cp -r /home/code/repos/ns-3-dev /home/code/repos/ns-3.1x
   - cd /home/code/repos/ns-3.x/.hg and edit the hgrc appropriately:
     "description = ns-3.x release
      name = ns-3.x"
   - clone the ns-3-dev-ref-traces and place it on the repository as above
     but use the name ns-3.x-ref-traces and edit the hgrc appropriately
7. check out a clean version of the new release (ns-3.x) somewhere
8. Update the VERSION for this new release
   - change the string 3-dev in the VERSION file to the real version 
     (e.g. 3.2)  This must agree with the version name you chose in the clone
     for the regression tests to work.
   - hg commit
   - hg push
9. Run the regression tests on the new release (debug and optimized)
   - ./waf -d debug configure
   - ./waf
   - ./waf --regression
   - ./waf --valgrind --regression (for valgrind version)
   - ./waf -d optimized configure
   - ./waf
   - ./waf --regression
   - ./waf --valgrind --regression (for valgrind version)
   - There should be no regression errors at this time
10. Create final tarballs
   - ./waf configure; ./waf dist
   - this will create an ns-3.x.tar.bz2 tarball
   - this will also create a ns-3.x-ref-traces.tar.bz2 tarball
11. upload "ns-3.x.tar.bz2" to the /var/www/html/releases/ directory on 
   the www.nsnam.org server
   - give it 644 file permissions, and user/group = apache
12. upload "ns-3.x-ref-traces.tar.bz2" to the /var/www/html/releases/ 
   directory on the www.nsnam.org server
   - give it 644 file permissions, and user/group = apache
13. update web pages on www.nsnam.org (source is in the www/ module)
   - clone the source repo (hg clone http://code.nsnam.org/www)
   - update index.html
   - add link to news.html
   - update getting_started.html
   - update documents.html
   - update roadmap on wiki
   - commit and push changes
   - build and update HTML directory on the server
     -- ssh www.nsnam.org; sudo tcsh; su nsnam;
     -- run ~/bin/update-html
   - build and update Doxygen directory on the server
     -- edit ~/bin/update-doxygen-release file and change RELEASE variable 
        to the right version number 
     -- run ~/bin/update-doxygen-release
14. Final checks
   - download tarball from web, build and run regression tests for as many
     targets as you can
   - download release from mercurial, build and run regression tests for as
     many targets as you can
   - test and verify until you're confident the release is solid.
15. announce to ns-developers, with summary of release notes