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 "release ns-3.1x" - hg push - cd into regression/ns-3-dev-ref-traces - hg tag "release ns-3.1x" - 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.1x/.hg and edit the hgrc appropriately: "description = ns-3.1x release name = ns-3.1x" - clone the ns-3-dev-ref-traces and place it on the repository as above but use the name ns-3.1x-ref-traces 7. check out a clean version of the new release (ns-3.1x) 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.1) 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 - ./waf --regression - ./waf --valgrind --regression (for valgrind version) - There should be no regression errors at this time 10. Create final tarballs - run "./waf dist" 11. upload "ns-3.1x.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.1x-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) - 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 15. announce to ns-developers, with summary of release notes