====== How to Create a New Release ====== ===== Increment Version Number Appropriately ===== First thing's first... How do you increment version numbers? [[http://fossology.org/pipermail/fossology/2007-December/000027.html|This mailing list post]] describes the version number in detail. To summarize: A.B.C where A = Major release number Reason for change: schema and/or agent API _breakage_ B = Minor release number Reasons for change: schema and/or agent APIs are _added_ or _extended_ new agents added security fixes major roll up of bugfixes C = Bugfix release number Reasons for change: any bugfix worth doing a new release/test cycl ===== Tagging the release in subversion ===== - Edit ''trunk/fossology/Makefile.conf'' in subversion and increment the ''VERSION'' variable to the appropriate version number based on the guidelines above. - Create a new tag for the release: tag the ''trunk/fossology/'' directory and save it in ''/tags//fossology/'' * Create a new tag directory for version ''A.B.C'': svn mkdir https://fossology.svn.sourceforge.net/svnroot/fossology/tags/A.B.C * Create the new tagged version within that directory, tagging subversion revision ''NNN'': svn copy -r NNN https://fossology.svn.sourceforge.net/svnroot/fossology/trunk/fossology \ https://fossology.svn.sourceforge.net/svnroot/fossology/tags/A.B.C/ In the case where you're tagging the top of tree, you can omit the ''-r NNN'' parameter. * If you need to update individual files in the tagged version, remove the file(s) first and then replace them with: svn delete https://fossology.svn.sourceforge.net/svnroot/fossology/tags/0.8.0/fossology/ svn copy https://fossology.svn.sourceforge.net/svnroot/fossology/trunk/fossology/ \ https://fossology.svn.sourceforge.net/svnroot/fossology/tags/A.B.C/ Now you should have a nice tidy directory in /tags/A.B.C/fossology/ where the released bits live. From here you can proceed to rolling a tarball and uploading the file release to sourceforge. ===== Creating a tarball ===== To create a tarball, check out the released version. Within that directory, simply run make tar-release This will create a file called ''fossology-A.B.C.tar.gz''. Now you're ready to do a file release on Sourceforge! ===== Creating a Sourceforge file release ===== * Go to https://frs.sourceforge.net/webupload - the Sourceforge file release system (FRS) web upload. You'll need a sf.net login/username (the same as you would use to do svn checkins). * Upload the file from your local system. * (...possible other steps)... * Now log into the sourceforge website using your fossology developer account. From the "Admin" tab at the far right of the FOSSology project site at sourceforge, select "File Release". You should see the fossology project listed as an existing package. Click on the "Add Release" button. * For "New Release Name" type in the A.B.C release number. * For "Release Notes" you can simply type something in such as "Please refer to http://fossology.org/ for the latest release notes". Scroll down and select the checkbox next to the fossology tarball we just FTP'd up. You may need to click on "Submit/Refresh" to get the updated list of files. then click on "Add Files and/or refresh view". * Now you'll need to select both the "Processor" -- since this is a source code package, just choose "Platform-Independent"; and also "File Type" -- since it is a gzipped source tarball, select "Source .gz". * Note there is no final "Submit" once you've updated all the fields. The file is released. You can confirm this by going to the "Download" tab in sourceforge and ensuring the file you just uploaded shows up there. ===== Writing Release Notes ===== You must create a set of release notes in Dokuwiki at http://fossology.org/release_notes Simply add the release notes to the top of the page, shifting all the previous versions down below them. Be sure to highlight all the new features, bugfixes, any other errata. ===== Add news blurb to front page ===== Be sure to update the http://fossology.org/ front page with a short news blurb about the new release. You may also want to remove the oldest news blurb as well, to keep the page a bit current and up-to-date. ===== Sending email announcement ===== Finally it's important to send an announcement of the new release to the mailing list. Email to ''fossology@fossology.org'' something like the following: Subject: Announcing FOSSology A.B.C Release The FOSSology Project is pleased to announce the release of FOSSology A.B.C. New in version A.B.C: * New feature * New feature * Important bug fix * etc... don't get too specific, but try to highlight the major changes For more information on the FOSSology project and to download the software, please visit http://fossology.org/ -- About FOSSology -- FOSSology is a Free Open Source Software (FOSS) project built around an open and modular architecture for analyzing software. Existing modules include license analysis, meta data extraction, and MIME type identification. This open source software tool analyzes a given set of software packages, and reports items such as the software licenses used by these packages. More than simply reporting, “Package X uses license Y,” the FOSSology tool attempts to analyze every file within the package to determine its license. The license report is thus an aggregate of all of the different licenses found to be in use by a package. A single package may be labeled as “GPL” but contain files that use other licenses (BSD, OSL, or any of the hundreds of other licenses). Even if an exact license is unknown, the license may be identifiable by common license phrases. The FOSSology Project started as an internal software development effort within Hewlett Packard’s Open Source and Linux Organization. The tool evolved over several years at HP from a few simple shell scripts to the much more comprehensive tool you see today. Enjoy! The FOSSology team ===== Post-incrementing the version number in svn ==== After making a release, increment the version number in ''trunk/fossology/Makefile.conf'' in subversion. Increment the least-significant digit by 1, and add "~svn" to it (tilde svn). For example if the release you just completed was ''"0.17.0"'', update ''Makefile.conf'' in subversion to be version "''0.17.1~svn''". Why? So that future checkouts of HEAD will not advertise being the previous release, which they certainly are not.