Note: Article currently under development
This article describes the steps to follow when building a mapbuilder-lib release.
Notify developers that you are about to make a release and request users for the LICENSE file.
At least 24 hours before building a release. This should allow them to ensure their fixes are in the code base. The email should also request a list of new developers to add to the LICENSE file.
Here is a sample email.
We will start the process of building a new Mapbuilder release in 24 hours. Could everyone please ensure that all code is committed. Once we start, please don't commit any files until the release is completed. I will also be updating the LICENSE file. The LICENSE file assigns copywrite to all developers with commit access who have contibuted to mapbuilder. It currently lists: <insert list from LICENSE file> If you have commit access, and have committed code, could you please let me know your name and Login ID so that I can add you to this list.
Update the LICENSE file
Once people respond, update the LICENSE file and commit to subversion.
svn commit -m "Added users to LICENSE" <filenames>
Check all code back into Subversion
If you have not done so already, check all the code you have been editing into Subversion.
svn commit -m "Fixed xxx bugs" <filenames>
Update the CHANGES file
Update and commit CHANGES file with updates between the last release and this one. These files should be in the base directory.
These can be found in the Project Plan
Commit CHANGES back into SVN
svn commit -m "Prepared CHANGES for release <release-number>" CHANGES
Set release version in properties.xml
in mapbuilder/default.properties set the app.version value to the current release. This should look something like:
Commit the new build.xml back into SVN.
Get latest updates from SVN
Ensure you have the latest files from SVN.
$ cd /<mapbuilder development directory> $ svn update -r HEAD
Tag the release
Tag the files that should be in the release. (Usually, not all files in SVN are included in a release).
The <tag> should be of the form: mapbuilder-lib-[number]-[status]
$ mkdir -m "Creation of tag." svn+ssh://svn.codehaus.org/home/projects/mapbuilder/scm/tags/<tag> $ mkdir -m "" svn+ssh://svn.codehaus.org/home/projects/mapbuilder/scm/tags/<tag>/mapbuilder $ copy -rHEAD svn+ssh://svn.codehaus.org/home/projects/mapbuilder/scm/trunk/mapbuilder/mapbuilder svn+ssh://svn.codehaus.org/home/projects/mapbuilder/scm/tags/<tag>
Export the release
This may be performed as the anonymous SVN user.
$ mkdir ~/tmp $ cd ~/tmp $ svn export https://svn.codehaus.org/mapbuilder/tags/<tag>/mapbuilder mapbuilder
Install JSDoc dependancies
JSDoc builds javadoc like documentation for all the Mapbuilder classes and it requires a Perl module not available by default. You will know you don't have it installed because when you try to build the distribution (next step) you will see an error in your output which looks something like: "Can't locate HTML/Template.pm in @INC".
In windows install ActivePerl.
In linux do the following (as described at http://jsdoc.sourceforge.net/ ).
sudo perl -MCPAN -e 'install HTML::Template'
Then provide default answers to all questions. (Yes, it is a pain).
Build the distribution
$ cd ~/tmp/mapbuilder/ $ ant -f build/build.xml dist
Test the release
Run through the manual testing process described at Testing.
Get signoff from mapbuilder developers
Copy the release to a tmp directory (where?) and give mapbuilder-devel 24 hours to check. Ask developers to check against the criteria at Testing.
Upload to Sourceforge and make Sourceforge Release
Log into https://sourceforge.net/projects/mapbuilder/
Navigate to Files -> mapbuilder-lib
Add a new folder for the release.
Upload the 3 files.
Navigate to the uploaded mapbuilder-lib-*.zip and mark it as the default download by clicking "Select All" in the "view details" (i-button).
Update release tags in JIRA
Set the release date for the current release. Any issues which were tagged to be fixed in this release should be moved to the next release.
Update Web Pages
Update notice at: http://docs.codehaus.org/display/MAP/Downloads and http://docs.codehaus.org/display/MAP/Home
Notify OSGeo as per https://www.osgeo.org/content/news/submit_news.html. For significant announcements, the following URL might also be relevant: http://wiki.osgeo.org/index.php/Press_Release_Process