--- a/doc/release_steps.txt Wed May 25 16:02:46 2011 -0400
+++ b/doc/release_steps.txt Wed May 25 18:23:23 2011 -0400
@@ -3,44 +3,73 @@
1. check out a clean ns-3-dev somewhere using ns-3-allinone (you will need it)
- hg clone http://code.nsnam.org/ns-3-allinone
- ./download.py
- - ./build.py
+ - ./build.py --enable-examples --enable-tests
- confirm that the release builds cleanly.
- cd ns-3-dev
- ensure that tests pass (./test.py)
2. prepare the source files
- revise and check in AUTHORS, if needed
- - revise and check in RELEASE_NOTES. Make sure to add the Availability
- section.
+ - revise and check in RELEASE_NOTES. Make sure to edit the Availability
+ section if this is a final release.
- DO NOT change VERSION at this time
- confirm that Doxygen builds cleanly (./waf doxygen),
- and check in any necessary changes
+ and check in any necessary changes. Currently, doxygen does not build
+ cleanly, we need to fix this over time.
3. build an ns-3-allinone distribution
- - change back into the allinone directory
+ - you may want to check out a clean ns-3-allinone and ns-3-dev somewhere,
+ otherwise the tarball will be huge
+ - change into the allinone directory
- ./dist.py
- this will create an ns-allinone-dev.tar.bz2 tarball
4. test dev tarball on release platforms
- ./test.py
- other scripts you can think of
-5. once you are happy with the tarball and tag ns-3-dev
+5. once you are happy with the tarball, tag ns-3-dev
- cd into ns-3-dev
- - hg tag "ns-3.x"
- - hg push
+ - if release candidate
+ -- hg tag "ns-3.x-RCy"
+ -- hg push ssh://code@code.nsnam.org//home/code/repos/ns-3.x-RCy
+ - else if final release
+ -- hg tag "ns-3.x"
+ -- hg push ssh://code@code.nsnam.org//home/code/repos/ns-3.x
6. clone the tagged ns-3-dev and place it on the repository
- ssh code.nsnam.org; sudo bash; su code;
- - cp -r /home/code/repos/ns-3-dev /home/code/repos/ns-3.x
- - cd /home/code/repos/ns-3.x/.hg and edit the hgrc appropriately:
- "description = ns-3.x release
- name = ns-3.x"
-7. check out a clean version of the new release (ns-3.x) somewhere
- - hg clone http://code.nsnam.org/ns-3.x
-8. Update the VERSION for this new release
+ - if release candidate
+ -- cp -r /home/code/repos/ns-3-dev /home/code/repos/ns-3.x-RCy
+ -- cd /home/code/repos/ns-3.x-RCy/.hg and edit the hgrc appropriately:
+ [paths]
+ default = /home/code/repos/ns-3.x-RCy
+ [web]
+ description = ns-3.x-RCy release
+ name = ns-3.x-RCy
+ contact = <ns-developers@isi.edu>
+ - else if final release
+ -- cp -r /home/code/repos/ns-3-dev /home/code/repos/ns-3.x
+ -- cd /home/code/repos/ns-3.x/.hg and edit the hgrc appropriately:
+ [paths]
+ default = /home/code/repos/ns-3.x
+ [web]
+ description = ns-3.x release
+ name = ns-3.x
+ contact = <ns-developers@isi.edu>
+7. If this is a final release (not RC)
+ - archive ns-3.x RCs in /home/code/archived-repos
+ - delete ns-3.x RCs from /home/code/repos
+8. check out a clean version of the new release (ns-3.x) or (ns-3.x-RCy) somewhere
+ - hg clone http://code.nsnam.org/ns-3.x or (-RCy)
+9. Update the VERSION for this new release
- change the string 3-dev in the VERSION file to the real version
(e.g. 3.7 or 3.7-RC1) This must agree with the version name you chose in the clone.
- - hg commit -m "update VERSION to ns-3.x"
+ - change the version and release string for the documentation in
+ doc/manual/source, doc/tutorial/source, and doc/models/source conf.py files
+ This should hopefully be updated in the future to simply pull from the
+ VERSION file.
+ - hg commit -m "update VERSION to ns-3.x" or (-RCy), you get the point
- hg push ssh://code@code.nsnam.org//home/code/repos/ns-3.x
-
-9. Run the tests on the new release (debug and optimized) like a user would
- You need to use ns-3-allinone since you will use that to make the distro
+10. Run the tests on the new release (debug and optimized) like a user would
+ You need to use ns-3-allinone since you will use that to make the distro
+ It is convenient to let buildbot do much of this work for you, the day of
+ the release
- hg clone http://code.nsnam.org/ns-3-allinone ns-3-allinone-3.x-test
- cd !$
- ./download.py -n ns-3.x
@@ -53,7 +82,7 @@
- ./test.py
- ./test.py -g
- There should be no test errors at this time
-10. Create final tarballs
+11. Create final tarballs
You need to work with a clean ns-3-allinone-3.x directory
- hg clone http://code.nsnam.org/ns-3-allinone ns-3-allinone-3.x
- cd !$
@@ -61,46 +90,43 @@
- ./dist.py
- notice we did not build here
- this will create an ns-allinone-3.x.tar.bz2 tarball
-11. upload "ns-allinone-3.x.tar.bz2" to the /var/www/html/releases/ directory on
+ - test this tarball out somewhere just to make sure everything went ok
+12. upload "ns-allinone-3.x.tar.bz2" to the /var/www/html/releases/ directory on
the www.nsnam.org server
- scp ns-allinone-3.x.tar.bz2 www.nsnam.org:~
- ssh www.nsnam.org
- sudo cp ns-allinone-3.x.tar.bz2 /var/www/html/releases
- cd !$
-12. give it 644 file permissions, and user/group = apache if it is not already
+13. give it 644 file permissions, and user/group = apache if it is not already
- sudo chown apache:apache ns-allinone-3.x.tar.bz2
- sudo chmod 644 ns-allinone-3.x.tar.bz2
-13. update web pages on www.nsnam.org (source is in the www/ module)
+14. if this is a final release (not RC)
+ - delete RC releases from /var/www/html/releases
+15. if final release (not RC) build release documentation
+ - sudo bash; su nsnam; cd /home/nsnam/bin
+ - edit ./update-manual-release, ./update-tutorial-release,
+ ./update-doxygen-release and make sure RELEASE variable is
+ set correctly
+ - run ./update-manual-release, ./update-tutorial-release,
+ ./update-doxygen-release
+16. 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 references to releases in html_src
(consider "grep 'ns-3\.' *.html" for a new release)
(consider "grep 'RCx' *.html" for a new RC)
+ (consider looking at past commits to www for changes)
- update references to releases in scripts/
+ - commit and push changes
- update roadmap on wiki
- - commit and push changes
-14. update the server
+17. update the server
- build and update HTML directory on the server
-- ssh www.nsnam.org; sudo bash; 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
-15. build release documentation
- - if this is final release (not RC)
- -- archive old release documentation in /var/www/html/docs/release
- by creating release specific folder and moving current
- documenation into this folder
- -- from ns-3.x/doc, enter manual/ testing/ and tutorial directories
- and build the documentation using make
- -- copy this newly created documentation into
- /var/www/html/docs/release making sure to copy only the
- necessary files
-16. Final checks
- - check manual, testing, and tutorial documentation links
+18. Final checks
+ - check manual, tutorial, model, and doxygen documentation links
- download tarball from web, build and run tests for as many
targets as you can
- download release from mercurial, build and run tests for as
many targets as you can
- test and verify until you're confident the release is solid.
-17. announce to ns-developers, with summary of release notes
+19. announce to ns-developers, with summary of release notes