2007-06-17 14:17:22 -07:00
|
|
|
Steps in doing an ns-3 release
|
|
|
|
|
|
2012-06-05 11:52:01 -07:00
|
|
|
We typically post release candidates for testing at the following URL:
|
|
|
|
|
https://www.nsnam.org/release/ns-allinone-3.X.rcX.tar.bz2
|
2011-09-02 10:03:38 -07:00
|
|
|
|
2012-06-05 11:52:01 -07:00
|
|
|
This overview covers the following release stages:
|
|
|
|
|
1) new feature additions and bug fixing
|
|
|
|
|
2) preparing release candidates for testing
|
|
|
|
|
3) making the actual release
|
|
|
|
|
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
|
2011-09-02 10:03:38 -07:00
|
|
|
- try Python visualizer (not tested by buildbots)
|
|
|
|
|
-- ./waf --pyrun src/flow-monitor/examples/wifi-olsr-flowmon.py --vis
|
|
|
|
|
- ensure that tests pass (./test.py -g) and make sure that the buildbots
|
2012-06-05 11:52:01 -07:00
|
|
|
are reporting blue based on the tip of the repository
|
2012-12-24 06:17:58 -08:00
|
|
|
- revise and check in AUTHORS, RELEASE_NOTES, and CHANGES.html
|
2012-06-05 11:52:01 -07:00
|
|
|
- required versions for related libraries (nsc, netanim, pybindgen)
|
|
|
|
|
are correct
|
2010-08-20 08:16:36 -07:00
|
|
|
- confirm that Doxygen builds cleanly (./waf doxygen),
|
2019-08-13 11:04:47 -07:00
|
|
|
- confirm that the new bake configurations for the release work correctly
|
2012-12-16 23:29:44 -08:00
|
|
|
- confirm all documents build: './waf docs' and check outputs
|
2011-09-02 10:03:38 -07:00
|
|
|
|
2012-06-05 11:52:01 -07:00
|
|
|
Check out a clean ns-3-dev somewhere using ns-3-allinone
|
2019-08-13 11:04:47 -07:00
|
|
|
- git clone https://gitlab.com/nsnam/ns-3-allinone.git
|
|
|
|
|
- cd ns-3-allinone
|
2012-06-05 11:52:01 -07:00
|
|
|
- ./download.py
|
|
|
|
|
- cd ns-3-dev
|
|
|
|
|
- edit VERSION such as "ns-3.14.rc1" (DO NOT commit this change to ns-3-dev)
|
|
|
|
|
- cd ..
|
|
|
|
|
- ./dist.py
|
|
|
|
|
|
|
|
|
|
This should yield a compressed tarfile, such as: ns-allinone-3.14.rc1.tar.bz2
|
|
|
|
|
Test this, and when satisfied, upload it to
|
|
|
|
|
www.nsnam.org:/var/www/html/releases/ (with apache:apache file ownership)
|
2011-09-02 10:03:38 -07:00
|
|
|
|
2012-06-05 11:52:01 -07:00
|
|
|
Announce it to ns-developers as:
|
2012-12-16 23:29:44 -08:00
|
|
|
https://www.nsnam.org/release/ns-allinone-3.14.rc1.tar.bz2
|
2011-09-02 10:03:38 -07:00
|
|
|
|
2012-06-05 11:52:01 -07:00
|
|
|
Iterate the above as needed during the release testing phase.
|
2011-09-02 10:03:38 -07:00
|
|
|
|
2012-06-05 11:52:01 -07:00
|
|
|
Note, in the past we have added mercurial tags to ns-3-dev to denote
|
2019-08-13 11:04:47 -07:00
|
|
|
release candidates, but lately we have not been tagging release candidates.
|
2012-06-05 11:52:01 -07:00
|
|
|
|
|
|
|
|
3) making the release
|
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
|
|
Follow similar steps for creating the release candidate tarballs, except
|
|
|
|
|
we will work off of a release repository.
|
2011-09-02 10:03:38 -07:00
|
|
|
|
|
|
|
|
At this point, you are ready for final packaging and repository/site work
|
|
|
|
|
|
2019-08-13 11:04:47 -07:00
|
|
|
We'll refer to the release number as "X" or "x" below.
|
2011-09-02 10:03:38 -07:00
|
|
|
|
|
|
|
|
creating the distribution tarball
|
|
|
|
|
---------------------------------
|
|
|
|
|
|
|
|
|
|
1. Create final tarballs
|
2019-08-13 11:04:47 -07:00
|
|
|
You need to work with a clean ns-3-allinone-3.x directory, assuming that
|
|
|
|
|
ns-3-dev is ready for inclusion as is, just with a modified VERSION file
|
|
|
|
|
- git clone https://gitlab.com/nsnam/ns-3-allinone.git
|
2011-09-02 10:03:38 -07:00
|
|
|
- cd ns-3-allinone
|
2019-08-13 11:04:47 -07:00
|
|
|
- ./download.py
|
|
|
|
|
- cd ns-3-dev
|
|
|
|
|
- edit VERSION to the proper '3.x' string (but do not commit this change)
|
|
|
|
|
- cd ../
|
2011-09-02 10:03:38 -07:00
|
|
|
- ./dist.py (notice we did not build here)
|
2009-10-09 23:51:23 -07:00
|
|
|
- this will create an ns-allinone-3.x.tar.bz2 tarball
|
2011-09-02 10:03:38 -07:00
|
|
|
- sanity check this tarball just to make sure everything went ok
|
|
|
|
|
|
|
|
|
|
2. upload "ns-allinone-3.x.tar.bz2" to the /var/www/html/releases/ directory on
|
2007-10-15 21:59:41 -07:00
|
|
|
the www.nsnam.org server
|
2009-10-09 23:51:23 -07:00
|
|
|
- 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 !$
|
2011-09-02 10:03:38 -07:00
|
|
|
|
|
|
|
|
3. give it 644 file permissions, and user/group = apache if it is not already
|
2009-10-09 23:51:23 -07:00
|
|
|
- sudo chown apache:apache ns-allinone-3.x.tar.bz2
|
|
|
|
|
- sudo chmod 644 ns-allinone-3.x.tar.bz2
|
2011-09-02 10:03:38 -07:00
|
|
|
|
|
|
|
|
4. if this is a final release (not RC)
|
2011-05-25 18:23:23 -04:00
|
|
|
- delete RC releases from /var/www/html/releases
|
2011-09-02 10:03:38 -07:00
|
|
|
|
|
|
|
|
preparing the documentation
|
|
|
|
|
----------------------------
|
|
|
|
|
|
2019-08-13 11:04:47 -07:00
|
|
|
Note: The below scripts currently presume mercurial and must be updated
|
|
|
|
|
|
2011-09-02 10:03:38 -07:00
|
|
|
1. If final release, build release documentation
|
2011-05-25 18:23:23 -04:00
|
|
|
- sudo bash; su nsnam; cd /home/nsnam/bin
|
2012-12-24 06:17:58 -08:00
|
|
|
./update-docs -r http://code.nsnam.org/ns-3.x -R
|
2011-09-02 10:03:38 -07:00
|
|
|
|
|
|
|
|
2. Check if these new files are available on the website
|
|
|
|
|
|
2014-02-27 06:34:42 -08:00
|
|
|
3. In ns-3-dev, edit the tutorial "Getting Started" page to
|
|
|
|
|
update the release version numbers.
|
|
|
|
|
|
2019-08-13 11:04:47 -07:00
|
|
|
preparing the Jekyll-based main website
|
|
|
|
|
---------------------------------------
|
2011-09-02 10:03:38 -07:00
|
|
|
|
|
|
|
|
1. create a new ns-3.x page which should be visible from
|
2019-08-13 11:04:47 -07:00
|
|
|
https://www.nsnam.org/releases/ns-3-x.
|
2011-09-02 10:03:38 -07:00
|
|
|
|
|
|
|
|
2. Repoint http://www.nsnam.org/releases/latest to the new page
|
2013-08-29 23:36:42 -07:00
|
|
|
Repoint http://www.nsnam.org/documentation/latest to the new page
|
2012-03-30 19:36:02 -07:00
|
|
|
Repoint /var/www/html/doxygen-release to the new release doxygen.
|
2011-09-02 10:03:38 -07:00
|
|
|
|
|
|
|
|
3. Update the Older Releases page to create an entry for the previous
|
|
|
|
|
release (there are two such pages, one under Releases and one under
|
|
|
|
|
Documentation)
|
|
|
|
|
|
2019-08-13 11:04:47 -07:00
|
|
|
4. Create a blog entry to announce release
|
2013-07-09 06:09:38 -07:00
|
|
|
|
2019-08-13 11:04:47 -07:00
|
|
|
patch for upgrade
|
|
|
|
|
-----------------
|
|
|
|
|
Prepare a patch for upgrading from ns-3.(x-1) to ns-3.x, and upload to
|
|
|
|
|
the releases directory on the web server.
|
2011-09-02 10:03:38 -07:00
|
|
|
|
|
|
|
|
ns-3 wiki edits
|
|
|
|
|
---------------
|
|
|
|
|
|
|
|
|
|
1. Create ns-3.(X+1) wiki page if not done already.
|
|
|
|
|
|
|
|
|
|
2. edit front page and Roadmap
|
|
|
|
|
|
|
|
|
|
Announcing
|
|
|
|
|
----------
|
|
|
|
|
|
|
|
|
|
1. Final checks
|
2011-05-25 18:23:23 -04:00
|
|
|
- check manual, tutorial, model, and doxygen documentation links
|
2010-10-15 16:31:32 -07:00
|
|
|
- download tarball from web, build and run tests for as many
|
2008-06-18 11:57:43 -07:00
|
|
|
targets as you can
|
2019-08-13 11:04:47 -07:00
|
|
|
- download release from GitLab.com and build and run tests for as
|
2008-06-18 11:57:43 -07:00
|
|
|
many targets as you can
|
|
|
|
|
- test and verify until you're confident the release is solid.
|
2011-09-02 10:03:38 -07:00
|
|
|
|
|
|
|
|
2. announce to ns-developers and ns-3-users, with summary of release notes
|
|
|
|
|
|
2012-06-05 12:12:49 -07:00
|
|
|
|
|
|
|
|
4) maintaining the release
|
|
|
|
|
--------------------------
|
|
|
|
|
|
|
|
|
|
First, create skeletal sections in CHANGES.html and RELEASE_NOTES to
|
|
|
|
|
start collecting inputs for the ns-3.(x+1) release.
|
|
|
|
|
|
|
|
|
|
The project may decide to make incremental, bug-fix releases from
|
|
|
|
|
time to time, with a minor version number (e.g. ns-3.7.1). To do
|
|
|
|
|
this, changesets may be cherry-picked from ns-3-dev and added to
|
|
|
|
|
ns-3.x repository. Do not move over changesets that pertain to
|
|
|
|
|
adding new features, but documentation fixes and bug fixes are good
|
|
|
|
|
changesets to make available in a minor release. The same steps
|
|
|
|
|
above for making a release are generally followed, although one
|
|
|
|
|
does not need to create a separate repository, but instead just tags
|
|
|
|
|
the existing ns-3-dev and ns-3.x repositories with a "ns-3.x.1" type
|
|
|
|
|
of tag.
|
|
|
|
|
|
|
|
|
|
Also, on the main website, make sure that "latest release" points to
|
|
|
|
|
the right page. See how it was handled for ns-3.12 (which made
|
|
|
|
|
a minor release): https://www.nsnam.org/ns-3.12/
|