103 lines
4.1 KiB
Plaintext
103 lines
4.1 KiB
Plaintext
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
|
|
- confirm that the release builds cleanly.
|
|
- cd ns-3-dev
|
|
- ensure that tests pass (./test.py)
|
|
- ensure no regressions (./waf --regression)
|
|
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 doxygen), and check in any necessary changes
|
|
3. build an ns-3-allinone distribution
|
|
- change back 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
|
|
- ./waf --regression
|
|
- other scripts you can think of
|
|
5. once you are happy with the tarball, tag ns-3-dev and ns-3-dev-ref-traces
|
|
- cd into ns-3-dev
|
|
- hg tag "ns-3.x"
|
|
- hg push
|
|
- cd into 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 bash; 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.7 or 3.7-RC1) 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 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
|
|
- hg clone http://code.nsnam.org/ns-3-allinone-ns-3.x
|
|
- ./download.py -n ns-3.x -r ns-3.x-ref-traces
|
|
- ./build.py
|
|
- cd ns-3.x
|
|
- ./waf -d debug configure
|
|
- ./waf
|
|
- ./test.py
|
|
- ./test.py -g
|
|
- ./waf --regression
|
|
- ./waf --valgrind --regression (for valgrind version)
|
|
- ./waf -d optimized configure
|
|
- ./waf
|
|
- ./test.py
|
|
- ./test.py -g
|
|
- ./waf --regression
|
|
- ./waf --valgrind --regression (for valgrind version)
|
|
- There should be no regression errors at this time
|
|
10. Create final tarballs
|
|
- cd into ns-3-allinone level
|
|
- ./dist.py
|
|
- 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
|
|
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
|
|
- 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)
|
|
- 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)
|
|
- update references to releases in scripts/
|
|
|
|
- update roadmap on wiki
|
|
- commit and push changes
|
|
14. 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. 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.
|
|
16. announce to ns-developers, with summary of release notes
|