On Sun, Mar 2, 2014 at 7:49 PM, Remko Popma <[email protected]> wrote:

> In that case I'd be fine with 2.0.0.RELEASE for the reasons you mentioned.
>

This is only for OSGi right? I'd hate to have to use that as Maven coords.

Gary


>
> Sent from my iPhone
>
> On 2014/03/03, at 9:35, Matt Sicker <[email protected]> wrote:
>
> Right. You can specify this all as metadata. It's easier to use the same
> version number as the Maven artefacts, but it doesn't have to be the same
> at all.
>
>
> On 2 March 2014 18:16, Remko Popma <[email protected]> wrote:
>
>> To clarify, whatever we decide on the OSGi version number string *only*
>> affects the value for an OSGi-specific attribute in the manifest, right?
>> (Not sure if this attribute exists in the manifest for all jar files or
>> only for the OSGi ones.)
>>
>> So it doesn't affect the jar/zip file names. Correct?
>>
>> Sent from my iPhone
>>
>> On 2014/03/03, at 6:56, Matt Sicker <[email protected]> wrote:
>>
>> Alright, I know I've brought this up a couple times, but this is also
>> based on new information I've learned about the esoteric rules behind
>> versioning in OSGi (which I'm pretty sure also applies to Maven; however,
>> most people don't use version number ranges in Maven dependencies).
>>
>> Here's everything you need to know about how version numbers are
>> interpreted by these different build systems. As expected, a version number
>> is in the form X.Y.Z.Description, although not all fields are required. X,
>> or "major", is the only required one, and version 2 is equivalent to 2.0 as
>> well as 2.0.0. However, that description part at the end adds a further
>> version number, and that one is compared lexicographically. This means that
>> 2.0.0.beta1 comes after 2.0.0.alpha4, but it ALSO means that 2.0.0.alpha1
>> is considered _newer_ than 2.0.0. Yeah, that's right. Now I see why some
>> projects like Spring tend to use the scheme 4.0.2.RELEASE; RELEASE comes
>> after alpha, beta, RC, prerelease, or practically any other naming scheme.
>> If you don't use RC versions, then FINAL or GA are also fine choices.
>>
>> That being said, because we've released 2.0.0.RC1 et al., the most
>> effective way to enforce the release version of 2.0.0 to be considered the
>> newest 2.0.0 release would be naming it something like 2.0.0.RELEASE. A
>> real cheap way to bypass that is releasing it as version 2.0.1, but then
>> the version numbers get out of sync right away.
>>
>> Unless someone has a fun release name that comes late in the alphabet
>> like ZETA or something. That would solve any potential naming problems
>> rather effectively.
>>
>> I don't know what the exact details are for Maven/Ivy/Gradle/etc. version
>> number interpretation, but I'm pretty sure it follows almost the same exact
>> standard, but with less stringent requirements on how the part after X.Y.Z
>> looks (e.g., you can use dashes instead, or your entire version number
>> could be a single number like a build date). It does, however, seem to use
>> lexicographical ordering when comparing version numbers like 2.0.0-beta4
>> versus 2.0.0-rc1. This can lead to some unexpected results if you specify,
>> let's say, log4j-api version [2.0,3.0), if your repository has non-release
>> versions in the releases section.
>>
>> NB: I'm a bit of a nerd about versioning.
>>
>> --
>> Matt Sicker <[email protected]>
>>
>>
>
>
> --
> Matt Sicker <[email protected]>
>
>


-- 
E-Mail: [email protected] | [email protected]
Java Persistence with Hibernate, Second Edition<http://www.manning.com/bauer3/>
JUnit in Action, Second Edition <http://www.manning.com/tahchiev/>
Spring Batch in Action <http://www.manning.com/templier/>
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to