update release steps

This commit is contained in:
Josh Pelkey
2011-05-25 18:23:23 -04:00
parent 97da592315
commit 3c257ae5e8

View File

@@ -3,44 +3,73 @@ Steps in doing an ns-3 release
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 @@ Steps in doing an ns-3 release
- ./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 @@ Steps in doing an ns-3 release
- ./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/
- update roadmap on wiki
- commit and push changes
14. update the server
- update roadmap on wiki
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