Skip to content

Shipping a new release

andresriancho edited this page Feb 14, 2013 · 16 revisions

Building a new package

Only core w3af developers and package maintainers (like Debian, Fedora, FreeBSD package maintainers) will find this section useful, these are the main steps that we'll go through:

  • Create the release branch
  • Set release version
  • Update the CHANGELOG file
  • Create the source code documentation using Sphinx
  • Create distributable package
  • Upload the files to w3af.org
  • Run final git flow commands
  • Community tasks related to a release

Create the release branch

Choose a version number and then run the following command:

git flow release start <version-number>

Set release version

Setting the version for the next release is trivial, just change the core/data/constants/version.txt file to the required version.

Update the changelog

Each release is associated with a milestone, when updating the readme/CHANGELOG use the issues in the milestone as a source for the CHANGELOG.

(15 Feb 2013)    Version 1.5
============================
Github tag: https://github.com/andresriancho/w3af/tree/1.5
Github milestone: https://github.com/andresriancho/w3af/issues?milestone=2

* Change A
* Change B
...
* Change N

Create source code documentation

  1. Run Sphinx
  2. Upload the generated code to w3af.org

Create distributable package

Generic source package

There are many linux distributions and we can't have packages for all of them, that's why the easiest way for us to distribute a w3af build is in "source code form". This will build a bz2 which holds all the source code and set the correct version:

# Get the package generator
git clone [email protected]:andresriancho/w3af-packages.git
cd w3af-packages/generic/

# Generate the package
# python create_bz2.py <w3af-source-path> <version>
python create_bz2.py /home/user/workspace/w3af/ 1.5

After running this command we have a new file named "w3af-.tar.bz2" (in this example 1.5) in the current directory. Then you need to run a short unittest on the package to verify everything's fine:

# This script unpacks the bz2 in /tmp/ and runs basic unittests
python unittest_bz2.py w3af-1.5.tar.bz2

For Windows

Create the Windows installer following this guide.

Upload the files to w3af.org

scp w3af-v1.5.bz2 [email protected]:/var/www/...
scp w3af-v1.5.bz2.md5 [email protected]:/var/www/...

And update the downloads page.

Run final git flow commands

Run these commands to merge the release branch into master and tag it.

git flow release finish
git flow release publish <version-number> - "Tagging the 1.5 release of the w3af project."

Community tasks related to a release

Let the community know about this new release!