This is a tool for programmatically releasing snapshots on sourceforge under the JBoss project.
How To Release On Sourceforge
This tool allows for automatically checking out a specified module from a branch, compressing it into a gzipped tar and then uploading it on Sourceforge. The program then authenticates with the Sourceforge server, and associates the file with a release. If the file already exists on Sourceforge, it will be replaced by the one you release.
This requires the following:
) the Release Tool
) A Release Technician account on Sourceforge (username and password)
Buildfile structure
The build.xml file contains two targets.
- checkOut
This task performs a checkout of the module specified in the property file.
- compress
This task produces a tar.gz file from the checked out source files.
- cleanup
Performs cleanup and called by the other targets.
- directUpload
This task will upload the tar.gz onto sourceforge.
- sourceforge
Contains a call to the custom ant task '<sourceforge-release-file>' which associates the uploaded file with a release.
- upload
The default task of this project. It makes calls to all the tasks above.
Outline of the Custom task
The following is a sample of what the call to the task looks like:
<sourceforge-release-file username="${username}" password="${password}" groupID="${groupID}" packageID="${packageID}" releaseID="${releaseID}" processor="${processor}" type="${type}" releaseName="${releasename}"></sourceforge-release-file>
Attributes
The <sourceforge-release-file> custom ant task takes the following attributes:
The username and password represent the credentials of the Release Technician account.
The groupID attribute for our purposes will be "22866" which is the JBoss project.
The packageID attribute for our purposes will be "16942" which is the JBoss package.
The releaseID attribute requires the sourgeforge assigned value referring to the release. (for example the Snapshots release id is 344652)
The processor attribute refers to what kind of processor it is intended for. (for example AMD64, Intel, Platform-Independent, etc. See sourceforge for a complete list)
The type attribute refers to the file type. (for example .txt, Source .gz, Source .bz2, etc. See sourceforge for a complete list)
The releaseName attribute holds the name of the file which needs to be uploaded and released. It will default to the <modulename>-snapshot.tar.gz and can be specified by setting the 'releasename' property in the call to ant.
Build invocation
The invocation of ant is as follows:
$ant -Dusername=
In addition all other attribute variables can be passed from the command line as well.
Property files
There are a few property files included with this tool and each of these contain information about the branch and module.
For example the JBoss40.prop file looks like this:
# # JBoss40.prop # # This contains properties specific to JBoss v4.0 # # dirName=jboss-4.0 branchName=Branch_4_0
These two properties can also be passed in from the command line.
Comments