David Jencks wrote:
The specs tree seems to be in a mess with stuff in branches and waay
too much stuff in trunk, and many trunk poms having a xxx-SNAPSHOT
version where the latest tag is xxx.
I've attempted to document our previous decisions on spec development
and release in specs/branches/README:
WARNING
DO NOT DEVELOP ANY SPECS UNDER BRANCHES OR COPY ANY VERSIONS INTO
BRANCHES
ALL DEVELOPMENT MUST TAKE PLACE UNDER TRUNK
ANY CODE UNDER BRANCHES IS AN ERROR AND SHOULD BE CLEANED UP AS SOON
AS POSSIBLE
and specs/trunk/README.txt:
Structure
========
Only specs under active development should be in trunk. Once you
release, delete the trunk. If you need to make a change or bugfix,
copy the latest tag into trunk and work with that.
Be certain that all dependencies are marked "provided"
Do not copy any code into branches under any circumstances.
I'm not sure I agree with this. The documented procedures for releasing
involves moving the trunk version into branches using the eventual final
release name. Once moved, the poms are updated to remove the -SNAPSHOT
and the release candidates are built. Any changes resulting from the
voting process get made in the branch, and only once the release vote
has passed is the branched moved into the tag.
I do like that aspect of the process, since it allows you to see at a
glance what stage you're in. The other principles I agree with. All
development should take place in trunk. No changes should be made to
any files once it is tags. Branches should be reserved just for that
transitional zone between termination of active development and
finalization of the release.
Rick
Building
========
The is normally no root pom, so you need to build specs individually.
To build you will need:
* J2SE SDK 1.5+ (http://java.sun.com/j2se/1.4.2)
* Maven 2.0.7+ (http://maven.apache.org)
To build all changes incrementally:
mvn install
To perform clean builds, which are sometimes needed after some changes
to the
source tree:
mvn clean install
Releasing
=========
Use the maven-release-plugin.
Stage to your people.apache.org account or to your local machine and
scp to people.apache.org.
After a release vote has passed use the maven-stage-plugin to transfer
the voted artifacts to the apache release repo.
-----------------------------------
Please review, fix, and if you think this isn't what we agreed on
complain.
thanks
david jencks