db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-2573) Create master ant target for generating all release artifacts, including code and doc artifacts
Date Wed, 06 Oct 2010 18:48:32 GMT

     [ https://issues.apache.org/jira/browse/DERBY-2573?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Rick Hillegas updated DERBY-2573:

    Attachment: derby-2573-01-aa-masterTarget.diff

Attaching derby-2573-01-aa-masterTarget.diff. This patch expands on the work Myrna did. This
patch adds a master release target which builds and signs the distributions. I would appreciate
it if another release manager could test-drive the master release target to see if it works
for someone other than me (see the "How to Run It" section below).

After the target finishes, release/distributions holds all of the signed artifacts except
for the Eclipse ui plugin.

The remainder of this comment addresses the following topics:

o What the Target Does

o How to Run It

o Future Work

o Overview of Changes

-------------- What the Target Does ------------------

The master build target does the following:

o Commits the generated SQLState tables to the docs repository.

o Syncs both the code and doc clients so that they are up to date.

o Builds sane and insane jars.

o Builds the public javadoc and the Eclipse core plugin.

o Builds the user docs.

o Builds and signs the distributions.

-------------- How to Run It ------------------

The master build target can be invoked by a bash script, buildrelease. This script does two
jobs for you:

1) Sets the CLASSPATH needed to run the docs build

2) Asks you for security credentials

The very last line of the script is the actual ant command which invokes the master build
target. If you don't use bash scripts, you can at least consult buildrelease for how to set
up your ant command.

The buildrelease script expects that you have set the DOCS_ROOT environment variable to point
at the top directory of your docs client. If you have not done so, the script fails. The script
prompts you for your Apache subversion credentials and for your pgp passphrase. Then the script
invokes the master build target. So, to build a release, do the following:

export DOCS_ROOT=someplaceInYourFileSystem
cd topDirectoryOfYourCodeClient

...and answer the questions which buildrelease asks.

Again, if you don't use bash, you can invoke ant directly. Make sure that you have set CLASSPATH
to include the libraries needed by the docs build. The actual ant command for invoking the
master build target is this:

ant "-Ddocs.root=$DOCS_ROOT" "-Dpgp.passphrase=$pgpPassphrase" "-Dsvn.username=$subversionUserName"
"-Dsvn.password=$subversionPassword" -quiet release

-------------- Future Work ------------------

Follow-on patches can add more functionality:

i) Fail the build if the docs and/or code clients have uncommitted work in them.

ii) Prompt for a release string and then update and checkin tools/ant/properties/release.properties

-------------- Overview of Changes ------------------

1) Replaced the docs.out variable with docs.root. The former pointed at the output of the
docs build while the latter points at the root of the whole docs client. The docs.root variable
allows more straightforward references to docs files.

2) Made prepareforrelease check that docs.root has been set to something reasonable.

3) Made prepareforrelease check that your subversion username and password have been specified.
These are the subversion credentials which you use to commit work to the Apache repositories.
They are used to checkin the generated SQLState tables in your docs client.

4) Made prepareforrelease check that your pgp passphrase has been specified. The passphrase
is needed in order to sign the distributions.

5) Synced both the code and docs clients so that they are up to date.

6) Fixed some problems in the setting of the sanity state.

7) Added a master release target which creates and signs the distributions.

Touches the following files:

M      java/engine/org/apache/derby/loc/build.xml
M      build.xml
M      tools/release/build.xml
M      tools/ant/properties/packaging.tmpl
M      tools/ant/properties/dirs.properties
A      buildrelease

> Create master ant target for generating all release artifacts, including code and doc
> -----------------------------------------------------------------------------------------------
>                 Key: DERBY-2573
>                 URL: https://issues.apache.org/jira/browse/DERBY-2573
>             Project: Derby
>          Issue Type: Improvement
>          Components: Build tools
>    Affects Versions:
>            Reporter: Rick Hillegas
>            Assignee: Rick Hillegas
>         Attachments: derby-2573-01-aa-masterTarget.diff, DERBY-2573.diff_1notforcommit
> This is one of the tasks tracked by master JIRA DERBY-2571.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message