Files
unison/doc/release_steps.txt

219 lines
8.0 KiB
Plaintext
Raw Normal View History

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),
- 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
- hg clone http://code.nsnam.org/ns-3-allinone
- ./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:
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
release candidates, but lately we have not been bothering with this.
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.
2011-09-02 10:03:38 -07:00
At this point, you are ready for final packaging and repository/site work
tagging ns-3-dev and creating ns-3.X repositories
-------------------------------------------------
2012-06-05 11:52:01 -07:00
We'll refer to the release number as "X" or "x" below. The steps here
involve tagging ns-3-dev, copying over ns-3-dev to ns-3.X on code.nsnam.org,
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.
2011-09-02 10:03:38 -07:00
2012-06-05 11:52:01 -07:00
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
2009-10-14 11:20:49 -07:00
- cd into ns-3-dev
2011-05-25 18:23:23 -04:00
-- hg tag "ns-3.x"
2011-09-02 10:03:38 -07:00
-- 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
2009-10-14 11:20:49 -07:00
- ssh code.nsnam.org; sudo bash; su code;
2011-05-25 18:23:23 -04:00
-- 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>
2011-09-02 10:03:38 -07:00
2012-06-05 11:52:01 -07:00
3. check out a clean version of the new release (ns-3.x)
to a scratch directory on your local machine
- hg clone http://code.nsnam.org/ns-3.x
2011-09-02 10:03:38 -07:00
2012-06-05 11:52:01 -07:00
5. Update the VERSION for this new release, in the ns-3.x directory (i.e.
NOT in ns-3-dev)
2008-06-18 11:04:07 -07:00
- change the string 3-dev in the VERSION file to the real version
2012-06-05 11:52:01 -07:00
(e.g. 3.14) This must agree with the version name you chose in the clone.
2011-05-25 18:23:23 -04:00
- change the version and release string for the documentation in
doc/manual/source, doc/tutorial/source, doc/tutorial-pt-br/source,
2012-06-05 11:52:01 -07:00
and doc/models/source conf.py files
2011-05-25 18:23:23 -04:00
This should hopefully be updated in the future to simply pull from the
VERSION file.
2012-06-05 11:52:01 -07:00
- hg commit -m "update VERSION to ns-3.x"
2009-10-15 23:55:06 -07:00
- hg push ssh://code@code.nsnam.org//home/code/repos/ns-3.x
2011-09-02 10:03:38 -07:00
creating the distribution tarball
---------------------------------
1. Create final tarballs
2010-05-05 14:33:49 -04:00
You need to work with a clean ns-3-allinone-3.x directory
2011-09-02 10:03:38 -07:00
- hg clone http://code.nsnam.org/ns-3-allinone
- cd ns-3-allinone
2010-10-15 16:31:32 -07:00
- ./download.py -n ns-3.x
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
----------------------------
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
preparing the Wordpress-based main website
------------------------------------------
1. create a new ns-3.x page which should be visible from
http://www.nsnam.org/ns-3.x
- New Features
- Download
- Bugs Fixed
- Documentation
2. Repoint http://www.nsnam.org/releases/latest to the new page
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)
4. The main page http://www.nsnam.org should point to
ns-3.x in the "Download" and "Documentation" boxes
2013-07-09 06:09:38 -07:00
5. The releases page http://www.nsnam.org must be updated (including
source tarball link)
6. Create a blog entry to announce release
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
2011-09-02 10:55:35 -07:00
Bugzilla
--------
1. Add a product version "ns-3.x" to the available versions.
2011-09-02 10:03:38 -07:00
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
2010-10-15 16:31:32 -07:00
- download release from mercurial, 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/