On Dec 12, 2006, at 5:32 PM, Kevan Miller wrote:

On Dec 12, 2006, at 3:52 PM, Dain Sundstrom wrote:

Kevan asked me to go over the development/release process used when we have a single version number.

1 Make a development module in specs/trunk
[Maintince] svn cp specs/tags/<artifactId>-<latestVersion> specs/ trunk/<artifactId>
  [New] make a new mvn module at specs/trunk/<artifactId>

2 Make changes
There is no need to update inner spec depenencies since all will be marked as scope provided in the pom, so we don't get transitive problems.

3 Vote and Release
  update pom version
  create jars
  vote
  publish
  svn mv specs/trunk/<artifactId> specs/tags/<artifactId>-<version>

Alternatively, we can use the release plugin but the release plugin means we can't vote on the final jars since it automatically publishes to the final repository.

Thanks for the info Dain.

Not sure what you mean by "inner spec"

Dependencies between two specs. For example, connector depends on transaction.

and I should read up on "scope provided".

Provided basically turns of transitive dependencies for those using the module. This is very important for specs like connector since that same connector version is used by both j2ee 1.4 and jee 5, which would mean a dependency clash over JTA 1.0.1B in j2ee 1.4 and 1.1 in jee5. With provided the spec uses what ever version is provided by the environment.

What happens to the parent pom and the parent pom version during the release of a spec?

The parent pom version is not used by the child pom so there is no parent pom version problems during release. An example of the latter, is the generic apache pom which some projects extend from. This pom contains general apache information like the locations of the apache repositories:

  http://repo.mergere.com/maven2/org/apache/apache/3/apache-3.pom



-dain

Reply via email to