Version 10

    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:

    1. ) the Release Tool

    2. ) 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.