On 12/11/06, Scott Lewis <[EMAIL PROTECTED]> wrote:
There is a (recently proposed/adopted) version numbering spec that describes using the qualifier segment to distinguish between release, integration, and nightly builds. See here for the details:
I can see that the docs outline rules in choosing a qualifier name for specific branches, but I still can't see anything useful that could be used to identify a final release (maybe I don't look in the correct place?). To be clear, this is the list of differences between eclipse and maven versioning that I tried to solve (or still needs to be solved): - in maven final releases don't have a build number attached, while snapshots do. For eclipse everything has a build number attached and there is no way to distinguish between snapshot-equivalent builds and releases (this needs to be done manually by passing the -DstripQualifier=true flag to make-artifacts) - the eclipse qualifier (=the maven build number, or "the 4th token") can be a string, in maven MUST be numeric (the make-artifacts support a forced qualifier/build number for this) - the 4th token MUST be separated with "-" in maven, while in osgi MUST be "." (this is handled by the make-artifacts goal actually). A version like 1.2.3-4 in maven is parsed as [major 1, minor 2, patch 3, build 4], a version like 1.2.3.4 is parsed as [major 0, minor 0, patch 0, build 0, qualifier "1.2.3.4"] (funny, I discovered this only recently by looking at DefaultVersion unit tests... I can't say I like it but that's how maven works and it's expected to work, you will never notice it till you will experiment 4 digits version numbers, and osgi bundles HAVE 4 digits version numbers). - not a problem, but just a note: in eclipse each artifact in a single build can have a different qualifiers: this makes linking projects from the same release a real mess (the make-artifacts supports replacing qualifier with a forced build number for this too) - osgi bundles can specify a dependency without a version number, maven can't (this is handled by make-artifacts by adding a "any version >0" version tag) - not strictly a problem, just another note: version ranges in osgi bundles are hard requirements, while maven usually uses soft requirements. This makes the correct versioning number more and more required since you can easily run into "over-costrained version" problems: for example you will run into it when org.apache.xerces is deployed with a build number, and another osgi bundles depends on it using a strict requirement with a 3 digit only version (which in OSGI also matches a build with a qualifier, in maven doesn't). - last but not least: package-level dependencies can't be handled by maven as is. IMHO this could not be a big problem at the moment: you could be forced to manually add transitive dependencies but at the end it doesn't really hurt (BTW, in eclipse builds package-level dependencies are very rare) this is what I found out by months of trial and errors, I will be happy to complete this list with any other issue found by users. fabrizio --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]