I found the following Maven pages describing versions (I don't know if these are out of date):

http://docs.codehaus.org/display/MAVEN/Dependency+Mediation+and+Conflict+Resolution

   http://docs.codehaus.org/display/MAVEN/Extending+Maven+2.0+Dependencies

In the 2nd URL above it says that the version section of a Maven version should be numeric. It describes a version being in the format:

   <major>.<minor>.<revision>([ -<qualifier> ] | [ -<build> ]).

You are proposing that we have a '-' character in the revision section (using Maven's terminology) which doesn't agree with the numeric requirement. The doc also says that a revision is optional and will default to ".0" if not set. So I'm not sure if Maven will see a non-numeric revision and then default the revision to ".0" and then use the revision containing the '-' as a qualifier. If it is used as a qualifier, it looks like the qualifier is lexicographically compared, therefore geronimo_deployment_plugin_version=1.2.0-10 will be less than geronimo_deployment_plugin_version=1.2.0-2 .

I haven't looked at the code to confirm any of this. Maybe one of the Maven guys could confirm what happens to your proposed <geronimo-micro>-<plugin-build-number> containing the '-' character.

Regards,

John

Dain Sundstrom wrote:
I think we have a problem with the current version numbering of plugins. We are using the following scheme to generate the version numbers:

<geronimo-major>.<geronimo-minor>.<plugin-build-number>

The first two match the geronimo version and the last is a number that is incremented with each change to the plugin (this forces maven to download the new version). I think this scheme will break as soon as we do a geronimo release that has a micro (3 dotted) revision. We haven't seen this problem yet in Geronimo but we almost saw it when we were working on geronimo 1.0.1. I propose we change to the following scheme:

<geronimo-major>.<geronimo-minor>.<geronimo-micro>-<plugin-build-number>

Using this scheme HEAD version plugin version numbers would be:

geronimo_packaging_plugin_version=1.2.0-3
geronimo_assembly_plugin_version=1.2.0-8
geronimo_deployment_plugin_version=1.2.0-1
geronimo_dependency_plugin_version=1.2.0-1

branches/1.1 would become:

geronimo_packaging_plugin_version=1.1.0-2
geronimo_assembly_plugin_version=1.1.0-8
geronimo_deployment_plugin_version=1.1.0-1
geronimo_dependency_plugin_version=1.1.0-1

We could optionally leave off the extra .0 before the dash but I think we should leave it in for clarity.

I'd like to implement this quickly since the build is broken due to me changing the trunk version to 1.2 and not incrementing the plugins. So please let me know quickly if you have an issue with the changes[1].

-dain

[1] We can always back the changes out but we could have published plugins that have bad version numbers, which is something I'd like to avoid.





Reply via email to