update release steps
parent
94ee9680b1
commit
30773472d1
|
@ -1,93 +1,89 @@
|
||||||
Steps in doing an ns-3 release
|
Steps in doing an ns-3 release
|
||||||
|
|
||||||
ns-3-dev preparation
|
We typically post release candidates for testing at the following URL:
|
||||||
--------------------
|
https://www.nsnam.org/release/ns-allinone-3.X.rcX.tar.bz2
|
||||||
|
|
||||||
1. check out a clean ns-3-dev somewhere using ns-3-allinone (you will need it)
|
This overview covers the following release stages:
|
||||||
- hg clone http://code.nsnam.org/ns-3-allinone
|
1) new feature additions and bug fixing
|
||||||
- ./download.py
|
2) preparing release candidates for testing
|
||||||
- ./build.py --enable-examples --enable-tests
|
3) making the actual release
|
||||||
- try building static, optimized, and debug versions
|
4) maintaining the release
|
||||||
|
|
||||||
|
1) new feature additions and bug fixing
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
|
During the software development phase, it is important for the release
|
||||||
|
manager to try to maintain the following files with updated information:
|
||||||
|
- AUTHORS
|
||||||
|
- RELEASE_NOTES
|
||||||
|
- CHANGES.html
|
||||||
|
|
||||||
|
otherwise, this becomes painful to edit (and things are forgotten)
|
||||||
|
when the release is imminent.
|
||||||
|
|
||||||
|
2) preparing release candidates for testing
|
||||||
|
-------------------------------------------
|
||||||
|
|
||||||
|
This step presumes that you have a reasonably solid ns-3-dev that you
|
||||||
|
and/or the buildbots have been testing
|
||||||
|
- building static, optimized, and debug versions
|
||||||
- try Python visualizer (not tested by buildbots)
|
- try Python visualizer (not tested by buildbots)
|
||||||
-- ./waf --pyrun src/flow-monitor/examples/wifi-olsr-flowmon.py --vis
|
-- ./waf --pyrun src/flow-monitor/examples/wifi-olsr-flowmon.py --vis
|
||||||
- cd ns-3-dev
|
|
||||||
- ensure that tests pass (./test.py -g) and make sure that the buildbots
|
- ensure that tests pass (./test.py -g) and make sure that the buildbots
|
||||||
are reporting greens based on the tip of the repository
|
are reporting blue based on the tip of the repository
|
||||||
|
- revise and check in AUTHORS, RELEASE_NOTES, and CHANGES>html
|
||||||
2. prepare the source files
|
- required versions for related libraries (nsc, netanim, pybindgen)
|
||||||
- revise and check in AUTHORS, if needed
|
are correct
|
||||||
- revise and check in RELEASE_NOTES. Make sure to edit the Availability
|
- make latexpdf in the doc/manual, doc/models, and doc/tutorial directories
|
||||||
section if this is a final release.
|
|
||||||
- DO NOT change VERSION at this time
|
|
||||||
- confirm that Doxygen builds cleanly (./waf doxygen),
|
- confirm that Doxygen builds cleanly (./waf doxygen),
|
||||||
and check in any necessary changes. Currently, doxygen does not build
|
|
||||||
cleanly, we need to fix this over time.
|
|
||||||
|
|
||||||
At this point, the ns-3-dev should be ready, except for changing the
|
Check out a clean ns-3-dev somewhere using ns-3-allinone
|
||||||
name of this repo from "3-dev" to the numbered release. That will come
|
- hg clone http://code.nsnam.org/ns-3-allinone
|
||||||
in subsequent steps.
|
|
||||||
|
|
||||||
ns-allinone-3.X.tar.bz2 dry run
|
|
||||||
-------------------------------
|
|
||||||
|
|
||||||
This phase is optional to dry-run a tarball before tagging. You may skip
|
|
||||||
to the next phase if you are ready to just make the release or release
|
|
||||||
candidate.
|
|
||||||
|
|
||||||
1. check out a clean ns-3-allinone again
|
|
||||||
- change into the allinone directory
|
|
||||||
- ./download.py
|
- ./download.py
|
||||||
- cd ns-3-dev
|
- cd ns-3-dev
|
||||||
- change VERSION to the appropriate string, either "3.X" (for a release) or
|
- edit VERSION such as "ns-3.14.rc1" (DO NOT commit this change to ns-3-dev)
|
||||||
"3.X.RC1" Do not commit this VERSION change to ns-3-dev. It is used
|
- cd ..
|
||||||
by dist.py script to name the directory properly.
|
- ./dist.py
|
||||||
- cd into allinone directory and type "./dist.py"; you should see something
|
|
||||||
like this:
|
|
||||||
|
|
||||||
NS-3 version: '3.12'
|
This should yield a compressed tarfile, such as: ns-allinone-3.14.rc1.tar.bz2
|
||||||
Adding ns-3-dev as ns-allinone-3.12/ns-3.12
|
Test this, and when satisfied, upload it to
|
||||||
Adding pybindgen as ns-allinone-3.12/pybindgen-0.15.0.795
|
www.nsnam.org:/var/www/html/releases/ (with apache:apache file ownership)
|
||||||
Adding nsc as ns-allinone-3.12/nsc-0.5.2
|
|
||||||
Adding the build script files
|
|
||||||
|
|
||||||
This will create an ns-allinone-3.X.tar.bz2 tarball
|
Announce it to ns-developers as:
|
||||||
|
https://www.nsnam.org/release/ns-allinone-3.14.rc3.tar.bz2
|
||||||
|
|
||||||
2. test tarball on release platforms
|
Iterate the above as needed during the release testing phase.
|
||||||
- optimized, debug, and static builds
|
|
||||||
- ./test.py -g
|
Note, in the past we have added mercurial tags to ns-3-dev to denote
|
||||||
- make latexpdf in the doc/manual, doc/models, and doc/tutorial directories
|
release candidates, but lately we have not been bothering with this.
|
||||||
- ./waf --doxygen
|
If you would like to tag a release candidate, follow these steps
|
||||||
|
-- hg tag "ns-3.X.rcX" (for the appropriate version numbers)
|
||||||
|
-- hg push ssh://code@code.nsnam.org/repos/ns-3-dev
|
||||||
|
|
||||||
|
3) making the release
|
||||||
|
---------------------
|
||||||
|
|
||||||
|
Follow similar steps for creating the release candidate tarballs, except
|
||||||
|
we will work off of a release repository.
|
||||||
|
|
||||||
At this point, you are ready for final packaging and repository/site work
|
At this point, you are ready for final packaging and repository/site work
|
||||||
|
|
||||||
tagging ns-3-dev and creating ns-3.X repositories
|
tagging ns-3-dev and creating ns-3.X repositories
|
||||||
-------------------------------------------------
|
-------------------------------------------------
|
||||||
|
|
||||||
The steps here involve tagging ns-3-dev, copying over ns-3-dev to ns-3.X
|
We'll refer to the release number as "X" or "x" below. The steps here
|
||||||
on code.nsnam.org, cloning it locally, making changes from "3-dev" to "3.X"
|
involve tagging ns-3-dev, copying over ns-3-dev to ns-3.X on code.nsnam.org,
|
||||||
in various places, and checking in those changes to the new ns-3.X repository.
|
cloning it locally, making changes from "3-dev" to "3.X" in various places,
|
||||||
|
and checking in those changes to the new ns-3.X repository.
|
||||||
|
|
||||||
1. once you are happy with the tarball, tag ns-3-dev
|
1. once you are happy with the most recent release candidate tarball and
|
||||||
|
do not plan to further touch ns-3-dev, tag ns-3-dev
|
||||||
- cd into ns-3-dev
|
- cd into ns-3-dev
|
||||||
- if release candidate
|
|
||||||
-- hg tag "ns-3.x-RCy"
|
|
||||||
-- hg push ssh://code@code.nsnam.org//home/code/repos/ns-3-dev
|
|
||||||
- else if final release
|
|
||||||
-- hg tag "ns-3.x"
|
-- hg tag "ns-3.x"
|
||||||
-- hg push ssh://code@code.nsnam.org//home/code/repos/ns-3-dev
|
-- hg push ssh://code@code.nsnam.org//home/code/repos/ns-3-dev
|
||||||
|
|
||||||
2. copy the tagged ns-3-dev and place it on the repository
|
2. copy the tagged ns-3-dev and place it on the repository
|
||||||
- ssh code.nsnam.org; sudo bash; su code;
|
- ssh code.nsnam.org; sudo bash; su code;
|
||||||
- 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
|
-- 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:
|
-- cd /home/code/repos/ns-3.x/.hg and edit the hgrc appropriately:
|
||||||
[paths]
|
[paths]
|
||||||
|
@ -97,21 +93,20 @@ in various places, and checking in those changes to the new ns-3.X repository.
|
||||||
name = ns-3.x
|
name = ns-3.x
|
||||||
contact = <ns-developers@isi.edu>
|
contact = <ns-developers@isi.edu>
|
||||||
|
|
||||||
3. If this is a final release (not RC)
|
3. check out a clean version of the new release (ns-3.x)
|
||||||
- move (mv) ns-3.x RCs in /home/code/archived-repos
|
to a scratch directory on your local machine
|
||||||
|
- hg clone http://code.nsnam.org/ns-3.x
|
||||||
|
|
||||||
4. check out a clean version of the new release (ns-3.x) or (ns-3.x-RCy)
|
5. Update the VERSION for this new release, in the ns-3.x directory (i.e.
|
||||||
to your local machine
|
NOT in ns-3-dev)
|
||||||
- hg clone http://code.nsnam.org/ns-3.x or (-RCy)
|
|
||||||
|
|
||||||
5. Update the VERSION for this new release
|
|
||||||
- change the string 3-dev in the VERSION file to the real version
|
- 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.
|
(e.g. 3.14) This must agree with the version name you chose in the clone.
|
||||||
- change the version and release string for the documentation in
|
- change the version and release string for the documentation in
|
||||||
doc/manual/source, doc/tutorial/source, and doc/models/source conf.py files
|
doc/manual/source, doc/tutorial/source, doc/tutorial-pt/source,
|
||||||
|
and doc/models/source conf.py files
|
||||||
This should hopefully be updated in the future to simply pull from the
|
This should hopefully be updated in the future to simply pull from the
|
||||||
VERSION file.
|
VERSION file.
|
||||||
- hg commit -m "update VERSION to ns-3.x" or (-RCy), you get the point
|
- hg commit -m "update VERSION to ns-3.x"
|
||||||
- hg push ssh://code@code.nsnam.org//home/code/repos/ns-3.x
|
- hg push ssh://code@code.nsnam.org//home/code/repos/ns-3.x
|
||||||
|
|
||||||
creating the distribution tarball
|
creating the distribution tarball
|
||||||
|
@ -171,7 +166,7 @@ Documentation)
|
||||||
4. The main page http://www.nsnam.org should point to
|
4. The main page http://www.nsnam.org should point to
|
||||||
ns-3.x in the "Download" and "Documentation" boxes
|
ns-3.x in the "Download" and "Documentation" boxes
|
||||||
|
|
||||||
5. Create blog entry to announce release
|
5. Create a blog entry to announce release
|
||||||
|
|
||||||
ns-3 wiki edits
|
ns-3 wiki edits
|
||||||
---------------
|
---------------
|
||||||
|
|
Loading…
Reference in New Issue