update release steps
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user