You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Jason Dillon <ja...@planet57.com> on 2007/03/28 23:02:59 UTC

What is the deal with geronimo-javaee-deployment_1.1MR3_spec

I really hate that we have version information in artifactIds... this  
is a huge PITA when the version needs to be changed.  This is a  
*very* bad practice.  Can we please stop this madness?

--jason

Re: What is the deal with geronimo-javaee-deployment_1.1MR3_spec

Posted by Jason Dillon <ja...@planet57.com>.
> This is not our version, its the version of the spec.

Its still a version number in an artifactId... regardless of who's  
version it is.

The problem with this is that when you go to change versions you have  
to go update a bunch of poms to fix their artifactId instead of  
simply updating one dependency in a dependencyManagement section.

Because we put version numbers in artifactIds we've given ourselves a  
lot more maintenance work when it comes time to rev specs and because  
of this we have made it far to easy to missing them and get modules  
out of sync.


> IIRC we had a big discussion about the best spec naming convention  
> and decided this was it.

So because of that its not something that can be changed?  I really  
disagree with this practice.  It really only make *more* maintenance  
work and increases the chances of something getting out of sync.  Its  
far to easy to end up with several different versions of the same  
spec in a project because the normal maven version resolution can't  
figure out which one to use because of the version information  
encoded in artifact ids.


> Despite our best intentions, we often end up releasing corrections  
> to spec jars we've published.  Can you suggest a different naming  
> convention that will clearly and unambiguously show both the spec  
> version and the geronimo version of a spec jar?  Or do you think  
> one of these is unnecessary?

I think that all relevant information can be encoded in the artifacts  
version.  And I think that the geronimo version is mostly irrelevant,  
its basically a revision of the sun version, so I would just put a  
counter on the end of the sun version:

   <specVersion>-<geroniomRev>

   1.0-1

This helps do away with inconsistencies which we have now, with  
picking 1.1 or 2.0 or 1.0m2 or whatever... just keep incrementing the  
revision when there are changes.

Some real examples:

<current> ---> <suggest> (w/o version in artifactId):
geronimo-j2ee-management_1.1_spec-1.0-M1.jar -> geronimo-j2ee- 
management-spec-1.1-1.jar
geronimo-j2ee-management_1.0_spec-1.0.jar -> geronimo-j2ee-management- 
spec-1.0-1.jar
geronimo-j2ee-management_1.0_spec-1.0.1.jar -> geronimo-j2ee- 
management-spec-1.0-2.jar
geronimo-j2ee-management_1.0_spec-1.1.jar -> geronimo-j2ee-management- 
spec-1.0-3.jar

> As you can probably tell, I think this is a very good practice.  I  
> hate it when someone says they depend on "servlet.jar" and I have  
> to open the spec jar up and try to figure out if whoever generated  
> it bothered to include any information at all about which spec  
> version they implemented.

Well, lucky for you w/maven the version information is encoded in the  
jar file names by default.  So its quite easy to just use the  
"version" of an artifact to contain all of the versioning details and  
you will end up with an artifact with that information in the filename.

--jason


Re: What is the deal with geronimo-javaee-deployment_1.1MR3_spec

Posted by David Jencks <da...@yahoo.com>.
This is not our version, its the version of the spec.  IIRC we had a  
big discussion about the best spec naming convention and decided this  
was it.

Despite our best intentions, we often end up releasing corrections to  
spec jars we've published.  Can you suggest a different naming  
convention that will clearly and unambiguously show both the spec  
version and the geronimo version of a spec jar?  Or do you think one  
of these is unnecessary?

As you can probably tell, I think this is a very good practice.  I  
hate it when someone says they depend on "servlet.jar" and I have to  
open the spec jar up and try to figure out if whoever generated it  
bothered to include any information at all about which spec version  
they implemented.

thanks
david jencks

On Mar 28, 2007, at 2:02 PM, Jason Dillon wrote:

> I really hate that we have version information in artifactIds...  
> this is a huge PITA when the version needs to be changed.  This is  
> a *very* bad practice.  Can we please stop this madness?
>
> --jason


Re: What is the deal with geronimo-javaee-deployment_1.1MR3_spec

Posted by Jason Dillon <ja...@planet57.com>.
On Mar 29, 2007, at 6:35 PM, Aaron Mulder wrote:
> For what it's worth, Jason's proposal sounds reasonable to me*.  But I
> don't really fancy changing all the current names either.  :)

I don't really want to change them (ie the work)... but I feel very  
strong about getting rid of that version muck in the artifactId.


> * Well, I can't say that 1.1MR3-1-SNAPSHOT made sense at first glance,
> but the 1.1MR3-1 followed by 1.1MR3-2 seems clear.

Ya, seems weird at first, but I was just mapping David's example,  
which was for a SNAPSHOT ;-)

--jason


> On 3/29/07, Jason Dillon <ja...@planet57.com> wrote:
>> On Mar 29, 2007, at 8:06 AM, David Jencks wrote:
>>
>> > artfifactId=geronimo-javaee-deployment_1.1MR3_spec
>> > version=1.0-SNAPSHOT (IIRC, but its' value is irrelevant)
>> > groupId=org.apache.geronimo.specs
>> >
>> > the spec version is 1.1MR3
>> >
>> > It follows the agreed upon conventions for geronimo spec naming.
>>
>> I think we should reconsider the convention.  And use the artifacts
>> version to contain *all* of the version information.  Since the
>> current convention's version is mostly irrelevant anyways, I suggest
>> that we use the spec's version + revision number (counter) as the
>> version.
>>
>> That makes the above look like:
>>
>>      artfifactId=geronimo-javaee-deployment-spec
>>      groupId=org.apache.geronimo.specs
>>      version=1.1MR3-1-SNAPSHOT
>>
>> And when released the version would be:
>>
>>      version=1.1MR3-1
>>
>> This indicates the spec version and a revision count for how many
>> update/iterations we have applied to it.  When its time to make a new
>> revision then we'd have:
>>
>>      version=1.1MR3-2
>>
>> And when the spec version changes to say 1.2, then we'd have:
>>
>>      version=1.2-1
>>
>> IMO this is *much* more natural and allows us to use the Maven
>> dependencyManagement section to manage all version information
>> effectively for child modules.
>>
>> --jason
>>
>>
>>
>>
>>
>>


Re: What is the deal with geronimo-javaee-deployment_1.1MR3_spec

Posted by Aaron Mulder <am...@alumni.princeton.edu>.
For what it's worth, Jason's proposal sounds reasonable to me*.  But I
don't really fancy changing all the current names either.  :)

Thanks,
       Aaron

* Well, I can't say that 1.1MR3-1-SNAPSHOT made sense at first glance,
but the 1.1MR3-1 followed by 1.1MR3-2 seems clear.

On 3/29/07, Jason Dillon <ja...@planet57.com> wrote:
> On Mar 29, 2007, at 8:06 AM, David Jencks wrote:
>
> > artfifactId=geronimo-javaee-deployment_1.1MR3_spec
> > version=1.0-SNAPSHOT (IIRC, but its' value is irrelevant)
> > groupId=org.apache.geronimo.specs
> >
> > the spec version is 1.1MR3
> >
> > It follows the agreed upon conventions for geronimo spec naming.
>
> I think we should reconsider the convention.  And use the artifacts
> version to contain *all* of the version information.  Since the
> current convention's version is mostly irrelevant anyways, I suggest
> that we use the spec's version + revision number (counter) as the
> version.
>
> That makes the above look like:
>
>      artfifactId=geronimo-javaee-deployment-spec
>      groupId=org.apache.geronimo.specs
>      version=1.1MR3-1-SNAPSHOT
>
> And when released the version would be:
>
>      version=1.1MR3-1
>
> This indicates the spec version and a revision count for how many
> update/iterations we have applied to it.  When its time to make a new
> revision then we'd have:
>
>      version=1.1MR3-2
>
> And when the spec version changes to say 1.2, then we'd have:
>
>      version=1.2-1
>
> IMO this is *much* more natural and allows us to use the Maven
> dependencyManagement section to manage all version information
> effectively for child modules.
>
> --jason
>
>
>
>
>
>

Re: What is the deal with geronimo-javaee-deployment_1.1MR3_spec

Posted by Jason Dillon <ja...@planet57.com>.
On Mar 29, 2007, at 8:06 AM, David Jencks wrote:

> artfifactId=geronimo-javaee-deployment_1.1MR3_spec
> version=1.0-SNAPSHOT (IIRC, but its' value is irrelevant)
> groupId=org.apache.geronimo.specs
>
> the spec version is 1.1MR3
>
> It follows the agreed upon conventions for geronimo spec naming.

I think we should reconsider the convention.  And use the artifacts  
version to contain *all* of the version information.  Since the  
current convention's version is mostly irrelevant anyways, I suggest  
that we use the spec's version + revision number (counter) as the  
version.

That makes the above look like:

     artfifactId=geronimo-javaee-deployment-spec
     groupId=org.apache.geronimo.specs
     version=1.1MR3-1-SNAPSHOT

And when released the version would be:

     version=1.1MR3-1

This indicates the spec version and a revision count for how many  
update/iterations we have applied to it.  When its time to make a new  
revision then we'd have:

     version=1.1MR3-2

And when the spec version changes to say 1.2, then we'd have:

     version=1.2-1

IMO this is *much* more natural and allows us to use the Maven  
dependencyManagement section to manage all version information  
effectively for child modules.

--jason





Re: What is the deal with geronimo-javaee-deployment_1.1MR3_spec

Posted by David Jencks <da...@yahoo.com>.
artfifactId=geronimo-javaee-deployment_1.1MR3_spec
version=1.0-SNAPSHOT (IIRC, but its' value is irrelevant)
groupId=org.apache.geronimo.specs

the spec version is 1.1MR3

It follows the agreed upon conventions for geronimo spec naming.

thanks
david jencks

On Mar 29, 2007, at 4:30 AM, Rick McGuire wrote:

> Matt Hogstrom wrote:
>> What is the alternate proposal?
> I suspect it should follow the more normal convention of "name of  
> what it is" followed by the version identifier.  For specs, the  
> name of the spec artifact frequently contains a version identifier  
> for the level of the spec.  For example the javamail specs have  
> names such as this:
>
>   geronimo-javamail_1.3.1_spec-1.3
>
> This indicates that this is an implementation of the javamail 1.3.1  
> specification, and the Geronimo version level is 1.3.
> So, what's the version level vs. specification level of the above  
> artifact?  Is this an implementation of the "1.1MR3" leve of the  
> javaee deployment spec?  Then it is missing its version identifier  
> all together.  It should be something like
>
>   geronimo-javaee-deployment_1.1MR3_spec-1.0
>
> Or is this the MR3 version of the javaee deployment spec version  
> 1.1?  Then this should be
>
>   geronimo-javaee-deployment_1.1_spec-MR3
>
> Or, is the version identifier actually the full 1.1_MR3, in which  
> case it should be
>
>   geronimo-javaee-deployment_spec-1.1MR3
>
> In all cases, the version level of the artifact is the last element  
> of the artifact name.
>
> Rick
>
>>
>> On Mar 28, 2007, at 5:02 PM, Jason Dillon wrote:
>>
>>> I really hate that we have version information in artifactIds...  
>>> this is a huge PITA when the version needs to be changed.  This  
>>> is a *very* bad practice.  Can we please stop this madness?
>>>
>>> --jason
>>>
>>
>>
>


Re: What is the deal with geronimo-javaee-deployment_1.1MR3_spec

Posted by Matt Hogstrom <ma...@hogstrom.org>.
That's my understanding ... you are so much more articulate than I :)

On Mar 29, 2007, at 7:30 AM, Rick McGuire wrote:

> Matt Hogstrom wrote:
>> What is the alternate proposal?
> I suspect it should follow the more normal convention of "name of  
> what it is" followed by the version identifier.  For specs, the  
> name of the spec artifact frequently contains a version identifier  
> for the level of the spec.  For example the javamail specs have  
> names such as this:
>
>   geronimo-javamail_1.3.1_spec-1.3
>
> This indicates that this is an implementation of the javamail 1.3.1  
> specification, and the Geronimo version level is 1.3.
> So, what's the version level vs. specification level of the above  
> artifact?  Is this an implementation of the "1.1MR3" leve of the  
> javaee deployment spec?  Then it is missing its version identifier  
> all together.  It should be something like
>
>   geronimo-javaee-deployment_1.1MR3_spec-1.0
>
> Or is this the MR3 version of the javaee deployment spec version  
> 1.1?  Then this should be
>
>   geronimo-javaee-deployment_1.1_spec-MR3
>
> Or, is the version identifier actually the full 1.1_MR3, in which  
> case it should be
>
>   geronimo-javaee-deployment_spec-1.1MR3
>
> In all cases, the version level of the artifact is the last element  
> of the artifact name.
>
> Rick
>
>>
>> On Mar 28, 2007, at 5:02 PM, Jason Dillon wrote:
>>
>>> I really hate that we have version information in artifactIds...  
>>> this is a huge PITA when the version needs to be changed.  This  
>>> is a *very* bad practice.  Can we please stop this madness?
>>>
>>> --jason
>>>
>>
>>
>
>


Re: What is the deal with geronimo-javaee-deployment_1.1MR3_spec

Posted by Rick McGuire <ri...@gmail.com>.
Matt Hogstrom wrote:
> What is the alternate proposal?
I suspect it should follow the more normal convention of "name of what 
it is" followed by the version identifier.  For specs, the name of the 
spec artifact frequently contains a version identifier for the level of 
the spec.  For example the javamail specs have names such as this:

   geronimo-javamail_1.3.1_spec-1.3

This indicates that this is an implementation of the javamail 1.3.1 
specification, and the Geronimo version level is 1.3.  

So, what's the version level vs. specification level of the above 
artifact?  Is this an implementation of the "1.1MR3" leve of the javaee 
deployment spec?  Then it is missing its version identifier all 
together.  It should be something like

   geronimo-javaee-deployment_1.1MR3_spec-1.0

Or is this the MR3 version of the javaee deployment spec version 1.1?  
Then this should be

   geronimo-javaee-deployment_1.1_spec-MR3

Or, is the version identifier actually the full 1.1_MR3, in which case 
it should be

   geronimo-javaee-deployment_spec-1.1MR3

In all cases, the version level of the artifact is the last element of 
the artifact name.

Rick

>
> On Mar 28, 2007, at 5:02 PM, Jason Dillon wrote:
>
>> I really hate that we have version information in artifactIds... this 
>> is a huge PITA when the version needs to be changed.  This is a 
>> *very* bad practice.  Can we please stop this madness?
>>
>> --jason
>>
>
>


Re: What is the deal with geronimo-javaee-deployment_1.1MR3_spec

Posted by Matt Hogstrom <ma...@hogstrom.org>.
What is the alternate proposal?

On Mar 28, 2007, at 5:02 PM, Jason Dillon wrote:

> I really hate that we have version information in artifactIds...  
> this is a huge PITA when the version needs to be changed.  This is  
> a *very* bad practice.  Can we please stop this madness?
>
> --jason
>