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 2006/10/02 01:07:47 UTC

One version for specs

Hi, me again... and the specs topic again too.

I have been thinking about this for quite a while and I believe that  
it would be in the best interest of the project to treat our specs as  
a project and use one version to release the spec modules under.

Doing so will greatly reduce the complexity to maintain the specs  
tree and to make new releases.  It also reduces the need for a bunch  
of config in the root pom.xml for specs... all properties can be  
removed and most of the dependencyManagement can be removed as well.

Releases can be done using the release plugin with out any twists of  
configuration, which should be straight forward.  The alternative is  
that the configuration becomes more compkicated and that in order to  
make a release users will have to have much more knowledge of how  
Maven works and how we have configured it... which I am betting will  
only lead to something being missed which will only lead to problems  
down the road.

One thing to remember for those of you who are gonna say that some  
spec module has not changed in x-years... is that the release is code  
+ pom configuration... and even if the code has not changed, the  
configuration has, and thus it warrants a new release to be made.

Specs do not get released that often anyways, so I don't really see  
any huge problem with re-releasing specs under a new version when  
something is added (or fixed).

1 version number for us (and our users) is IMO much, much simperer  
than 30+ versions.  For example, if I am a developer and want to use  
the latest versions of all of the specs that I use, I would much  
rather know that there is just one version to track, instead of  
needing to hunt down what the latest version of each spec is... after  
all I don't care what the version is... I just want the latest version.

Also remember that some spec modules depend on other spec modules, so  
ideally when a dependency module is released, the dependent modules  
should be released to pickup the latest versions.  Doing this is  
automatic with the one-version scheme, but becomes much more work  
with independent versions... which will almost certainly result in  
dependent modules not getting updated as they should.

  * * *

We have also been waiting for some resolution on this to simplify the  
main server build.  It will take all of 10 minutes for me to fix the  
specs build to use one version and make a release than can be used by  
the server build (and allow the bootstrap of specs to be removed).

So, my recommendation is to:

   1) change the specs project to use one version, 2.0-SNAPSHOT, and  
publish the snaps
   2) update the server build to use 2.0-SNAPSHOT for all specs
   3) remove the specs build from bootstrap

I believe this is the best option for the project and community at  
this point.  I would like to implement this ASAP to simplify the  
server build.  If after some time folks do not feel that is working  
well, then we can revisit and consider either splitting up into a  
multi-trunk build or using independent version numbers.  But, I do  
believe that most will find that the advantages of using one version  
far out-weight the disadvantages.

NOTE:

For those unaware, Dain did an experiment with version ranges... but  
it looks like this will not work well right now as there is not  
general support for use of ranges in most plugins that we depend on.   
Also several members of the m2 team have suggested that ranges are  
buggy.  This was my general impression that I brought up to Dain  
weeks ago when we talked about using ranges (and when he said he  
would try it out).  So, for now at least I think that ranges will not  
work for us.

--jason



Re: One version for specs

Posted by "Alan D. Cabrera" <li...@toolazydogs.com>.
On Oct 2, 2006, at 12:38 PM, Jason Dillon wrote:

> IMO there is no "best" way to handle this problem.  There is only  
> good and bad for each solution, but there is no smoking gun to  
> solve everyones issues.
>
> I already sent out that itty bitty note about the release being jar  
> + pom(s) but I wanted to clarify that even more...
>
> If you take the current specs build... all of the versions of the  
> specs are defined in the top-level pom, which means that whenever  
> any module need to change, that its parent will also need to  
> change, and that change to its parent may cause other specs to need  
> to be changed (if they depend on the spec that has been  
> versioned).  Those dependent modules really should be released in  
> the same process too, but there is no easy mechanism to automate  
> that in the multi-versioned build.  Which leaves that task up to  
> process... and as I have mentioned before, will almost certainly  
> result in problems due to lack of insight into maven and how the  
> multi-version spec build functions.
>
> If we have each spec in its own tree, that means that nothing is  
> shared and all referenced version numbers are hardcoded, which  
> means that when a dependency module is released that it is up to  
> the process again to make sure that each dependent module gets  
> updated and then released... which is even more problematic for  
> keeping things in-sync and now users need to have even more insight  
> into how the specs related to each other and will almost certainly  
> end up in disaster, especially as more specs are added and more so  
> when developers come and go.


What are the interdependencies between spec jars?  I don't think  
there are many.  GIven this fact, I'm not sure that there needs to be  
a root POM, _in specs_, that binds all the versions together.


Regards,
Alan



Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
You may be right... but I still believe one version is going to be  
easier for us.  And I am willing to make the changes to get one  
version working as it is simple and easy (with a decent network  
connection it can all be done in under an hour).

Almost anything else is going to take much longer and I believe the  
comparison of the work to rectify the state of the specs build is  
indicative of the effort it is going to take to maintain more and  
more of em.

But... we need to fix this.  Right now we can not even publish new  
specs for development as half of them will end up published to the  
snapshot repo and another half to the sync repo.  This is due to the  
versions in trunk not being reset to SNAPSHOT versions after a  
release... which is also some more evidence that the multi-version  
method is problematic as non of the versions in trunk should have  
been set to a non-SNAPSHOT for more than a brief moment when a  
release was being made.

With one version and the release plugin this problem goes away, and  
any dependencies are automatically updated to the correct version...  
which means that everything will be insync... all the time... at the  
slight cost of re-publishing new artifacts for modules which have had  
no code change... a minor cost worth the price of easy maintainable  
automation.

--jason


On Oct 2, 2006, at 1:38 PM, Aaron Mulder wrote:

> I hear you, but underlying your case is the assumption that a lot of
> specs depend on each other.  I'm not convinced that's true.
> Certainly, no J2EE 1.4 specs should rely on any J2EE 1.5 or non-J2EE
> specs.  I guess underlying the compromise proposal is the assumtion
> that at this point J2EE 1.4 is fairly unlikely to need any changes, so
> a backward dependency from 1.5 to 1.4 is unlikely to need much
> maintainance.
>
> I'm not sure how many unaligned specs would have other spec
> dependencies, but I can't think of any.  The only dependencies I can
> really think of are mail on activation, web services on mail and
> activation, and JSP on servlet....  I'm sure there are a few more, but
> I don't think it's anything like the inter-module dependencies of,
> say, Geronimo itself.
>
> Thanks,
>     Aaron
>
> On 10/2/06, Jason Dillon <ja...@planet57.com> wrote:
>> IMO there is no "best" way to handle this problem.  There is only
>> good and bad for each solution, but there is no smoking gun to solve
>> everyones issues.
>>
>> I already sent out that itty bitty note about the release being jar +
>> pom(s) but I wanted to clarify that even more...
>>
>> If you take the current specs build... all of the versions of the
>> specs are defined in the top-level pom, which means that whenever any
>> module need to change, that its parent will also need to change, and
>> that change to its parent may cause other specs to need to be changed
>> (if they depend on the spec that has been versioned).  Those
>> dependent modules really should be released in the same process too,
>> but there is no easy mechanism to automate that in the multi-
>> versioned build.  Which leaves that task up to process... and as I
>> have mentioned before, will almost certainly result in problems due
>> to lack of insight into maven and how the multi-version spec build
>> functions.
>>
>> If we have each spec in its own tree, that means that nothing is
>> shared and all referenced version numbers are hardcoded, which means
>> that when a dependency module is released that it is up to the
>> process again to make sure that each dependent module gets updated
>> and then released... which is even more problematic for keeping
>> things in-sync and now users need to have even more insight into how
>> the specs related to each other and will almost certainly end up in
>> disaster, especially as more specs are added and more so when
>> developers come and go.
>>
>> Both multi-version schemes seem to end up going down the same path
>> towards a maintenance nightmare.
>>
>> But, if you compare this with the one version... if a dependency
>> module changes, then all dependent modules will automatically get
>> configured with the right version, will be included in the tag, will
>> be included in the docs (site stuff), will be published and all of
>> this can be done in a few simple steps... all of which are standard
>> m2-isms so anyone who knows m2 should be able to easily understand
>> what is going on.
>>
>> I agree with you on some levels... and in a perfect world maven would
>> be able to make this happen for us as easily as it can with a single-
>> version scheme... but right now this is not the case.  Maybe in 6mo
>> or a year maven will have a solution for us, but today it does not.
>>
>>   * * *
>>
>> It is still my recommendation that it is best for the project in the
>> short to medium term that one version be used to manage specs... and
>> to commit to revisit later when there is better support for multi-
>> versioned build automation.
>>
>> --jason
>>
>>
>> On Oct 2, 2006, at 6:51 AM, Alan D. Cabrera wrote:
>>
>> > I don't think that this is a good idea.  Versions should reflect
>> > the contents of the jar not the fact that an unrelated spec was
>> > released/patched/updated.
>> >
>> >
>> > Regards,
>> > Alan
>> >
>> > On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:
>> >
>> >> Hi, me again... and the specs topic again too.
>> >>
>> >> I have been thinking about this for quite a while and I believe
>> >> that it would be in the best interest of the project to treat our
>> >> specs as a project and use one version to release the spec modules
>> >> under.
>> >>
>> >> Doing so will greatly reduce the complexity to maintain the specs
>> >> tree and to make new releases.  It also reduces the need for a
>> >> bunch of config in the root pom.xml for specs... all properties
>> >> can be removed and most of the dependencyManagement can be removed
>> >> as well.
>> >>
>> >> Releases can be done using the release plugin with out any twists
>> >> of configuration, which should be straight forward.  The
>> >> alternative is that the configuration becomes more compkicated and
>> >> that in order to make a release users will have to have much more
>> >> knowledge of how Maven works and how we have configured it...
>> >> which I am betting will only lead to something being missed which
>> >> will only lead to problems down the road.
>> >>
>> >> One thing to remember for those of you who are gonna say that some
>> >> spec module has not changed in x-years... is that the release is
>> >> code + pom configuration... and even if the code has not changed,
>> >> the configuration has, and thus it warrants a new release to be  
>> made.
>> >>
>> >> Specs do not get released that often anyways, so I don't really
>> >> see any huge problem with re-releasing specs under a new version
>> >> when something is added (or fixed).
>> >>
>> >> 1 version number for us (and our users) is IMO much, much simperer
>> >> than 30+ versions.  For example, if I am a developer and want to
>> >> use the latest versions of all of the specs that I use, I would
>> >> much rather know that there is just one version to track, instead
>> >> of needing to hunt down what the latest version of each spec is...
>> >> after all I don't care what the version is... I just want the
>> >> latest version.
>> >>
>> >> Also remember that some spec modules depend on other spec modules,
>> >> so ideally when a dependency module is released, the dependent
>> >> modules should be released to pickup the latest versions.  Doing
>> >> this is automatic with the one-version scheme, but becomes much
>> >> more work with independent versions... which will almost certainly
>> >> result in dependent modules not getting updated as they should.
>> >>
>> >>  * * *
>> >>
>> >> We have also been waiting for some resolution on this to simplify
>> >> the main server build.  It will take all of 10 minutes for me to
>> >> fix the specs build to use one version and make a release than can
>> >> be used by the server build (and allow the bootstrap of specs to
>> >> be removed).
>> >>
>> >> So, my recommendation is to:
>> >>
>> >>   1) change the specs project to use one version, 2.0-SNAPSHOT,
>> >> and publish the snaps
>> >>   2) update the server build to use 2.0-SNAPSHOT for all specs
>> >>   3) remove the specs build from bootstrap
>> >>
>> >> I believe this is the best option for the project and community at
>> >> this point.  I would like to implement this ASAP to simplify the
>> >> server build.  If after some time folks do not feel that is
>> >> working well, then we can revisit and consider either splitting up
>> >> into a multi-trunk build or using independent version numbers.
>> >> But, I do believe that most will find that the advantages of using
>> >> one version far out-weight the disadvantages.
>> >>
>> >> NOTE:
>> >>
>> >> For those unaware, Dain did an experiment with version ranges...
>> >> but it looks like this will not work well right now as there is
>> >> not general support for use of ranges in most plugins that we
>> >> depend on.  Also several members of the m2 team have suggested
>> >> that ranges are buggy.  This was my general impression that I
>> >> brought up to Dain weeks ago when we talked about using ranges
>> >> (and when he said he would try it out).  So, for now at least I
>> >> think that ranges will not work for us.
>> >>
>> >> --jason
>> >>
>> >>
>> >
>>
>>


Re: One version for specs

Posted by "Alan D. Cabrera" <li...@toolazydogs.com>.
For the two classes of users that I mentioned earlier, the work will  
not be significant.  I'm not certain that the post-it note spectre  
applies to this narrow domain.


Regards,
Alan


On Oct 3, 2006, at 11:14 AM, Jason Dillon wrote:

> It does not matter how often it happens.  The fact that they can be  
> changed, and most *will* have some change made to them, increases  
> the work to manage them significantly.
>
> --jason
>
>
> On Oct 3, 2006, at 11:09 AM, Alan D. Cabrera wrote:
>
>> These don't change all that often, IIRC.
>>
>>
>> Regards,
>> Alan
>>
>> On Oct 2, 2006, at 2:56 PM, Jason Dillon wrote:
>>
>>> About 1/3 of the specs depend on other specs (not including the  
>>> uber 1.4 spec):
>>>
>>> ejb 2.1 -> jta 1.0.1b
>>> ejb3 -> jta 1.1, interceptor, annotation
>>> conector 1.5 -> jta 1.0.1b
>>> jacc -> servlet 2.4
>>> j2ee mgmt -> ejb 2.1
>>> javamail 1.3.1 -> activation
>>> javamail 1.4 -> activation
>>> jaxr -> activation
>>> jaxrpc -> saaj, qname, servlet 2.4
>>> jsp -> servlet 2.4
>>> saaj -> activation
>>>
>>> --jason
>>>
>>>
>>> On Oct 2, 2006, at 1:38 PM, Aaron Mulder wrote:
>>>
>>>> I hear you, but underlying your case is the assumption that a  
>>>> lot of
>>>> specs depend on each other.  I'm not convinced that's true.
>>>> Certainly, no J2EE 1.4 specs should rely on any J2EE 1.5 or non- 
>>>> J2EE
>>>> specs.  I guess underlying the compromise proposal is the assumtion
>>>> that at this point J2EE 1.4 is fairly unlikely to need any  
>>>> changes, so
>>>> a backward dependency from 1.5 to 1.4 is unlikely to need much
>>>> maintainance.
>>>>
>>>> I'm not sure how many unaligned specs would have other spec
>>>> dependencies, but I can't think of any.  The only dependencies I  
>>>> can
>>>> really think of are mail on activation, web services on mail and
>>>> activation, and JSP on servlet....  I'm sure there are a few  
>>>> more, but
>>>> I don't think it's anything like the inter-module dependencies of,
>>>> say, Geronimo itself.
>>>>
>>>> Thanks,
>>>>     Aaron
>>>>
>>>> On 10/2/06, Jason Dillon <ja...@planet57.com> wrote:
>>>>> IMO there is no "best" way to handle this problem.  There is only
>>>>> good and bad for each solution, but there is no smoking gun to  
>>>>> solve
>>>>> everyones issues.
>>>>>
>>>>> I already sent out that itty bitty note about the release being  
>>>>> jar +
>>>>> pom(s) but I wanted to clarify that even more...
>>>>>
>>>>> If you take the current specs build... all of the versions of the
>>>>> specs are defined in the top-level pom, which means that  
>>>>> whenever any
>>>>> module need to change, that its parent will also need to  
>>>>> change, and
>>>>> that change to its parent may cause other specs to need to be  
>>>>> changed
>>>>> (if they depend on the spec that has been versioned).  Those
>>>>> dependent modules really should be released in the same process  
>>>>> too,
>>>>> but there is no easy mechanism to automate that in the multi-
>>>>> versioned build.  Which leaves that task up to process... and as I
>>>>> have mentioned before, will almost certainly result in problems  
>>>>> due
>>>>> to lack of insight into maven and how the multi-version spec build
>>>>> functions.
>>>>>
>>>>> If we have each spec in its own tree, that means that nothing is
>>>>> shared and all referenced version numbers are hardcoded, which  
>>>>> means
>>>>> that when a dependency module is released that it is up to the
>>>>> process again to make sure that each dependent module gets updated
>>>>> and then released... which is even more problematic for keeping
>>>>> things in-sync and now users need to have even more insight  
>>>>> into how
>>>>> the specs related to each other and will almost certainly end  
>>>>> up in
>>>>> disaster, especially as more specs are added and more so when
>>>>> developers come and go.
>>>>>
>>>>> Both multi-version schemes seem to end up going down the same path
>>>>> towards a maintenance nightmare.
>>>>>
>>>>> But, if you compare this with the one version... if a dependency
>>>>> module changes, then all dependent modules will automatically get
>>>>> configured with the right version, will be included in the tag,  
>>>>> will
>>>>> be included in the docs (site stuff), will be published and all of
>>>>> this can be done in a few simple steps... all of which are  
>>>>> standard
>>>>> m2-isms so anyone who knows m2 should be able to easily understand
>>>>> what is going on.
>>>>>
>>>>> I agree with you on some levels... and in a perfect world maven  
>>>>> would
>>>>> be able to make this happen for us as easily as it can with a  
>>>>> single-
>>>>> version scheme... but right now this is not the case.  Maybe in  
>>>>> 6mo
>>>>> or a year maven will have a solution for us, but today it does  
>>>>> not.
>>>>>
>>>>>   * * *
>>>>>
>>>>> It is still my recommendation that it is best for the project  
>>>>> in the
>>>>> short to medium term that one version be used to manage  
>>>>> specs... and
>>>>> to commit to revisit later when there is better support for multi-
>>>>> versioned build automation.
>>>>>
>>>>> --jason
>>>>>
>>>>>
>>>>> On Oct 2, 2006, at 6:51 AM, Alan D. Cabrera wrote:
>>>>>
>>>>> > I don't think that this is a good idea.  Versions should reflect
>>>>> > the contents of the jar not the fact that an unrelated spec was
>>>>> > released/patched/updated.
>>>>> >
>>>>> >
>>>>> > Regards,
>>>>> > Alan
>>>>> >
>>>>> > On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:
>>>>> >
>>>>> >> Hi, me again... and the specs topic again too.
>>>>> >>
>>>>> >> I have been thinking about this for quite a while and I believe
>>>>> >> that it would be in the best interest of the project to  
>>>>> treat our
>>>>> >> specs as a project and use one version to release the spec  
>>>>> modules
>>>>> >> under.
>>>>> >>
>>>>> >> Doing so will greatly reduce the complexity to maintain the  
>>>>> specs
>>>>> >> tree and to make new releases.  It also reduces the need for a
>>>>> >> bunch of config in the root pom.xml for specs... all properties
>>>>> >> can be removed and most of the dependencyManagement can be  
>>>>> removed
>>>>> >> as well.
>>>>> >>
>>>>> >> Releases can be done using the release plugin with out any  
>>>>> twists
>>>>> >> of configuration, which should be straight forward.  The
>>>>> >> alternative is that the configuration becomes more  
>>>>> compkicated and
>>>>> >> that in order to make a release users will have to have much  
>>>>> more
>>>>> >> knowledge of how Maven works and how we have configured it...
>>>>> >> which I am betting will only lead to something being missed  
>>>>> which
>>>>> >> will only lead to problems down the road.
>>>>> >>
>>>>> >> One thing to remember for those of you who are gonna say  
>>>>> that some
>>>>> >> spec module has not changed in x-years... is that the  
>>>>> release is
>>>>> >> code + pom configuration... and even if the code has not  
>>>>> changed,
>>>>> >> the configuration has, and thus it warrants a new release to  
>>>>> be made.
>>>>> >>
>>>>> >> Specs do not get released that often anyways, so I don't really
>>>>> >> see any huge problem with re-releasing specs under a new  
>>>>> version
>>>>> >> when something is added (or fixed).
>>>>> >>
>>>>> >> 1 version number for us (and our users) is IMO much, much  
>>>>> simperer
>>>>> >> than 30+ versions.  For example, if I am a developer and  
>>>>> want to
>>>>> >> use the latest versions of all of the specs that I use, I would
>>>>> >> much rather know that there is just one version to track,  
>>>>> instead
>>>>> >> of needing to hunt down what the latest version of each spec  
>>>>> is...
>>>>> >> after all I don't care what the version is... I just want the
>>>>> >> latest version.
>>>>> >>
>>>>> >> Also remember that some spec modules depend on other spec  
>>>>> modules,
>>>>> >> so ideally when a dependency module is released, the dependent
>>>>> >> modules should be released to pickup the latest versions.   
>>>>> Doing
>>>>> >> this is automatic with the one-version scheme, but becomes much
>>>>> >> more work with independent versions... which will almost  
>>>>> certainly
>>>>> >> result in dependent modules not getting updated as they should.
>>>>> >>
>>>>> >>  * * *
>>>>> >>
>>>>> >> We have also been waiting for some resolution on this to  
>>>>> simplify
>>>>> >> the main server build.  It will take all of 10 minutes for  
>>>>> me to
>>>>> >> fix the specs build to use one version and make a release  
>>>>> than can
>>>>> >> be used by the server build (and allow the bootstrap of  
>>>>> specs to
>>>>> >> be removed).
>>>>> >>
>>>>> >> So, my recommendation is to:
>>>>> >>
>>>>> >>   1) change the specs project to use one version, 2.0-SNAPSHOT,
>>>>> >> and publish the snaps
>>>>> >>   2) update the server build to use 2.0-SNAPSHOT for all specs
>>>>> >>   3) remove the specs build from bootstrap
>>>>> >>
>>>>> >> I believe this is the best option for the project and  
>>>>> community at
>>>>> >> this point.  I would like to implement this ASAP to simplify  
>>>>> the
>>>>> >> server build.  If after some time folks do not feel that is
>>>>> >> working well, then we can revisit and consider either  
>>>>> splitting up
>>>>> >> into a multi-trunk build or using independent version numbers.
>>>>> >> But, I do believe that most will find that the advantages of  
>>>>> using
>>>>> >> one version far out-weight the disadvantages.
>>>>> >>
>>>>> >> NOTE:
>>>>> >>
>>>>> >> For those unaware, Dain did an experiment with version  
>>>>> ranges...
>>>>> >> but it looks like this will not work well right now as there is
>>>>> >> not general support for use of ranges in most plugins that we
>>>>> >> depend on.  Also several members of the m2 team have suggested
>>>>> >> that ranges are buggy.  This was my general impression that I
>>>>> >> brought up to Dain weeks ago when we talked about using ranges
>>>>> >> (and when he said he would try it out).  So, for now at least I
>>>>> >> think that ranges will not work for us.
>>>>> >>
>>>>> >> --jason
>>>>> >>
>>>>> >>
>>>>> >
>>>>>
>>>>>
>>>
>>
>


Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
It does not matter how often it happens.  The fact that they can be  
changed, and most *will* have some change made to them, increases the  
work to manage them significantly.

--jason


On Oct 3, 2006, at 11:09 AM, Alan D. Cabrera wrote:

> These don't change all that often, IIRC.
>
>
> Regards,
> Alan
>
> On Oct 2, 2006, at 2:56 PM, Jason Dillon wrote:
>
>> About 1/3 of the specs depend on other specs (not including the  
>> uber 1.4 spec):
>>
>> ejb 2.1 -> jta 1.0.1b
>> ejb3 -> jta 1.1, interceptor, annotation
>> conector 1.5 -> jta 1.0.1b
>> jacc -> servlet 2.4
>> j2ee mgmt -> ejb 2.1
>> javamail 1.3.1 -> activation
>> javamail 1.4 -> activation
>> jaxr -> activation
>> jaxrpc -> saaj, qname, servlet 2.4
>> jsp -> servlet 2.4
>> saaj -> activation
>>
>> --jason
>>
>>
>> On Oct 2, 2006, at 1:38 PM, Aaron Mulder wrote:
>>
>>> I hear you, but underlying your case is the assumption that a lot of
>>> specs depend on each other.  I'm not convinced that's true.
>>> Certainly, no J2EE 1.4 specs should rely on any J2EE 1.5 or non-J2EE
>>> specs.  I guess underlying the compromise proposal is the assumtion
>>> that at this point J2EE 1.4 is fairly unlikely to need any  
>>> changes, so
>>> a backward dependency from 1.5 to 1.4 is unlikely to need much
>>> maintainance.
>>>
>>> I'm not sure how many unaligned specs would have other spec
>>> dependencies, but I can't think of any.  The only dependencies I can
>>> really think of are mail on activation, web services on mail and
>>> activation, and JSP on servlet....  I'm sure there are a few  
>>> more, but
>>> I don't think it's anything like the inter-module dependencies of,
>>> say, Geronimo itself.
>>>
>>> Thanks,
>>>     Aaron
>>>
>>> On 10/2/06, Jason Dillon <ja...@planet57.com> wrote:
>>>> IMO there is no "best" way to handle this problem.  There is only
>>>> good and bad for each solution, but there is no smoking gun to  
>>>> solve
>>>> everyones issues.
>>>>
>>>> I already sent out that itty bitty note about the release being  
>>>> jar +
>>>> pom(s) but I wanted to clarify that even more...
>>>>
>>>> If you take the current specs build... all of the versions of the
>>>> specs are defined in the top-level pom, which means that  
>>>> whenever any
>>>> module need to change, that its parent will also need to change,  
>>>> and
>>>> that change to its parent may cause other specs to need to be  
>>>> changed
>>>> (if they depend on the spec that has been versioned).  Those
>>>> dependent modules really should be released in the same process  
>>>> too,
>>>> but there is no easy mechanism to automate that in the multi-
>>>> versioned build.  Which leaves that task up to process... and as I
>>>> have mentioned before, will almost certainly result in problems due
>>>> to lack of insight into maven and how the multi-version spec build
>>>> functions.
>>>>
>>>> If we have each spec in its own tree, that means that nothing is
>>>> shared and all referenced version numbers are hardcoded, which  
>>>> means
>>>> that when a dependency module is released that it is up to the
>>>> process again to make sure that each dependent module gets updated
>>>> and then released... which is even more problematic for keeping
>>>> things in-sync and now users need to have even more insight into  
>>>> how
>>>> the specs related to each other and will almost certainly end up in
>>>> disaster, especially as more specs are added and more so when
>>>> developers come and go.
>>>>
>>>> Both multi-version schemes seem to end up going down the same path
>>>> towards a maintenance nightmare.
>>>>
>>>> But, if you compare this with the one version... if a dependency
>>>> module changes, then all dependent modules will automatically get
>>>> configured with the right version, will be included in the tag,  
>>>> will
>>>> be included in the docs (site stuff), will be published and all of
>>>> this can be done in a few simple steps... all of which are standard
>>>> m2-isms so anyone who knows m2 should be able to easily understand
>>>> what is going on.
>>>>
>>>> I agree with you on some levels... and in a perfect world maven  
>>>> would
>>>> be able to make this happen for us as easily as it can with a  
>>>> single-
>>>> version scheme... but right now this is not the case.  Maybe in 6mo
>>>> or a year maven will have a solution for us, but today it does not.
>>>>
>>>>   * * *
>>>>
>>>> It is still my recommendation that it is best for the project in  
>>>> the
>>>> short to medium term that one version be used to manage specs...  
>>>> and
>>>> to commit to revisit later when there is better support for multi-
>>>> versioned build automation.
>>>>
>>>> --jason
>>>>
>>>>
>>>> On Oct 2, 2006, at 6:51 AM, Alan D. Cabrera wrote:
>>>>
>>>> > I don't think that this is a good idea.  Versions should reflect
>>>> > the contents of the jar not the fact that an unrelated spec was
>>>> > released/patched/updated.
>>>> >
>>>> >
>>>> > Regards,
>>>> > Alan
>>>> >
>>>> > On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:
>>>> >
>>>> >> Hi, me again... and the specs topic again too.
>>>> >>
>>>> >> I have been thinking about this for quite a while and I believe
>>>> >> that it would be in the best interest of the project to treat  
>>>> our
>>>> >> specs as a project and use one version to release the spec  
>>>> modules
>>>> >> under.
>>>> >>
>>>> >> Doing so will greatly reduce the complexity to maintain the  
>>>> specs
>>>> >> tree and to make new releases.  It also reduces the need for a
>>>> >> bunch of config in the root pom.xml for specs... all properties
>>>> >> can be removed and most of the dependencyManagement can be  
>>>> removed
>>>> >> as well.
>>>> >>
>>>> >> Releases can be done using the release plugin with out any  
>>>> twists
>>>> >> of configuration, which should be straight forward.  The
>>>> >> alternative is that the configuration becomes more  
>>>> compkicated and
>>>> >> that in order to make a release users will have to have much  
>>>> more
>>>> >> knowledge of how Maven works and how we have configured it...
>>>> >> which I am betting will only lead to something being missed  
>>>> which
>>>> >> will only lead to problems down the road.
>>>> >>
>>>> >> One thing to remember for those of you who are gonna say that  
>>>> some
>>>> >> spec module has not changed in x-years... is that the release is
>>>> >> code + pom configuration... and even if the code has not  
>>>> changed,
>>>> >> the configuration has, and thus it warrants a new release to  
>>>> be made.
>>>> >>
>>>> >> Specs do not get released that often anyways, so I don't really
>>>> >> see any huge problem with re-releasing specs under a new version
>>>> >> when something is added (or fixed).
>>>> >>
>>>> >> 1 version number for us (and our users) is IMO much, much  
>>>> simperer
>>>> >> than 30+ versions.  For example, if I am a developer and want to
>>>> >> use the latest versions of all of the specs that I use, I would
>>>> >> much rather know that there is just one version to track,  
>>>> instead
>>>> >> of needing to hunt down what the latest version of each spec  
>>>> is...
>>>> >> after all I don't care what the version is... I just want the
>>>> >> latest version.
>>>> >>
>>>> >> Also remember that some spec modules depend on other spec  
>>>> modules,
>>>> >> so ideally when a dependency module is released, the dependent
>>>> >> modules should be released to pickup the latest versions.  Doing
>>>> >> this is automatic with the one-version scheme, but becomes much
>>>> >> more work with independent versions... which will almost  
>>>> certainly
>>>> >> result in dependent modules not getting updated as they should.
>>>> >>
>>>> >>  * * *
>>>> >>
>>>> >> We have also been waiting for some resolution on this to  
>>>> simplify
>>>> >> the main server build.  It will take all of 10 minutes for me to
>>>> >> fix the specs build to use one version and make a release  
>>>> than can
>>>> >> be used by the server build (and allow the bootstrap of specs to
>>>> >> be removed).
>>>> >>
>>>> >> So, my recommendation is to:
>>>> >>
>>>> >>   1) change the specs project to use one version, 2.0-SNAPSHOT,
>>>> >> and publish the snaps
>>>> >>   2) update the server build to use 2.0-SNAPSHOT for all specs
>>>> >>   3) remove the specs build from bootstrap
>>>> >>
>>>> >> I believe this is the best option for the project and  
>>>> community at
>>>> >> this point.  I would like to implement this ASAP to simplify the
>>>> >> server build.  If after some time folks do not feel that is
>>>> >> working well, then we can revisit and consider either  
>>>> splitting up
>>>> >> into a multi-trunk build or using independent version numbers.
>>>> >> But, I do believe that most will find that the advantages of  
>>>> using
>>>> >> one version far out-weight the disadvantages.
>>>> >>
>>>> >> NOTE:
>>>> >>
>>>> >> For those unaware, Dain did an experiment with version ranges...
>>>> >> but it looks like this will not work well right now as there is
>>>> >> not general support for use of ranges in most plugins that we
>>>> >> depend on.  Also several members of the m2 team have suggested
>>>> >> that ranges are buggy.  This was my general impression that I
>>>> >> brought up to Dain weeks ago when we talked about using ranges
>>>> >> (and when he said he would try it out).  So, for now at least I
>>>> >> think that ranges will not work for us.
>>>> >>
>>>> >> --jason
>>>> >>
>>>> >>
>>>> >
>>>>
>>>>
>>
>


Re: One version for specs

Posted by "Alan D. Cabrera" <li...@toolazydogs.com>.
These don't change all that often, IIRC.


Regards,
Alan

On Oct 2, 2006, at 2:56 PM, Jason Dillon wrote:

> About 1/3 of the specs depend on other specs (not including the  
> uber 1.4 spec):
>
> ejb 2.1 -> jta 1.0.1b
> ejb3 -> jta 1.1, interceptor, annotation
> conector 1.5 -> jta 1.0.1b
> jacc -> servlet 2.4
> j2ee mgmt -> ejb 2.1
> javamail 1.3.1 -> activation
> javamail 1.4 -> activation
> jaxr -> activation
> jaxrpc -> saaj, qname, servlet 2.4
> jsp -> servlet 2.4
> saaj -> activation
>
> --jason
>
>
> On Oct 2, 2006, at 1:38 PM, Aaron Mulder wrote:
>
>> I hear you, but underlying your case is the assumption that a lot of
>> specs depend on each other.  I'm not convinced that's true.
>> Certainly, no J2EE 1.4 specs should rely on any J2EE 1.5 or non-J2EE
>> specs.  I guess underlying the compromise proposal is the assumtion
>> that at this point J2EE 1.4 is fairly unlikely to need any  
>> changes, so
>> a backward dependency from 1.5 to 1.4 is unlikely to need much
>> maintainance.
>>
>> I'm not sure how many unaligned specs would have other spec
>> dependencies, but I can't think of any.  The only dependencies I can
>> really think of are mail on activation, web services on mail and
>> activation, and JSP on servlet....  I'm sure there are a few more,  
>> but
>> I don't think it's anything like the inter-module dependencies of,
>> say, Geronimo itself.
>>
>> Thanks,
>>     Aaron
>>
>> On 10/2/06, Jason Dillon <ja...@planet57.com> wrote:
>>> IMO there is no "best" way to handle this problem.  There is only
>>> good and bad for each solution, but there is no smoking gun to solve
>>> everyones issues.
>>>
>>> I already sent out that itty bitty note about the release being  
>>> jar +
>>> pom(s) but I wanted to clarify that even more...
>>>
>>> If you take the current specs build... all of the versions of the
>>> specs are defined in the top-level pom, which means that whenever  
>>> any
>>> module need to change, that its parent will also need to change, and
>>> that change to its parent may cause other specs to need to be  
>>> changed
>>> (if they depend on the spec that has been versioned).  Those
>>> dependent modules really should be released in the same process too,
>>> but there is no easy mechanism to automate that in the multi-
>>> versioned build.  Which leaves that task up to process... and as I
>>> have mentioned before, will almost certainly result in problems due
>>> to lack of insight into maven and how the multi-version spec build
>>> functions.
>>>
>>> If we have each spec in its own tree, that means that nothing is
>>> shared and all referenced version numbers are hardcoded, which means
>>> that when a dependency module is released that it is up to the
>>> process again to make sure that each dependent module gets updated
>>> and then released... which is even more problematic for keeping
>>> things in-sync and now users need to have even more insight into how
>>> the specs related to each other and will almost certainly end up in
>>> disaster, especially as more specs are added and more so when
>>> developers come and go.
>>>
>>> Both multi-version schemes seem to end up going down the same path
>>> towards a maintenance nightmare.
>>>
>>> But, if you compare this with the one version... if a dependency
>>> module changes, then all dependent modules will automatically get
>>> configured with the right version, will be included in the tag, will
>>> be included in the docs (site stuff), will be published and all of
>>> this can be done in a few simple steps... all of which are standard
>>> m2-isms so anyone who knows m2 should be able to easily understand
>>> what is going on.
>>>
>>> I agree with you on some levels... and in a perfect world maven  
>>> would
>>> be able to make this happen for us as easily as it can with a  
>>> single-
>>> version scheme... but right now this is not the case.  Maybe in 6mo
>>> or a year maven will have a solution for us, but today it does not.
>>>
>>>   * * *
>>>
>>> It is still my recommendation that it is best for the project in the
>>> short to medium term that one version be used to manage specs... and
>>> to commit to revisit later when there is better support for multi-
>>> versioned build automation.
>>>
>>> --jason
>>>
>>>
>>> On Oct 2, 2006, at 6:51 AM, Alan D. Cabrera wrote:
>>>
>>> > I don't think that this is a good idea.  Versions should reflect
>>> > the contents of the jar not the fact that an unrelated spec was
>>> > released/patched/updated.
>>> >
>>> >
>>> > Regards,
>>> > Alan
>>> >
>>> > On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:
>>> >
>>> >> Hi, me again... and the specs topic again too.
>>> >>
>>> >> I have been thinking about this for quite a while and I believe
>>> >> that it would be in the best interest of the project to treat our
>>> >> specs as a project and use one version to release the spec  
>>> modules
>>> >> under.
>>> >>
>>> >> Doing so will greatly reduce the complexity to maintain the specs
>>> >> tree and to make new releases.  It also reduces the need for a
>>> >> bunch of config in the root pom.xml for specs... all properties
>>> >> can be removed and most of the dependencyManagement can be  
>>> removed
>>> >> as well.
>>> >>
>>> >> Releases can be done using the release plugin with out any twists
>>> >> of configuration, which should be straight forward.  The
>>> >> alternative is that the configuration becomes more compkicated  
>>> and
>>> >> that in order to make a release users will have to have much more
>>> >> knowledge of how Maven works and how we have configured it...
>>> >> which I am betting will only lead to something being missed which
>>> >> will only lead to problems down the road.
>>> >>
>>> >> One thing to remember for those of you who are gonna say that  
>>> some
>>> >> spec module has not changed in x-years... is that the release is
>>> >> code + pom configuration... and even if the code has not changed,
>>> >> the configuration has, and thus it warrants a new release to  
>>> be made.
>>> >>
>>> >> Specs do not get released that often anyways, so I don't really
>>> >> see any huge problem with re-releasing specs under a new version
>>> >> when something is added (or fixed).
>>> >>
>>> >> 1 version number for us (and our users) is IMO much, much  
>>> simperer
>>> >> than 30+ versions.  For example, if I am a developer and want to
>>> >> use the latest versions of all of the specs that I use, I would
>>> >> much rather know that there is just one version to track, instead
>>> >> of needing to hunt down what the latest version of each spec  
>>> is...
>>> >> after all I don't care what the version is... I just want the
>>> >> latest version.
>>> >>
>>> >> Also remember that some spec modules depend on other spec  
>>> modules,
>>> >> so ideally when a dependency module is released, the dependent
>>> >> modules should be released to pickup the latest versions.  Doing
>>> >> this is automatic with the one-version scheme, but becomes much
>>> >> more work with independent versions... which will almost  
>>> certainly
>>> >> result in dependent modules not getting updated as they should.
>>> >>
>>> >>  * * *
>>> >>
>>> >> We have also been waiting for some resolution on this to simplify
>>> >> the main server build.  It will take all of 10 minutes for me to
>>> >> fix the specs build to use one version and make a release than  
>>> can
>>> >> be used by the server build (and allow the bootstrap of specs to
>>> >> be removed).
>>> >>
>>> >> So, my recommendation is to:
>>> >>
>>> >>   1) change the specs project to use one version, 2.0-SNAPSHOT,
>>> >> and publish the snaps
>>> >>   2) update the server build to use 2.0-SNAPSHOT for all specs
>>> >>   3) remove the specs build from bootstrap
>>> >>
>>> >> I believe this is the best option for the project and  
>>> community at
>>> >> this point.  I would like to implement this ASAP to simplify the
>>> >> server build.  If after some time folks do not feel that is
>>> >> working well, then we can revisit and consider either  
>>> splitting up
>>> >> into a multi-trunk build or using independent version numbers.
>>> >> But, I do believe that most will find that the advantages of  
>>> using
>>> >> one version far out-weight the disadvantages.
>>> >>
>>> >> NOTE:
>>> >>
>>> >> For those unaware, Dain did an experiment with version ranges...
>>> >> but it looks like this will not work well right now as there is
>>> >> not general support for use of ranges in most plugins that we
>>> >> depend on.  Also several members of the m2 team have suggested
>>> >> that ranges are buggy.  This was my general impression that I
>>> >> brought up to Dain weeks ago when we talked about using ranges
>>> >> (and when he said he would try it out).  So, for now at least I
>>> >> think that ranges will not work for us.
>>> >>
>>> >> --jason
>>> >>
>>> >>
>>> >
>>>
>>>
>


Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
The maintenance simplicity problem does not differentiate between  
less changing specs or not... as soon as something changes, you will  
see the increased burden of knowledge and tasks to make a complete  
release.

My point is that we do not need to spend time worry about this with  
one version.  I can easily imagine with multi-version that a release  
might be made, and then something is noticed late in the vote,  
causing several rc cycles to fix a problem because someone missed  
updating a dependent spec.  This will not happen with one version.

--jason


On Oct 3, 2006, at 9:21 AM, Dain Sundstrom wrote:

> This is good info.  Out of this list of dependencies activation is  
> the only one that changes often; the rest of the jars are just  
> interfaces (or annotations which are just interfaces).  That leaves  
> us with the following problematic specifications:
>
> javamail 1.3.1 -> activation
> javamail 1.4 -> activation
> jaxr -> activation
> jaxrpc -> saaj, qname, servlet 2.4
> saaj -> activation
>
> -dain
>
> On Oct 2, 2006, at 2:56 PM, Jason Dillon wrote:
>
>> About 1/3 of the specs depend on other specs (not including the  
>> uber 1.4 spec):
>>
>> ejb 2.1 -> jta 1.0.1b
>> ejb3 -> jta 1.1, interceptor, annotation
>> conector 1.5 -> jta 1.0.1b
>> jacc -> servlet 2.4
>> j2ee mgmt -> ejb 2.1
>> javamail 1.3.1 -> activation
>> javamail 1.4 -> activation
>> jaxr -> activation
>> jaxrpc -> saaj, qname, servlet 2.4
>> jsp -> servlet 2.4
>> saaj -> activation
>>
>> --jason
>>
>>
>> On Oct 2, 2006, at 1:38 PM, Aaron Mulder wrote:
>>
>>> I hear you, but underlying your case is the assumption that a lot of
>>> specs depend on each other.  I'm not convinced that's true.
>>> Certainly, no J2EE 1.4 specs should rely on any J2EE 1.5 or non-J2EE
>>> specs.  I guess underlying the compromise proposal is the assumtion
>>> that at this point J2EE 1.4 is fairly unlikely to need any  
>>> changes, so
>>> a backward dependency from 1.5 to 1.4 is unlikely to need much
>>> maintainance.
>>>
>>> I'm not sure how many unaligned specs would have other spec
>>> dependencies, but I can't think of any.  The only dependencies I can
>>> really think of are mail on activation, web services on mail and
>>> activation, and JSP on servlet....  I'm sure there are a few  
>>> more, but
>>> I don't think it's anything like the inter-module dependencies of,
>>> say, Geronimo itself.
>>>
>>> Thanks,
>>>     Aaron
>>>
>>> On 10/2/06, Jason Dillon <ja...@planet57.com> wrote:
>>>> IMO there is no "best" way to handle this problem.  There is only
>>>> good and bad for each solution, but there is no smoking gun to  
>>>> solve
>>>> everyones issues.
>>>>
>>>> I already sent out that itty bitty note about the release being  
>>>> jar +
>>>> pom(s) but I wanted to clarify that even more...
>>>>
>>>> If you take the current specs build... all of the versions of the
>>>> specs are defined in the top-level pom, which means that  
>>>> whenever any
>>>> module need to change, that its parent will also need to change,  
>>>> and
>>>> that change to its parent may cause other specs to need to be  
>>>> changed
>>>> (if they depend on the spec that has been versioned).  Those
>>>> dependent modules really should be released in the same process  
>>>> too,
>>>> but there is no easy mechanism to automate that in the multi-
>>>> versioned build.  Which leaves that task up to process... and as I
>>>> have mentioned before, will almost certainly result in problems due
>>>> to lack of insight into maven and how the multi-version spec build
>>>> functions.
>>>>
>>>> If we have each spec in its own tree, that means that nothing is
>>>> shared and all referenced version numbers are hardcoded, which  
>>>> means
>>>> that when a dependency module is released that it is up to the
>>>> process again to make sure that each dependent module gets updated
>>>> and then released... which is even more problematic for keeping
>>>> things in-sync and now users need to have even more insight into  
>>>> how
>>>> the specs related to each other and will almost certainly end up in
>>>> disaster, especially as more specs are added and more so when
>>>> developers come and go.
>>>>
>>>> Both multi-version schemes seem to end up going down the same path
>>>> towards a maintenance nightmare.
>>>>
>>>> But, if you compare this with the one version... if a dependency
>>>> module changes, then all dependent modules will automatically get
>>>> configured with the right version, will be included in the tag,  
>>>> will
>>>> be included in the docs (site stuff), will be published and all of
>>>> this can be done in a few simple steps... all of which are standard
>>>> m2-isms so anyone who knows m2 should be able to easily understand
>>>> what is going on.
>>>>
>>>> I agree with you on some levels... and in a perfect world maven  
>>>> would
>>>> be able to make this happen for us as easily as it can with a  
>>>> single-
>>>> version scheme... but right now this is not the case.  Maybe in 6mo
>>>> or a year maven will have a solution for us, but today it does not.
>>>>
>>>>   * * *
>>>>
>>>> It is still my recommendation that it is best for the project in  
>>>> the
>>>> short to medium term that one version be used to manage specs...  
>>>> and
>>>> to commit to revisit later when there is better support for multi-
>>>> versioned build automation.
>>>>
>>>> --jason
>>>>
>>>>
>>>> On Oct 2, 2006, at 6:51 AM, Alan D. Cabrera wrote:
>>>>
>>>> > I don't think that this is a good idea.  Versions should reflect
>>>> > the contents of the jar not the fact that an unrelated spec was
>>>> > released/patched/updated.
>>>> >
>>>> >
>>>> > Regards,
>>>> > Alan
>>>> >
>>>> > On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:
>>>> >
>>>> >> Hi, me again... and the specs topic again too.
>>>> >>
>>>> >> I have been thinking about this for quite a while and I believe
>>>> >> that it would be in the best interest of the project to treat  
>>>> our
>>>> >> specs as a project and use one version to release the spec  
>>>> modules
>>>> >> under.
>>>> >>
>>>> >> Doing so will greatly reduce the complexity to maintain the  
>>>> specs
>>>> >> tree and to make new releases.  It also reduces the need for a
>>>> >> bunch of config in the root pom.xml for specs... all properties
>>>> >> can be removed and most of the dependencyManagement can be  
>>>> removed
>>>> >> as well.
>>>> >>
>>>> >> Releases can be done using the release plugin with out any  
>>>> twists
>>>> >> of configuration, which should be straight forward.  The
>>>> >> alternative is that the configuration becomes more  
>>>> compkicated and
>>>> >> that in order to make a release users will have to have much  
>>>> more
>>>> >> knowledge of how Maven works and how we have configured it...
>>>> >> which I am betting will only lead to something being missed  
>>>> which
>>>> >> will only lead to problems down the road.
>>>> >>
>>>> >> One thing to remember for those of you who are gonna say that  
>>>> some
>>>> >> spec module has not changed in x-years... is that the release is
>>>> >> code + pom configuration... and even if the code has not  
>>>> changed,
>>>> >> the configuration has, and thus it warrants a new release to  
>>>> be made.
>>>> >>
>>>> >> Specs do not get released that often anyways, so I don't really
>>>> >> see any huge problem with re-releasing specs under a new version
>>>> >> when something is added (or fixed).
>>>> >>
>>>> >> 1 version number for us (and our users) is IMO much, much  
>>>> simperer
>>>> >> than 30+ versions.  For example, if I am a developer and want to
>>>> >> use the latest versions of all of the specs that I use, I would
>>>> >> much rather know that there is just one version to track,  
>>>> instead
>>>> >> of needing to hunt down what the latest version of each spec  
>>>> is...
>>>> >> after all I don't care what the version is... I just want the
>>>> >> latest version.
>>>> >>
>>>> >> Also remember that some spec modules depend on other spec  
>>>> modules,
>>>> >> so ideally when a dependency module is released, the dependent
>>>> >> modules should be released to pickup the latest versions.  Doing
>>>> >> this is automatic with the one-version scheme, but becomes much
>>>> >> more work with independent versions... which will almost  
>>>> certainly
>>>> >> result in dependent modules not getting updated as they should.
>>>> >>
>>>> >>  * * *
>>>> >>
>>>> >> We have also been waiting for some resolution on this to  
>>>> simplify
>>>> >> the main server build.  It will take all of 10 minutes for me to
>>>> >> fix the specs build to use one version and make a release  
>>>> than can
>>>> >> be used by the server build (and allow the bootstrap of specs to
>>>> >> be removed).
>>>> >>
>>>> >> So, my recommendation is to:
>>>> >>
>>>> >>   1) change the specs project to use one version, 2.0-SNAPSHOT,
>>>> >> and publish the snaps
>>>> >>   2) update the server build to use 2.0-SNAPSHOT for all specs
>>>> >>   3) remove the specs build from bootstrap
>>>> >>
>>>> >> I believe this is the best option for the project and  
>>>> community at
>>>> >> this point.  I would like to implement this ASAP to simplify the
>>>> >> server build.  If after some time folks do not feel that is
>>>> >> working well, then we can revisit and consider either  
>>>> splitting up
>>>> >> into a multi-trunk build or using independent version numbers.
>>>> >> But, I do believe that most will find that the advantages of  
>>>> using
>>>> >> one version far out-weight the disadvantages.
>>>> >>
>>>> >> NOTE:
>>>> >>
>>>> >> For those unaware, Dain did an experiment with version ranges...
>>>> >> but it looks like this will not work well right now as there is
>>>> >> not general support for use of ranges in most plugins that we
>>>> >> depend on.  Also several members of the m2 team have suggested
>>>> >> that ranges are buggy.  This was my general impression that I
>>>> >> brought up to Dain weeks ago when we talked about using ranges
>>>> >> (and when he said he would try it out).  So, for now at least I
>>>> >> think that ranges will not work for us.
>>>> >>
>>>> >> --jason
>>>> >>
>>>> >>
>>>> >
>>>>
>>>>
>


Re: One version for specs

Posted by Dain Sundstrom <da...@iq80.com>.
This is good info.  Out of this list of dependencies activation is  
the only one that changes often; the rest of the jars are just  
interfaces (or annotations which are just interfaces).  That leaves  
us with the following problematic specifications:

javamail 1.3.1 -> activation
javamail 1.4 -> activation
jaxr -> activation
jaxrpc -> saaj, qname, servlet 2.4
saaj -> activation

-dain

On Oct 2, 2006, at 2:56 PM, Jason Dillon wrote:

> About 1/3 of the specs depend on other specs (not including the  
> uber 1.4 spec):
>
> ejb 2.1 -> jta 1.0.1b
> ejb3 -> jta 1.1, interceptor, annotation
> conector 1.5 -> jta 1.0.1b
> jacc -> servlet 2.4
> j2ee mgmt -> ejb 2.1
> javamail 1.3.1 -> activation
> javamail 1.4 -> activation
> jaxr -> activation
> jaxrpc -> saaj, qname, servlet 2.4
> jsp -> servlet 2.4
> saaj -> activation
>
> --jason
>
>
> On Oct 2, 2006, at 1:38 PM, Aaron Mulder wrote:
>
>> I hear you, but underlying your case is the assumption that a lot of
>> specs depend on each other.  I'm not convinced that's true.
>> Certainly, no J2EE 1.4 specs should rely on any J2EE 1.5 or non-J2EE
>> specs.  I guess underlying the compromise proposal is the assumtion
>> that at this point J2EE 1.4 is fairly unlikely to need any  
>> changes, so
>> a backward dependency from 1.5 to 1.4 is unlikely to need much
>> maintainance.
>>
>> I'm not sure how many unaligned specs would have other spec
>> dependencies, but I can't think of any.  The only dependencies I can
>> really think of are mail on activation, web services on mail and
>> activation, and JSP on servlet....  I'm sure there are a few more,  
>> but
>> I don't think it's anything like the inter-module dependencies of,
>> say, Geronimo itself.
>>
>> Thanks,
>>     Aaron
>>
>> On 10/2/06, Jason Dillon <ja...@planet57.com> wrote:
>>> IMO there is no "best" way to handle this problem.  There is only
>>> good and bad for each solution, but there is no smoking gun to solve
>>> everyones issues.
>>>
>>> I already sent out that itty bitty note about the release being  
>>> jar +
>>> pom(s) but I wanted to clarify that even more...
>>>
>>> If you take the current specs build... all of the versions of the
>>> specs are defined in the top-level pom, which means that whenever  
>>> any
>>> module need to change, that its parent will also need to change, and
>>> that change to its parent may cause other specs to need to be  
>>> changed
>>> (if they depend on the spec that has been versioned).  Those
>>> dependent modules really should be released in the same process too,
>>> but there is no easy mechanism to automate that in the multi-
>>> versioned build.  Which leaves that task up to process... and as I
>>> have mentioned before, will almost certainly result in problems due
>>> to lack of insight into maven and how the multi-version spec build
>>> functions.
>>>
>>> If we have each spec in its own tree, that means that nothing is
>>> shared and all referenced version numbers are hardcoded, which means
>>> that when a dependency module is released that it is up to the
>>> process again to make sure that each dependent module gets updated
>>> and then released... which is even more problematic for keeping
>>> things in-sync and now users need to have even more insight into how
>>> the specs related to each other and will almost certainly end up in
>>> disaster, especially as more specs are added and more so when
>>> developers come and go.
>>>
>>> Both multi-version schemes seem to end up going down the same path
>>> towards a maintenance nightmare.
>>>
>>> But, if you compare this with the one version... if a dependency
>>> module changes, then all dependent modules will automatically get
>>> configured with the right version, will be included in the tag, will
>>> be included in the docs (site stuff), will be published and all of
>>> this can be done in a few simple steps... all of which are standard
>>> m2-isms so anyone who knows m2 should be able to easily understand
>>> what is going on.
>>>
>>> I agree with you on some levels... and in a perfect world maven  
>>> would
>>> be able to make this happen for us as easily as it can with a  
>>> single-
>>> version scheme... but right now this is not the case.  Maybe in 6mo
>>> or a year maven will have a solution for us, but today it does not.
>>>
>>>   * * *
>>>
>>> It is still my recommendation that it is best for the project in the
>>> short to medium term that one version be used to manage specs... and
>>> to commit to revisit later when there is better support for multi-
>>> versioned build automation.
>>>
>>> --jason
>>>
>>>
>>> On Oct 2, 2006, at 6:51 AM, Alan D. Cabrera wrote:
>>>
>>> > I don't think that this is a good idea.  Versions should reflect
>>> > the contents of the jar not the fact that an unrelated spec was
>>> > released/patched/updated.
>>> >
>>> >
>>> > Regards,
>>> > Alan
>>> >
>>> > On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:
>>> >
>>> >> Hi, me again... and the specs topic again too.
>>> >>
>>> >> I have been thinking about this for quite a while and I believe
>>> >> that it would be in the best interest of the project to treat our
>>> >> specs as a project and use one version to release the spec  
>>> modules
>>> >> under.
>>> >>
>>> >> Doing so will greatly reduce the complexity to maintain the specs
>>> >> tree and to make new releases.  It also reduces the need for a
>>> >> bunch of config in the root pom.xml for specs... all properties
>>> >> can be removed and most of the dependencyManagement can be  
>>> removed
>>> >> as well.
>>> >>
>>> >> Releases can be done using the release plugin with out any twists
>>> >> of configuration, which should be straight forward.  The
>>> >> alternative is that the configuration becomes more compkicated  
>>> and
>>> >> that in order to make a release users will have to have much more
>>> >> knowledge of how Maven works and how we have configured it...
>>> >> which I am betting will only lead to something being missed which
>>> >> will only lead to problems down the road.
>>> >>
>>> >> One thing to remember for those of you who are gonna say that  
>>> some
>>> >> spec module has not changed in x-years... is that the release is
>>> >> code + pom configuration... and even if the code has not changed,
>>> >> the configuration has, and thus it warrants a new release to  
>>> be made.
>>> >>
>>> >> Specs do not get released that often anyways, so I don't really
>>> >> see any huge problem with re-releasing specs under a new version
>>> >> when something is added (or fixed).
>>> >>
>>> >> 1 version number for us (and our users) is IMO much, much  
>>> simperer
>>> >> than 30+ versions.  For example, if I am a developer and want to
>>> >> use the latest versions of all of the specs that I use, I would
>>> >> much rather know that there is just one version to track, instead
>>> >> of needing to hunt down what the latest version of each spec  
>>> is...
>>> >> after all I don't care what the version is... I just want the
>>> >> latest version.
>>> >>
>>> >> Also remember that some spec modules depend on other spec  
>>> modules,
>>> >> so ideally when a dependency module is released, the dependent
>>> >> modules should be released to pickup the latest versions.  Doing
>>> >> this is automatic with the one-version scheme, but becomes much
>>> >> more work with independent versions... which will almost  
>>> certainly
>>> >> result in dependent modules not getting updated as they should.
>>> >>
>>> >>  * * *
>>> >>
>>> >> We have also been waiting for some resolution on this to simplify
>>> >> the main server build.  It will take all of 10 minutes for me to
>>> >> fix the specs build to use one version and make a release than  
>>> can
>>> >> be used by the server build (and allow the bootstrap of specs to
>>> >> be removed).
>>> >>
>>> >> So, my recommendation is to:
>>> >>
>>> >>   1) change the specs project to use one version, 2.0-SNAPSHOT,
>>> >> and publish the snaps
>>> >>   2) update the server build to use 2.0-SNAPSHOT for all specs
>>> >>   3) remove the specs build from bootstrap
>>> >>
>>> >> I believe this is the best option for the project and  
>>> community at
>>> >> this point.  I would like to implement this ASAP to simplify the
>>> >> server build.  If after some time folks do not feel that is
>>> >> working well, then we can revisit and consider either  
>>> splitting up
>>> >> into a multi-trunk build or using independent version numbers.
>>> >> But, I do believe that most will find that the advantages of  
>>> using
>>> >> one version far out-weight the disadvantages.
>>> >>
>>> >> NOTE:
>>> >>
>>> >> For those unaware, Dain did an experiment with version ranges...
>>> >> but it looks like this will not work well right now as there is
>>> >> not general support for use of ranges in most plugins that we
>>> >> depend on.  Also several members of the m2 team have suggested
>>> >> that ranges are buggy.  This was my general impression that I
>>> >> brought up to Dain weeks ago when we talked about using ranges
>>> >> (and when he said he would try it out).  So, for now at least I
>>> >> think that ranges will not work for us.
>>> >>
>>> >> --jason
>>> >>
>>> >>
>>> >
>>>
>>>


Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
About 1/3 of the specs depend on other specs (not including the uber  
1.4 spec):

ejb 2.1 -> jta 1.0.1b
ejb3 -> jta 1.1, interceptor, annotation
conector 1.5 -> jta 1.0.1b
jacc -> servlet 2.4
j2ee mgmt -> ejb 2.1
javamail 1.3.1 -> activation
javamail 1.4 -> activation
jaxr -> activation
jaxrpc -> saaj, qname, servlet 2.4
jsp -> servlet 2.4
saaj -> activation

--jason


On Oct 2, 2006, at 1:38 PM, Aaron Mulder wrote:

> I hear you, but underlying your case is the assumption that a lot of
> specs depend on each other.  I'm not convinced that's true.
> Certainly, no J2EE 1.4 specs should rely on any J2EE 1.5 or non-J2EE
> specs.  I guess underlying the compromise proposal is the assumtion
> that at this point J2EE 1.4 is fairly unlikely to need any changes, so
> a backward dependency from 1.5 to 1.4 is unlikely to need much
> maintainance.
>
> I'm not sure how many unaligned specs would have other spec
> dependencies, but I can't think of any.  The only dependencies I can
> really think of are mail on activation, web services on mail and
> activation, and JSP on servlet....  I'm sure there are a few more, but
> I don't think it's anything like the inter-module dependencies of,
> say, Geronimo itself.
>
> Thanks,
>     Aaron
>
> On 10/2/06, Jason Dillon <ja...@planet57.com> wrote:
>> IMO there is no "best" way to handle this problem.  There is only
>> good and bad for each solution, but there is no smoking gun to solve
>> everyones issues.
>>
>> I already sent out that itty bitty note about the release being jar +
>> pom(s) but I wanted to clarify that even more...
>>
>> If you take the current specs build... all of the versions of the
>> specs are defined in the top-level pom, which means that whenever any
>> module need to change, that its parent will also need to change, and
>> that change to its parent may cause other specs to need to be changed
>> (if they depend on the spec that has been versioned).  Those
>> dependent modules really should be released in the same process too,
>> but there is no easy mechanism to automate that in the multi-
>> versioned build.  Which leaves that task up to process... and as I
>> have mentioned before, will almost certainly result in problems due
>> to lack of insight into maven and how the multi-version spec build
>> functions.
>>
>> If we have each spec in its own tree, that means that nothing is
>> shared and all referenced version numbers are hardcoded, which means
>> that when a dependency module is released that it is up to the
>> process again to make sure that each dependent module gets updated
>> and then released... which is even more problematic for keeping
>> things in-sync and now users need to have even more insight into how
>> the specs related to each other and will almost certainly end up in
>> disaster, especially as more specs are added and more so when
>> developers come and go.
>>
>> Both multi-version schemes seem to end up going down the same path
>> towards a maintenance nightmare.
>>
>> But, if you compare this with the one version... if a dependency
>> module changes, then all dependent modules will automatically get
>> configured with the right version, will be included in the tag, will
>> be included in the docs (site stuff), will be published and all of
>> this can be done in a few simple steps... all of which are standard
>> m2-isms so anyone who knows m2 should be able to easily understand
>> what is going on.
>>
>> I agree with you on some levels... and in a perfect world maven would
>> be able to make this happen for us as easily as it can with a single-
>> version scheme... but right now this is not the case.  Maybe in 6mo
>> or a year maven will have a solution for us, but today it does not.
>>
>>   * * *
>>
>> It is still my recommendation that it is best for the project in the
>> short to medium term that one version be used to manage specs... and
>> to commit to revisit later when there is better support for multi-
>> versioned build automation.
>>
>> --jason
>>
>>
>> On Oct 2, 2006, at 6:51 AM, Alan D. Cabrera wrote:
>>
>> > I don't think that this is a good idea.  Versions should reflect
>> > the contents of the jar not the fact that an unrelated spec was
>> > released/patched/updated.
>> >
>> >
>> > Regards,
>> > Alan
>> >
>> > On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:
>> >
>> >> Hi, me again... and the specs topic again too.
>> >>
>> >> I have been thinking about this for quite a while and I believe
>> >> that it would be in the best interest of the project to treat our
>> >> specs as a project and use one version to release the spec modules
>> >> under.
>> >>
>> >> Doing so will greatly reduce the complexity to maintain the specs
>> >> tree and to make new releases.  It also reduces the need for a
>> >> bunch of config in the root pom.xml for specs... all properties
>> >> can be removed and most of the dependencyManagement can be removed
>> >> as well.
>> >>
>> >> Releases can be done using the release plugin with out any twists
>> >> of configuration, which should be straight forward.  The
>> >> alternative is that the configuration becomes more compkicated and
>> >> that in order to make a release users will have to have much more
>> >> knowledge of how Maven works and how we have configured it...
>> >> which I am betting will only lead to something being missed which
>> >> will only lead to problems down the road.
>> >>
>> >> One thing to remember for those of you who are gonna say that some
>> >> spec module has not changed in x-years... is that the release is
>> >> code + pom configuration... and even if the code has not changed,
>> >> the configuration has, and thus it warrants a new release to be  
>> made.
>> >>
>> >> Specs do not get released that often anyways, so I don't really
>> >> see any huge problem with re-releasing specs under a new version
>> >> when something is added (or fixed).
>> >>
>> >> 1 version number for us (and our users) is IMO much, much simperer
>> >> than 30+ versions.  For example, if I am a developer and want to
>> >> use the latest versions of all of the specs that I use, I would
>> >> much rather know that there is just one version to track, instead
>> >> of needing to hunt down what the latest version of each spec is...
>> >> after all I don't care what the version is... I just want the
>> >> latest version.
>> >>
>> >> Also remember that some spec modules depend on other spec modules,
>> >> so ideally when a dependency module is released, the dependent
>> >> modules should be released to pickup the latest versions.  Doing
>> >> this is automatic with the one-version scheme, but becomes much
>> >> more work with independent versions... which will almost certainly
>> >> result in dependent modules not getting updated as they should.
>> >>
>> >>  * * *
>> >>
>> >> We have also been waiting for some resolution on this to simplify
>> >> the main server build.  It will take all of 10 minutes for me to
>> >> fix the specs build to use one version and make a release than can
>> >> be used by the server build (and allow the bootstrap of specs to
>> >> be removed).
>> >>
>> >> So, my recommendation is to:
>> >>
>> >>   1) change the specs project to use one version, 2.0-SNAPSHOT,
>> >> and publish the snaps
>> >>   2) update the server build to use 2.0-SNAPSHOT for all specs
>> >>   3) remove the specs build from bootstrap
>> >>
>> >> I believe this is the best option for the project and community at
>> >> this point.  I would like to implement this ASAP to simplify the
>> >> server build.  If after some time folks do not feel that is
>> >> working well, then we can revisit and consider either splitting up
>> >> into a multi-trunk build or using independent version numbers.
>> >> But, I do believe that most will find that the advantages of using
>> >> one version far out-weight the disadvantages.
>> >>
>> >> NOTE:
>> >>
>> >> For those unaware, Dain did an experiment with version ranges...
>> >> but it looks like this will not work well right now as there is
>> >> not general support for use of ranges in most plugins that we
>> >> depend on.  Also several members of the m2 team have suggested
>> >> that ranges are buggy.  This was my general impression that I
>> >> brought up to Dain weeks ago when we talked about using ranges
>> >> (and when he said he would try it out).  So, for now at least I
>> >> think that ranges will not work for us.
>> >>
>> >> --jason
>> >>
>> >>
>> >
>>
>>


Re: One version for specs

Posted by Aaron Mulder <am...@alumni.princeton.edu>.
I hear you, but underlying your case is the assumption that a lot of
specs depend on each other.  I'm not convinced that's true.
Certainly, no J2EE 1.4 specs should rely on any J2EE 1.5 or non-J2EE
specs.  I guess underlying the compromise proposal is the assumtion
that at this point J2EE 1.4 is fairly unlikely to need any changes, so
a backward dependency from 1.5 to 1.4 is unlikely to need much
maintainance.

I'm not sure how many unaligned specs would have other spec
dependencies, but I can't think of any.  The only dependencies I can
really think of are mail on activation, web services on mail and
activation, and JSP on servlet....  I'm sure there are a few more, but
I don't think it's anything like the inter-module dependencies of,
say, Geronimo itself.

Thanks,
     Aaron

On 10/2/06, Jason Dillon <ja...@planet57.com> wrote:
> IMO there is no "best" way to handle this problem.  There is only
> good and bad for each solution, but there is no smoking gun to solve
> everyones issues.
>
> I already sent out that itty bitty note about the release being jar +
> pom(s) but I wanted to clarify that even more...
>
> If you take the current specs build... all of the versions of the
> specs are defined in the top-level pom, which means that whenever any
> module need to change, that its parent will also need to change, and
> that change to its parent may cause other specs to need to be changed
> (if they depend on the spec that has been versioned).  Those
> dependent modules really should be released in the same process too,
> but there is no easy mechanism to automate that in the multi-
> versioned build.  Which leaves that task up to process... and as I
> have mentioned before, will almost certainly result in problems due
> to lack of insight into maven and how the multi-version spec build
> functions.
>
> If we have each spec in its own tree, that means that nothing is
> shared and all referenced version numbers are hardcoded, which means
> that when a dependency module is released that it is up to the
> process again to make sure that each dependent module gets updated
> and then released... which is even more problematic for keeping
> things in-sync and now users need to have even more insight into how
> the specs related to each other and will almost certainly end up in
> disaster, especially as more specs are added and more so when
> developers come and go.
>
> Both multi-version schemes seem to end up going down the same path
> towards a maintenance nightmare.
>
> But, if you compare this with the one version... if a dependency
> module changes, then all dependent modules will automatically get
> configured with the right version, will be included in the tag, will
> be included in the docs (site stuff), will be published and all of
> this can be done in a few simple steps... all of which are standard
> m2-isms so anyone who knows m2 should be able to easily understand
> what is going on.
>
> I agree with you on some levels... and in a perfect world maven would
> be able to make this happen for us as easily as it can with a single-
> version scheme... but right now this is not the case.  Maybe in 6mo
> or a year maven will have a solution for us, but today it does not.
>
>   * * *
>
> It is still my recommendation that it is best for the project in the
> short to medium term that one version be used to manage specs... and
> to commit to revisit later when there is better support for multi-
> versioned build automation.
>
> --jason
>
>
> On Oct 2, 2006, at 6:51 AM, Alan D. Cabrera wrote:
>
> > I don't think that this is a good idea.  Versions should reflect
> > the contents of the jar not the fact that an unrelated spec was
> > released/patched/updated.
> >
> >
> > Regards,
> > Alan
> >
> > On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:
> >
> >> Hi, me again... and the specs topic again too.
> >>
> >> I have been thinking about this for quite a while and I believe
> >> that it would be in the best interest of the project to treat our
> >> specs as a project and use one version to release the spec modules
> >> under.
> >>
> >> Doing so will greatly reduce the complexity to maintain the specs
> >> tree and to make new releases.  It also reduces the need for a
> >> bunch of config in the root pom.xml for specs... all properties
> >> can be removed and most of the dependencyManagement can be removed
> >> as well.
> >>
> >> Releases can be done using the release plugin with out any twists
> >> of configuration, which should be straight forward.  The
> >> alternative is that the configuration becomes more compkicated and
> >> that in order to make a release users will have to have much more
> >> knowledge of how Maven works and how we have configured it...
> >> which I am betting will only lead to something being missed which
> >> will only lead to problems down the road.
> >>
> >> One thing to remember for those of you who are gonna say that some
> >> spec module has not changed in x-years... is that the release is
> >> code + pom configuration... and even if the code has not changed,
> >> the configuration has, and thus it warrants a new release to be made.
> >>
> >> Specs do not get released that often anyways, so I don't really
> >> see any huge problem with re-releasing specs under a new version
> >> when something is added (or fixed).
> >>
> >> 1 version number for us (and our users) is IMO much, much simperer
> >> than 30+ versions.  For example, if I am a developer and want to
> >> use the latest versions of all of the specs that I use, I would
> >> much rather know that there is just one version to track, instead
> >> of needing to hunt down what the latest version of each spec is...
> >> after all I don't care what the version is... I just want the
> >> latest version.
> >>
> >> Also remember that some spec modules depend on other spec modules,
> >> so ideally when a dependency module is released, the dependent
> >> modules should be released to pickup the latest versions.  Doing
> >> this is automatic with the one-version scheme, but becomes much
> >> more work with independent versions... which will almost certainly
> >> result in dependent modules not getting updated as they should.
> >>
> >>  * * *
> >>
> >> We have also been waiting for some resolution on this to simplify
> >> the main server build.  It will take all of 10 minutes for me to
> >> fix the specs build to use one version and make a release than can
> >> be used by the server build (and allow the bootstrap of specs to
> >> be removed).
> >>
> >> So, my recommendation is to:
> >>
> >>   1) change the specs project to use one version, 2.0-SNAPSHOT,
> >> and publish the snaps
> >>   2) update the server build to use 2.0-SNAPSHOT for all specs
> >>   3) remove the specs build from bootstrap
> >>
> >> I believe this is the best option for the project and community at
> >> this point.  I would like to implement this ASAP to simplify the
> >> server build.  If after some time folks do not feel that is
> >> working well, then we can revisit and consider either splitting up
> >> into a multi-trunk build or using independent version numbers.
> >> But, I do believe that most will find that the advantages of using
> >> one version far out-weight the disadvantages.
> >>
> >> NOTE:
> >>
> >> For those unaware, Dain did an experiment with version ranges...
> >> but it looks like this will not work well right now as there is
> >> not general support for use of ranges in most plugins that we
> >> depend on.  Also several members of the m2 team have suggested
> >> that ranges are buggy.  This was my general impression that I
> >> brought up to Dain weeks ago when we talked about using ranges
> >> (and when he said he would try it out).  So, for now at least I
> >> think that ranges will not work for us.
> >>
> >> --jason
> >>
> >>
> >
>
>

Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
IMO there is no "best" way to handle this problem.  There is only  
good and bad for each solution, but there is no smoking gun to solve  
everyones issues.

I already sent out that itty bitty note about the release being jar +  
pom(s) but I wanted to clarify that even more...

If you take the current specs build... all of the versions of the  
specs are defined in the top-level pom, which means that whenever any  
module need to change, that its parent will also need to change, and  
that change to its parent may cause other specs to need to be changed  
(if they depend on the spec that has been versioned).  Those  
dependent modules really should be released in the same process too,  
but there is no easy mechanism to automate that in the multi- 
versioned build.  Which leaves that task up to process... and as I  
have mentioned before, will almost certainly result in problems due  
to lack of insight into maven and how the multi-version spec build  
functions.

If we have each spec in its own tree, that means that nothing is  
shared and all referenced version numbers are hardcoded, which means  
that when a dependency module is released that it is up to the  
process again to make sure that each dependent module gets updated  
and then released... which is even more problematic for keeping  
things in-sync and now users need to have even more insight into how  
the specs related to each other and will almost certainly end up in  
disaster, especially as more specs are added and more so when  
developers come and go.

Both multi-version schemes seem to end up going down the same path  
towards a maintenance nightmare.

But, if you compare this with the one version... if a dependency  
module changes, then all dependent modules will automatically get  
configured with the right version, will be included in the tag, will  
be included in the docs (site stuff), will be published and all of  
this can be done in a few simple steps... all of which are standard  
m2-isms so anyone who knows m2 should be able to easily understand  
what is going on.

I agree with you on some levels... and in a perfect world maven would  
be able to make this happen for us as easily as it can with a single- 
version scheme... but right now this is not the case.  Maybe in 6mo  
or a year maven will have a solution for us, but today it does not.

  * * *

It is still my recommendation that it is best for the project in the  
short to medium term that one version be used to manage specs... and  
to commit to revisit later when there is better support for multi- 
versioned build automation.

--jason


On Oct 2, 2006, at 6:51 AM, Alan D. Cabrera wrote:

> I don't think that this is a good idea.  Versions should reflect  
> the contents of the jar not the fact that an unrelated spec was  
> released/patched/updated.
>
>
> Regards,
> Alan
>
> On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:
>
>> Hi, me again... and the specs topic again too.
>>
>> I have been thinking about this for quite a while and I believe  
>> that it would be in the best interest of the project to treat our  
>> specs as a project and use one version to release the spec modules  
>> under.
>>
>> Doing so will greatly reduce the complexity to maintain the specs  
>> tree and to make new releases.  It also reduces the need for a  
>> bunch of config in the root pom.xml for specs... all properties  
>> can be removed and most of the dependencyManagement can be removed  
>> as well.
>>
>> Releases can be done using the release plugin with out any twists  
>> of configuration, which should be straight forward.  The  
>> alternative is that the configuration becomes more compkicated and  
>> that in order to make a release users will have to have much more  
>> knowledge of how Maven works and how we have configured it...  
>> which I am betting will only lead to something being missed which  
>> will only lead to problems down the road.
>>
>> One thing to remember for those of you who are gonna say that some  
>> spec module has not changed in x-years... is that the release is  
>> code + pom configuration... and even if the code has not changed,  
>> the configuration has, and thus it warrants a new release to be made.
>>
>> Specs do not get released that often anyways, so I don't really  
>> see any huge problem with re-releasing specs under a new version  
>> when something is added (or fixed).
>>
>> 1 version number for us (and our users) is IMO much, much simperer  
>> than 30+ versions.  For example, if I am a developer and want to  
>> use the latest versions of all of the specs that I use, I would  
>> much rather know that there is just one version to track, instead  
>> of needing to hunt down what the latest version of each spec is...  
>> after all I don't care what the version is... I just want the  
>> latest version.
>>
>> Also remember that some spec modules depend on other spec modules,  
>> so ideally when a dependency module is released, the dependent  
>> modules should be released to pickup the latest versions.  Doing  
>> this is automatic with the one-version scheme, but becomes much  
>> more work with independent versions... which will almost certainly  
>> result in dependent modules not getting updated as they should.
>>
>>  * * *
>>
>> We have also been waiting for some resolution on this to simplify  
>> the main server build.  It will take all of 10 minutes for me to  
>> fix the specs build to use one version and make a release than can  
>> be used by the server build (and allow the bootstrap of specs to  
>> be removed).
>>
>> So, my recommendation is to:
>>
>>   1) change the specs project to use one version, 2.0-SNAPSHOT,  
>> and publish the snaps
>>   2) update the server build to use 2.0-SNAPSHOT for all specs
>>   3) remove the specs build from bootstrap
>>
>> I believe this is the best option for the project and community at  
>> this point.  I would like to implement this ASAP to simplify the  
>> server build.  If after some time folks do not feel that is  
>> working well, then we can revisit and consider either splitting up  
>> into a multi-trunk build or using independent version numbers.   
>> But, I do believe that most will find that the advantages of using  
>> one version far out-weight the disadvantages.
>>
>> NOTE:
>>
>> For those unaware, Dain did an experiment with version ranges...  
>> but it looks like this will not work well right now as there is  
>> not general support for use of ranges in most plugins that we  
>> depend on.  Also several members of the m2 team have suggested  
>> that ranges are buggy.  This was my general impression that I  
>> brought up to Dain weeks ago when we talked about using ranges  
>> (and when he said he would try it out).  So, for now at least I  
>> think that ranges will not work for us.
>>
>> --jason
>>
>>
>


Re: One version for specs

Posted by "Alan D. Cabrera" <li...@toolazydogs.com>.
I take it that you are arguing that since the POM changes then the  
release jar has actually changed.  This argument already assumes that  
you're using a single version for specs.  Do I understand correctly?


Regards,
Alan

On Oct 2, 2006, at 11:11 AM, jason.dillon@gmail.com wrote:

> Remeber now.... A release is jar + pom configuration.
>
> --jason
>
>
>
>
> -----Original Message-----
> From: "Alan D. Cabrera" <li...@toolazydogs.com>
> Date: Mon, 2 Oct 2006 06:51:20
> To:dev@geronimo.apache.org
> Subject: Re: One version for specs
>
> I don't think that this is a good idea.  Versions should reflect the
> contents of the jar not the fact that an unrelated spec was released/
> patched/updated.
>
>
> Regards,
> Alan
>
> On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:
>
>> Hi, me again... and the specs topic again too.
>>
>> I have been thinking about this for quite a while and I believe
>> that it would be in the best interest of the project to treat our
>> specs as a project and use one version to release the spec modules
>> under.
>>
>> Doing so will greatly reduce the complexity to maintain the specs
>> tree and to make new releases.  It also reduces the need for a
>> bunch of config in the root pom.xml for specs... all properties can
>> be removed and most of the dependencyManagement can be removed as
>> well.
>>
>> Releases can be done using the release plugin with out any twists
>> of configuration, which should be straight forward.  The
>> alternative is that the configuration becomes more compkicated and
>> that in order to make a release users will have to have much more
>> knowledge of how Maven works and how we have configured it... which
>> I am betting will only lead to something being missed which will
>> only lead to problems down the road.
>>
>> One thing to remember for those of you who are gonna say that some
>> spec module has not changed in x-years... is that the release is
>> code + pom configuration... and even if the code has not changed,
>> the configuration has, and thus it warrants a new release to be made.
>>
>> Specs do not get released that often anyways, so I don't really see
>> any huge problem with re-releasing specs under a new version when
>> something is added (or fixed).
>>
>> 1 version number for us (and our users) is IMO much, much simperer
>> than 30+ versions.  For example, if I am a developer and want to
>> use the latest versions of all of the specs that I use, I would
>> much rather know that there is just one version to track, instead
>> of needing to hunt down what the latest version of each spec is...
>> after all I don't care what the version is... I just want the
>> latest version.
>>
>> Also remember that some spec modules depend on other spec modules,
>> so ideally when a dependency module is released, the dependent
>> modules should be released to pickup the latest versions.  Doing
>> this is automatic with the one-version scheme, but becomes much
>> more work with independent versions... which will almost certainly
>> result in dependent modules not getting updated as they should.
>>
>>  * * *
>>
>> We have also been waiting for some resolution on this to simplify
>> the main server build.  It will take all of 10 minutes for me to
>> fix the specs build to use one version and make a release than can
>> be used by the server build (and allow the bootstrap of specs to be
>> removed).
>>
>> So, my recommendation is to:
>>
>>   1) change the specs project to use one version, 2.0-SNAPSHOT, and
>> publish the snaps
>>   2) update the server build to use 2.0-SNAPSHOT for all specs
>>   3) remove the specs build from bootstrap
>>
>> I believe this is the best option for the project and community at
>> this point.  I would like to implement this ASAP to simplify the
>> server build.  If after some time folks do not feel that is working
>> well, then we can revisit and consider either splitting up into a
>> multi-trunk build or using independent version numbers.  But, I do
>> believe that most will find that the advantages of using one
>> version far out-weight the disadvantages.
>>
>> NOTE:
>>
>> For those unaware, Dain did an experiment with version ranges...
>> but it looks like this will not work well right now as there is not
>> general support for use of ranges in most plugins that we depend
>> on.  Also several members of the m2 team have suggested that ranges
>> are buggy.  This was my general impression that I brought up to
>> Dain weeks ago when we talked about using ranges (and when he said
>> he would try it out).  So, for now at least I think that ranges
>> will not work for us.
>>
>> --jason
>>
>>
>


Re: One version for specs

Posted by ja...@gmail.com.
Remeber now.... A release is jar + pom configuration. 

--jason


  

-----Original Message-----
From: "Alan D. Cabrera" <li...@toolazydogs.com>
Date: Mon, 2 Oct 2006 06:51:20 
To:dev@geronimo.apache.org
Subject: Re: One version for specs

I don't think that this is a good idea.  Versions should reflect the  
contents of the jar not the fact that an unrelated spec was released/ 
patched/updated.


Regards,
Alan

On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:

> Hi, me again... and the specs topic again too.
>
> I have been thinking about this for quite a while and I believe  
> that it would be in the best interest of the project to treat our  
> specs as a project and use one version to release the spec modules  
> under.
>
> Doing so will greatly reduce the complexity to maintain the specs  
> tree and to make new releases.  It also reduces the need for a  
> bunch of config in the root pom.xml for specs... all properties can  
> be removed and most of the dependencyManagement can be removed as  
> well.
>
> Releases can be done using the release plugin with out any twists  
> of configuration, which should be straight forward.  The  
> alternative is that the configuration becomes more compkicated and  
> that in order to make a release users will have to have much more  
> knowledge of how Maven works and how we have configured it... which  
> I am betting will only lead to something being missed which will  
> only lead to problems down the road.
>
> One thing to remember for those of you who are gonna say that some  
> spec module has not changed in x-years... is that the release is  
> code + pom configuration... and even if the code has not changed,  
> the configuration has, and thus it warrants a new release to be made.
>
> Specs do not get released that often anyways, so I don't really see  
> any huge problem with re-releasing specs under a new version when  
> something is added (or fixed).
>
> 1 version number for us (and our users) is IMO much, much simperer  
> than 30+ versions.  For example, if I am a developer and want to  
> use the latest versions of all of the specs that I use, I would  
> much rather know that there is just one version to track, instead  
> of needing to hunt down what the latest version of each spec is...  
> after all I don't care what the version is... I just want the  
> latest version.
>
> Also remember that some spec modules depend on other spec modules,  
> so ideally when a dependency module is released, the dependent  
> modules should be released to pickup the latest versions.  Doing  
> this is automatic with the one-version scheme, but becomes much  
> more work with independent versions... which will almost certainly  
> result in dependent modules not getting updated as they should.
>
>  * * *
>
> We have also been waiting for some resolution on this to simplify  
> the main server build.  It will take all of 10 minutes for me to  
> fix the specs build to use one version and make a release than can  
> be used by the server build (and allow the bootstrap of specs to be  
> removed).
>
> So, my recommendation is to:
>
>   1) change the specs project to use one version, 2.0-SNAPSHOT, and  
> publish the snaps
>   2) update the server build to use 2.0-SNAPSHOT for all specs
>   3) remove the specs build from bootstrap
>
> I believe this is the best option for the project and community at  
> this point.  I would like to implement this ASAP to simplify the  
> server build.  If after some time folks do not feel that is working  
> well, then we can revisit and consider either splitting up into a  
> multi-trunk build or using independent version numbers.  But, I do  
> believe that most will find that the advantages of using one  
> version far out-weight the disadvantages.
>
> NOTE:
>
> For those unaware, Dain did an experiment with version ranges...  
> but it looks like this will not work well right now as there is not  
> general support for use of ranges in most plugins that we depend  
> on.  Also several members of the m2 team have suggested that ranges  
> are buggy.  This was my general impression that I brought up to  
> Dain weeks ago when we talked about using ranges (and when he said  
> he would try it out).  So, for now at least I think that ranges  
> will not work for us.
>
> --jason
>
>


Re: One version for specs

Posted by "Alan D. Cabrera" <li...@toolazydogs.com>.
I don't think that this is a good idea.  Versions should reflect the  
contents of the jar not the fact that an unrelated spec was released/ 
patched/updated.


Regards,
Alan

On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:

> Hi, me again... and the specs topic again too.
>
> I have been thinking about this for quite a while and I believe  
> that it would be in the best interest of the project to treat our  
> specs as a project and use one version to release the spec modules  
> under.
>
> Doing so will greatly reduce the complexity to maintain the specs  
> tree and to make new releases.  It also reduces the need for a  
> bunch of config in the root pom.xml for specs... all properties can  
> be removed and most of the dependencyManagement can be removed as  
> well.
>
> Releases can be done using the release plugin with out any twists  
> of configuration, which should be straight forward.  The  
> alternative is that the configuration becomes more compkicated and  
> that in order to make a release users will have to have much more  
> knowledge of how Maven works and how we have configured it... which  
> I am betting will only lead to something being missed which will  
> only lead to problems down the road.
>
> One thing to remember for those of you who are gonna say that some  
> spec module has not changed in x-years... is that the release is  
> code + pom configuration... and even if the code has not changed,  
> the configuration has, and thus it warrants a new release to be made.
>
> Specs do not get released that often anyways, so I don't really see  
> any huge problem with re-releasing specs under a new version when  
> something is added (or fixed).
>
> 1 version number for us (and our users) is IMO much, much simperer  
> than 30+ versions.  For example, if I am a developer and want to  
> use the latest versions of all of the specs that I use, I would  
> much rather know that there is just one version to track, instead  
> of needing to hunt down what the latest version of each spec is...  
> after all I don't care what the version is... I just want the  
> latest version.
>
> Also remember that some spec modules depend on other spec modules,  
> so ideally when a dependency module is released, the dependent  
> modules should be released to pickup the latest versions.  Doing  
> this is automatic with the one-version scheme, but becomes much  
> more work with independent versions... which will almost certainly  
> result in dependent modules not getting updated as they should.
>
>  * * *
>
> We have also been waiting for some resolution on this to simplify  
> the main server build.  It will take all of 10 minutes for me to  
> fix the specs build to use one version and make a release than can  
> be used by the server build (and allow the bootstrap of specs to be  
> removed).
>
> So, my recommendation is to:
>
>   1) change the specs project to use one version, 2.0-SNAPSHOT, and  
> publish the snaps
>   2) update the server build to use 2.0-SNAPSHOT for all specs
>   3) remove the specs build from bootstrap
>
> I believe this is the best option for the project and community at  
> this point.  I would like to implement this ASAP to simplify the  
> server build.  If after some time folks do not feel that is working  
> well, then we can revisit and consider either splitting up into a  
> multi-trunk build or using independent version numbers.  But, I do  
> believe that most will find that the advantages of using one  
> version far out-weight the disadvantages.
>
> NOTE:
>
> For those unaware, Dain did an experiment with version ranges...  
> but it looks like this will not work well right now as there is not  
> general support for use of ranges in most plugins that we depend  
> on.  Also several members of the m2 team have suggested that ranges  
> are buggy.  This was my general impression that I brought up to  
> Dain weeks ago when we talked about using ranges (and when he said  
> he would try it out).  So, for now at least I think that ranges  
> will not work for us.
>
> --jason
>
>


Re: One version for specs

Posted by "Alan D. Cabrera" <li...@toolazydogs.com>.
On Oct 2, 2006, at 10:35 AM, Aaron Mulder wrote:

> As a user, it is a convenience to be able to have a single version
> number to track across all the spec releases.  So there's only one
> variable to track.
>


There are two classes of specs users.  One is Geroninmo users and  
they will just use what ever we have configured; they will not need  
to track anything since we'll provide everything nicely configured.   
The second is someone outside of Geronimo who wants to use a spec  
jar.  This person will want to *not* want a single version tracking  
across all the spec releases.


Regards,
Alan



Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
On Oct 2, 2006, at 10:35 AM, Aaron Mulder wrote:
> However, I still don't think this is a very good approach.  Our specs
> tree will continue to expand with new JSRs and J2EE releases,
> especially if we go with the earlier intent of making it a home for
> all Apache Java spec packages.  I don't like the idea that I'll have
> 10 versions of EJB 2.0 in my local repository, all with the same code,
> and with different projects potentially using different revs depending
> on how aggressive they are about needing new unrelated specs.

Growing spec modules is actually a case to simplify and use one  
version rather than the opposite... especially for cases when new  
specs depend on other specs.


> I think in the end, I'd rather have separate builds for separate specs
> and an auto-generated or frequently updated web page with a table
> listing all the specs with their JSR reference and the latest released
> and snapshot versions of each.  If I had to check that page for the
> right numbers for each spec when building a new POM, that would be a
> pretty close second to just having all of them use the same number
> (which I'd still have to look up each time anyway).  And it would mean
> copy and paste dependencies on old specs like EJB 2 would be more
> likely to be up to date.

IMO the one-version for users, which is the point I am getting most  
of of this reply, is a side-effect of a simple process for developers  
(us) to manage a growing codebase of specs.

Separate builds for specs does not really solve any of the problems  
related to maintenance which I have been trying to explain in more  
detail.  The only problem which separate builds solves is that it  
reduces (not eliminates) re-releases of spec modules hat have had no  
_code_ change (could be a header change, or a config change, or a  
documentation change though).

The amount of effort required to maintain a system like this far  
outweighs the advantages of _purity_ (or semi-purity when you  
consider the non-code changes described above).

--jason


Re: One version for specs

Posted by Aaron Mulder <am...@alumni.princeton.edu>.
As a user, it is a convenience to be able to have a single version
number to track across all the spec releases.  So there's only one
variable to track.

However, I still don't think this is a very good approach.  Our specs
tree will continue to expand with new JSRs and J2EE releases,
especially if we go with the earlier intent of making it a home for
all Apache Java spec packages.  I don't like the idea that I'll have
10 versions of EJB 2.0 in my local repository, all with the same code,
and with different projects potentially using different revs depending
on how aggressive they are about needing new unrelated specs.

I think in the end, I'd rather have separate builds for separate specs
and an auto-generated or frequently updated web page with a table
listing all the specs with their JSR reference and the latest released
and snapshot versions of each.  If I had to check that page for the
right numbers for each spec when building a new POM, that would be a
pretty close second to just having all of them use the same number
(which I'd still have to look up each time anyway).  And it would mean
copy and paste dependencies on old specs like EJB 2 would be more
likely to be up to date.

But in the end, I don't feel super-strongly about it.

Thanks,
      Aaron

On 10/1/06, Jason Dillon <ja...@planet57.com> wrote:
> Hi, me again... and the specs topic again too.
>
> I have been thinking about this for quite a while and I believe that
> it would be in the best interest of the project to treat our specs as
> a project and use one version to release the spec modules under.
>
> Doing so will greatly reduce the complexity to maintain the specs
> tree and to make new releases.  It also reduces the need for a bunch
> of config in the root pom.xml for specs... all properties can be
> removed and most of the dependencyManagement can be removed as well.
>
> Releases can be done using the release plugin with out any twists of
> configuration, which should be straight forward.  The alternative is
> that the configuration becomes more compkicated and that in order to
> make a release users will have to have much more knowledge of how
> Maven works and how we have configured it... which I am betting will
> only lead to something being missed which will only lead to problems
> down the road.
>
> One thing to remember for those of you who are gonna say that some
> spec module has not changed in x-years... is that the release is code
> + pom configuration... and even if the code has not changed, the
> configuration has, and thus it warrants a new release to be made.
>
> Specs do not get released that often anyways, so I don't really see
> any huge problem with re-releasing specs under a new version when
> something is added (or fixed).
>
> 1 version number for us (and our users) is IMO much, much simperer
> than 30+ versions.  For example, if I am a developer and want to use
> the latest versions of all of the specs that I use, I would much
> rather know that there is just one version to track, instead of
> needing to hunt down what the latest version of each spec is... after
> all I don't care what the version is... I just want the latest version.
>
> Also remember that some spec modules depend on other spec modules, so
> ideally when a dependency module is released, the dependent modules
> should be released to pickup the latest versions.  Doing this is
> automatic with the one-version scheme, but becomes much more work
> with independent versions... which will almost certainly result in
> dependent modules not getting updated as they should.
>
>   * * *
>
> We have also been waiting for some resolution on this to simplify the
> main server build.  It will take all of 10 minutes for me to fix the
> specs build to use one version and make a release than can be used by
> the server build (and allow the bootstrap of specs to be removed).
>
> So, my recommendation is to:
>
>    1) change the specs project to use one version, 2.0-SNAPSHOT, and
> publish the snaps
>    2) update the server build to use 2.0-SNAPSHOT for all specs
>    3) remove the specs build from bootstrap
>
> I believe this is the best option for the project and community at
> this point.  I would like to implement this ASAP to simplify the
> server build.  If after some time folks do not feel that is working
> well, then we can revisit and consider either splitting up into a
> multi-trunk build or using independent version numbers.  But, I do
> believe that most will find that the advantages of using one version
> far out-weight the disadvantages.
>
> NOTE:
>
> For those unaware, Dain did an experiment with version ranges... but
> it looks like this will not work well right now as there is not
> general support for use of ranges in most plugins that we depend on.
> Also several members of the m2 team have suggested that ranges are
> buggy.  This was my general impression that I brought up to Dain
> weeks ago when we talked about using ranges (and when he said he
> would try it out).  So, for now at least I think that ranges will not
> work for us.
>
> --jason
>
>
>

Re: One version for specs

Posted by Kevan Miller <ke...@gmail.com>.
On Oct 1, 2006, at 7:31 PM, David Jencks wrote:

> After a long time thinking that separately versioned specs were  
> better I started thinking about how much work it would be if I was  
> trying to release separately versioned specs.  I now think we  
> should at least try the one-version approach.  What we've been  
> doing has resulted IMO in total confusion and many many problems  
> releasing specs.
>
> In any case PLEASE think about this and make your opinion known soon.
>
> My only caveat is that I would prefer to use 1.2-SNAPSHOT releasing  
> to 1.2 rather than 2.0.  I tend to regard this as finally  
> straightening out what we are doing with specs, and lining up the  
> versioning and release with the directory structure, rather than a  
> major policy change.  (now we have a policy rather than confusion :-)

I totally agree that 1 consisten spec version is the way to go.

I'd also prefer a 1.2, rather than a 2.0 release. However, I doubt  
that I would devote too many keystrokes arguing the point...

--kevan

Re: One version for specs

Posted by "Alan D. Cabrera" <li...@toolazydogs.com>.
On Oct 1, 2006, at 4:31 PM, David Jencks wrote:

> After a long time thinking that separately versioned specs were  
> better I started thinking about how much work it would be if I was  
> trying to release separately versioned specs.  I now think we  
> should at least try the one-version approach.  What we've been  
> doing has resulted IMO in total confusion and many many problems  
> releasing specs.

Can you elaborate what those problems were?


Regards,
Alan


Re: One version for specs

Posted by David Blevins <da...@visi.com>.
On Oct 1, 2006, at 4:31 PM, David Jencks wrote:

> I now think we should at least try the one-version approach.  What  
> we've been doing has resulted IMO in total confusion and many many  
> problems releasing specs.

We did try that, seven times.  M1 -> 1.0.1 had all specs released all  
at the same time with the same version number.

-David




Re: One version for specs

Posted by David Jencks <da...@yahoo.com>.
Can we think carefully about complexity for a second and agree that  
the two models under discussion are

trunk/<individual specs at same SNAPSHOT version>
branches/<version>/<all the individual specs at that SNAPSHOT version>
tags/<version>/<all the individual specs at that non-SNAPSHOT version>


and
<each spec>/[trunk, branches/<version>, tags/<version>]

(in the 2nd choice each spec must be built and released individually  
by itself, there is no "build all the specs" pom)

and that any other choices are going to make releasing anything  
correctly 120% impossible?  We already have a system that doesn't  
work, thinking up more and more complicated choices is not going to  
result in ever releasing anything correctly.

I'll repeat that philosophically I prefer the second solution but I  
don't think we have the attention span as a project to make it work  
so I'm voting for the first choice.  I know if I was in charge of  
releasing the specs I would mess up the second choice for sure but I  
might be able to make the first choice work.  If only half the specs  
are in trunk I wouldn't even try to build the specs myself locally.

thanks
david jencks

On Oct 3, 2006, at 10:15 AM, David Blevins wrote:

>
> On Oct 2, 2006, at 1:35 PM, David Blevins wrote:
>
>>
>> On Oct 2, 2006, at 1:07 PM, Jason Dillon wrote:
>>
>>> The main problem with compromise in this case... (not that I am  
>>> unwilling to do so), is that it appears that _any_ compromise  
>>> results in the same problem which I am trying to lead us away  
>>> from.  That problem being a complicated build and release process  
>>> due to needing deep insight into the dependencies of each spec  
>>> (or in your example, the groups of specs).
>>
>> No, I wasn't advocating groups of specs.  Was more saying "let's  
>> just delete these specs from trunk" or otherwise get rid of them  
>> and leave only the specs that change and do the one version number  
>> thing.  The code is tagged, so it's safe.  Perhaps the issue is  
>> that we don't need these unchanging modules in trunk in the first  
>> place.  And just so you don't think I'm ignoring pom changes, the  
>> poms for the modules I listed are stable to (no deps on anything  
>> that's changed).
>>
>> Thoughts?
>
> Thoughts?
>
> Yank these from trunk as they haven't changed in 2+ years?
>
> ejb
> servlet
> jms
> transaction
> connector
> qname
>
>
> -David
>
>> -David
>>
>>>
>>> --jason
>>>
>>>
>>> On Oct 2, 2006, at 11:16 AM, David Blevins wrote:
>>>
>>>>
>>>> On Oct 1, 2006, at 4:31 PM, David Jencks wrote:
>>>>
>>>>> In any case PLEASE think about this and make your opinion known  
>>>>> soon.
>>>>
>>>> If we could at least make a compromise that'd be very great, all  
>>>> or nothing is not the only way.
>>>>
>>>> Maybe we could just remove these core specs from trunk or  
>>>> something (we have several tags):
>>>>
>>>>  ejb
>>>>  servlet
>>>>  jsp
>>>>  jms
>>>>  transaction
>>>>  connector
>>>>  qname
>>>>
>>>> If all the rest became "one version number" specs released at  
>>>> the pace of the most changing spec, that'd still be less  
>>>> desirable but be at least better.
>>>>
>>>> Maybe not the best idea, just trying to find some middle  
>>>> ground.  Thoughts?
>>>>
>>>> -David
>>>>
>>>>
>>>
>>
>


Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
For the record, I just want the specs issue resolved... be it my way  
or not... I just want it fixed.

  * * *

I apologize to those who think I was ignoring them... this issue was  
getting me way to worked up and I had to basically delete the thread  
to clear my head.

--jason

Re: One version for specs

Posted by David Blevins <da...@visi.com>.
On Oct 3, 2006, at 11:47 AM, Jason Dillon wrote:

> On Oct 3, 2006, at 11:39 AM, David Blevins wrote:
>> Ok, now it's me whose not reading emails :)  You mentioned the  
>> site changes.  Is that it?   Are we really talking about re- 
>> releasing completely stable specs because of website changes?
>
> This was a reason why the spec module might change, not why (or why  
> not) it should be released.

Sure, but the proposal is that it would get released with just it's  
website changes whenever some other spec needs to be released because  
of code changes.

I'm not so concerned about website stuff for the core specs that  
don't change.  If that's the reason for wanting to keep updating the  
poms and re-releasing specs which are essentially "done", is there  
any other way we can meet the website goals you have?

-David


> --jason
>
>


Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
On Oct 3, 2006, at 11:39 AM, David Blevins wrote:
> Ok, now it's me whose not reading emails :)  You mentioned the site  
> changes.  Is that it?   Are we really talking about re-releasing  
> completely stable specs because of website changes?

This was a reason why the spec module might change, not why (or why  
not) it should be released.

--jason



Re: One version for specs

Posted by David Blevins <da...@visi.com>.
On Oct 3, 2006, at 11:25 AM, David Blevins wrote:

>
> On Oct 3, 2006, at 11:12 AM, Jason Dillon wrote:
>
>> On Oct 3, 2006, at 11:03 AM, David Blevins wrote:
>>> Dude, you never read my emails.
>>
>> I read it... but the mail you just sent said they have not changed:
>>
>
> Can you give some examples on what kind of pom changes that would  
> happen to these that would merit another release?

Ok, now it's me whose not reading emails :)  You mentioned the site  
changes.  Is that it?   Are we really talking about re-releasing  
completely stable specs because of website changes?

-David


Re: One version for specs

Posted by David Blevins <da...@visi.com>.
On Oct 3, 2006, at 11:12 AM, Jason Dillon wrote:

> On Oct 3, 2006, at 11:03 AM, David Blevins wrote:
>> Dude, you never read my emails.
>
> I read it... but the mail you just sent said they have not changed:
>

Can you give some examples on what kind of pom changes that would  
happen to these that would merit another release?

-David


Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
On Oct 3, 2006, at 11:03 AM, David Blevins wrote:
> Dude, you never read my emails.

I read it... but the mail you just sent said they have not changed:

>> On Oct 3, 2006, at 10:15 AM, David Blevins wrote:
>>> Yank these from trunk as they haven't changed in 2+ years?

--jason

Re: One version for specs

Posted by David Blevins <da...@visi.com>.
On Oct 3, 2006, at 10:50 AM, Jason Dillon wrote:

> On Oct 3, 2006, at 10:15 AM, David Blevins wrote:
>> Thoughts?
>>
>> Yank these from trunk as they haven't changed in 2+ years?
>>
>> ejb
>> servlet
>> jms
>> transaction
>> connector
>> qname
>
> Not true... remember the pom.  Once all of this is settled we need  
> to update the site deployments too.  So it is not safe to assume  
> these will not change.

Dude, you never read my emails.

On Oct 2, 2006, at 1:35 PM, David Blevins wrote:
> And just so you don't think I'm ignoring pom changes, the poms for  
> the modules I listed are stable to (no deps on anything that's  
> changed).

Waiting for another reply....

-David


Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
On Oct 3, 2006, at 10:15 AM, David Blevins wrote:
> Thoughts?
>
> Yank these from trunk as they haven't changed in 2+ years?
>
> ejb
> servlet
> jms
> transaction
> connector
> qname

Not true... remember the pom.  Once all of this is settled we need to  
update the site deployments too.  So it is not safe to assume these  
will not change.

--jason


Re: One version for specs

Posted by David Blevins <da...@visi.com>.
On Oct 2, 2006, at 1:35 PM, David Blevins wrote:

>
> On Oct 2, 2006, at 1:07 PM, Jason Dillon wrote:
>
>> The main problem with compromise in this case... (not that I am  
>> unwilling to do so), is that it appears that _any_ compromise  
>> results in the same problem which I am trying to lead us away  
>> from.  That problem being a complicated build and release process  
>> due to needing deep insight into the dependencies of each spec (or  
>> in your example, the groups of specs).
>
> No, I wasn't advocating groups of specs.  Was more saying "let's  
> just delete these specs from trunk" or otherwise get rid of them  
> and leave only the specs that change and do the one version number  
> thing.  The code is tagged, so it's safe.  Perhaps the issue is  
> that we don't need these unchanging modules in trunk in the first  
> place.  And just so you don't think I'm ignoring pom changes, the  
> poms for the modules I listed are stable to (no deps on anything  
> that's changed).
>
> Thoughts?

Thoughts?

Yank these from trunk as they haven't changed in 2+ years?

ejb
servlet
jms
transaction
connector
qname


-David

> -David
>
>>
>> --jason
>>
>>
>> On Oct 2, 2006, at 11:16 AM, David Blevins wrote:
>>
>>>
>>> On Oct 1, 2006, at 4:31 PM, David Jencks wrote:
>>>
>>>> In any case PLEASE think about this and make your opinion known  
>>>> soon.
>>>
>>> If we could at least make a compromise that'd be very great, all  
>>> or nothing is not the only way.
>>>
>>> Maybe we could just remove these core specs from trunk or  
>>> something (we have several tags):
>>>
>>>  ejb
>>>  servlet
>>>  jsp
>>>  jms
>>>  transaction
>>>  connector
>>>  qname
>>>
>>> If all the rest became "one version number" specs released at the  
>>> pace of the most changing spec, that'd still be less desirable  
>>> but be at least better.
>>>
>>> Maybe not the best idea, just trying to find some middle ground.   
>>> Thoughts?
>>>
>>> -David
>>>
>>>
>>
>


Re: One version for specs

Posted by David Blevins <da...@visi.com>.
On Oct 2, 2006, at 1:07 PM, Jason Dillon wrote:

> The main problem with compromise in this case... (not that I am  
> unwilling to do so), is that it appears that _any_ compromise  
> results in the same problem which I am trying to lead us away  
> from.  That problem being a complicated build and release process  
> due to needing deep insight into the dependencies of each spec (or  
> in your example, the groups of specs).

No, I wasn't advocating groups of specs.  Was more saying "let's just  
delete these specs from trunk" or otherwise get rid of them and leave  
only the specs that change and do the one version number thing.  The  
code is tagged, so it's safe.  Perhaps the issue is that we don't  
need these unchanging modules in trunk in the first place.  And just  
so you don't think I'm ignoring pom changes, the poms for the modules  
I listed are stable to (no deps on anything that's changed).

Thoughts?

-David

>
> --jason
>
>
> On Oct 2, 2006, at 11:16 AM, David Blevins wrote:
>
>>
>> On Oct 1, 2006, at 4:31 PM, David Jencks wrote:
>>
>>> In any case PLEASE think about this and make your opinion known  
>>> soon.
>>
>> If we could at least make a compromise that'd be very great, all  
>> or nothing is not the only way.
>>
>> Maybe we could just remove these core specs from trunk or  
>> something (we have several tags):
>>
>>  ejb
>>  servlet
>>  jsp
>>  jms
>>  transaction
>>  connector
>>  qname
>>
>> If all the rest became "one version number" specs released at the  
>> pace of the most changing spec, that'd still be less desirable but  
>> be at least better.
>>
>> Maybe not the best idea, just trying to find some middle ground.   
>> Thoughts?
>>
>> -David
>>
>>
>


Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
The main problem with compromise in this case... (not that I am  
unwilling to do so), is that it appears that _any_ compromise results  
in the same problem which I am trying to lead us away from.  That  
problem being a complicated build and release process due to needing  
deep insight into the dependencies of each spec (or in your example,  
the groups of specs).

IMO, splitting up into a smaller subset of groups for specs is no  
better than having a separate tree for each.

I do not believe that multi-versioned spec maintenance will scale  
well... and in some ways I think it has already kinda proven that.  3  
small groups for 1.4, 1.5 and other is already on the verge of  
becoming more work than it should be due to the overlap and  
dependencies.

I will even go as far as saying that for most large project multi- 
versioning will not scale.  Consider how much work it would be to  
keep G in sync if each and every module (config, code, app  
deployable, app deployable component, assembly and plugin) were  
individual versioned to live up to the code to version purity fallacy.

Well, I can tell you that is a massive nightmare in the works... I've  
been there already in fact, a few times, most recently at my last  
gig.  When I got there I saw developers with little stickys on their  
cubes listing versions and compatibility of like 60 different  
modules... where it took developers hours to make releases for each  
module, which ended up causing more problems if something was missed  
or a mistake was made that cascaded down to other dependent modules  
which ended up causing the entire thing to be re-released.  It took  
me almost 5 months to un*uck that mess (of which a lot of time was  
spent sending mails kinda like this one)... and in the end I left  
them in a state where they could automate *every* build and every  
release at the click of a button on a browser.  What used to take  
hours and caused a bunch of problems due to an overly complicated  
process to make a simple code release, could now be done in a few  
minutes and was highly reliable, repeatable and simple.

--jason


On Oct 2, 2006, at 11:16 AM, David Blevins wrote:

>
> On Oct 1, 2006, at 4:31 PM, David Jencks wrote:
>
>> In any case PLEASE think about this and make your opinion known soon.
>
> If we could at least make a compromise that'd be very great, all or  
> nothing is not the only way.
>
> Maybe we could just remove these core specs from trunk or something  
> (we have several tags):
>
>  ejb
>  servlet
>  jsp
>  jms
>  transaction
>  connector
>  qname
>
> If all the rest became "one version number" specs released at the  
> pace of the most changing spec, that'd still be less desirable but  
> be at least better.
>
> Maybe not the best idea, just trying to find some middle ground.   
> Thoughts?
>
> -David
>
>


Re: One version for specs

Posted by David Blevins <da...@visi.com>.
On Oct 2, 2006, at 11:55 AM, Dain Sundstrom wrote:

> How about we split them into j2ee 1.4, j2ee 1.5 and independent  
> modules for the non j2ee specs?  This will prevent the flux from  
> the 1.5 development from causing lots of new versions for the 1.4  
> specs.
>
> Just another middle ground idea.  Thoughts?

There are a few specs that overlap and are used in both j2ee 1.4 and  
jee 5 such as jms and connector.  There might be more.

-David

> -dain
>
> On Oct 2, 2006, at 11:16 AM, David Blevins wrote:
>
>>
>> On Oct 1, 2006, at 4:31 PM, David Jencks wrote:
>>
>>> In any case PLEASE think about this and make your opinion known  
>>> soon.
>>
>> If we could at least make a compromise that'd be very great, all  
>> or nothing is not the only way.
>>
>> Maybe we could just remove these core specs from trunk or  
>> something (we have several tags):
>>
>>  ejb
>>  servlet
>>  jsp
>>  jms
>>  transaction
>>  connector
>>  qname
>>
>> If all the rest became "one version number" specs released at the  
>> pace of the most changing spec, that'd still be less desirable but  
>> be at least better.
>>
>> Maybe not the best idea, just trying to find some middle ground.   
>> Thoughts?
>>
>> -David
>>
>>
>


Re: One version for specs

Posted by Aaron Mulder <am...@alumni.princeton.edu>.
On 10/2/06, Dain Sundstrom <da...@iq80.com> wrote:
> How about we split them into j2ee 1.4, j2ee 1.5 and independent
> modules for the non j2ee specs?  This will prevent the flux from the
> 1.5 development from causing lots of new versions for the 1.4 specs.

Sounds promising to me...

Thanks,
    Aaron

> On Oct 2, 2006, at 11:16 AM, David Blevins wrote:
>
> >
> > On Oct 1, 2006, at 4:31 PM, David Jencks wrote:
> >
> >> In any case PLEASE think about this and make your opinion known soon.
> >
> > If we could at least make a compromise that'd be very great, all or
> > nothing is not the only way.
> >
> > Maybe we could just remove these core specs from trunk or something
> > (we have several tags):
> >
> >  ejb
> >  servlet
> >  jsp
> >  jms
> >  transaction
> >  connector
> >  qname
> >
> > If all the rest became "one version number" specs released at the
> > pace of the most changing spec, that'd still be less desirable but
> > be at least better.
> >
> > Maybe not the best idea, just trying to find some middle ground.
> > Thoughts?
> >
> > -David
> >
> >
>
>

Re: One version for specs

Posted by Jason Dillon <ja...@planet57.com>.
I don't think that 1.5 development will result in new releases...  
those will all be SNAPSHOT artifacts anyways.

Just some questions about this strategy...

Which modules go where?  Will each of these trees have a single  
version?  How will the overlap between J2EE 1.5 and 1.4 fit?  Where  
will common config go?

--jason


On Oct 2, 2006, at 11:55 AM, Dain Sundstrom wrote:

> How about we split them into j2ee 1.4, j2ee 1.5 and independent  
> modules for the non j2ee specs?  This will prevent the flux from  
> the 1.5 development from causing lots of new versions for the 1.4  
> specs.
>
> Just another middle ground idea.  Thoughts?
>
> -dain
>
> On Oct 2, 2006, at 11:16 AM, David Blevins wrote:
>
>>
>> On Oct 1, 2006, at 4:31 PM, David Jencks wrote:
>>
>>> In any case PLEASE think about this and make your opinion known  
>>> soon.
>>
>> If we could at least make a compromise that'd be very great, all  
>> or nothing is not the only way.
>>
>> Maybe we could just remove these core specs from trunk or  
>> something (we have several tags):
>>
>>  ejb
>>  servlet
>>  jsp
>>  jms
>>  transaction
>>  connector
>>  qname
>>
>> If all the rest became "one version number" specs released at the  
>> pace of the most changing spec, that'd still be less desirable but  
>> be at least better.
>>
>> Maybe not the best idea, just trying to find some middle ground.   
>> Thoughts?
>>
>> -David
>>
>>
>


Re: One version for specs

Posted by Prasad Kashyap <go...@gmail.com>.
A good compromise. Also, good for a start. Let's do this.

Cheers
Prasad

On 10/2/06, Dain Sundstrom <da...@iq80.com> wrote:
> How about we split them into j2ee 1.4, j2ee 1.5 and independent
> modules for the non j2ee specs?  This will prevent the flux from the
> 1.5 development from causing lots of new versions for the 1.4 specs.
>
> Just another middle ground idea.  Thoughts?
>
> -dain
>
> On Oct 2, 2006, at 11:16 AM, David Blevins wrote:
>
> >
> > On Oct 1, 2006, at 4:31 PM, David Jencks wrote:
> >
> >> In any case PLEASE think about this and make your opinion known soon.
> >
> > If we could at least make a compromise that'd be very great, all or
> > nothing is not the only way.
> >
> > Maybe we could just remove these core specs from trunk or something
> > (we have several tags):
> >
> >  ejb
> >  servlet
> >  jsp
> >  jms
> >  transaction
> >  connector
> >  qname
> >
> > If all the rest became "one version number" specs released at the
> > pace of the most changing spec, that'd still be less desirable but
> > be at least better.
> >
> > Maybe not the best idea, just trying to find some middle ground.
> > Thoughts?
> >
> > -David
> >
> >
>
>

Re: One version for specs

Posted by "Alan D. Cabrera" <li...@toolazydogs.com>.
On Oct 2, 2006, at 11:55 AM, Dain Sundstrom wrote:

> How about we split them into j2ee 1.4, j2ee 1.5 and independent  
> modules for the non j2ee specs?  This will prevent the flux from  
> the 1.5 development from causing lots of new versions for the 1.4  
> specs.
>
> Just another middle ground idea.  Thoughts?

I have yet to hear about what the problem is that we're trying to  
solve by aggregating jars.


Regards,
Alan




Re: One version for specs

Posted by Dain Sundstrom <da...@iq80.com>.
How about we split them into j2ee 1.4, j2ee 1.5 and independent  
modules for the non j2ee specs?  This will prevent the flux from the  
1.5 development from causing lots of new versions for the 1.4 specs.

Just another middle ground idea.  Thoughts?

-dain

On Oct 2, 2006, at 11:16 AM, David Blevins wrote:

>
> On Oct 1, 2006, at 4:31 PM, David Jencks wrote:
>
>> In any case PLEASE think about this and make your opinion known soon.
>
> If we could at least make a compromise that'd be very great, all or  
> nothing is not the only way.
>
> Maybe we could just remove these core specs from trunk or something  
> (we have several tags):
>
>  ejb
>  servlet
>  jsp
>  jms
>  transaction
>  connector
>  qname
>
> If all the rest became "one version number" specs released at the  
> pace of the most changing spec, that'd still be less desirable but  
> be at least better.
>
> Maybe not the best idea, just trying to find some middle ground.   
> Thoughts?
>
> -David
>
>


Re: One version for specs

Posted by David Blevins <da...@visi.com>.
On Oct 1, 2006, at 4:31 PM, David Jencks wrote:

> In any case PLEASE think about this and make your opinion known soon.

If we could at least make a compromise that'd be very great, all or  
nothing is not the only way.

Maybe we could just remove these core specs from trunk or something  
(we have several tags):

  ejb
  servlet
  jsp
  jms
  transaction
  connector
  qname

If all the rest became "one version number" specs released at the  
pace of the most changing spec, that'd still be less desirable but be  
at least better.

Maybe not the best idea, just trying to find some middle ground.   
Thoughts?

-David


  

Re: One version for specs

Posted by David Jencks <da...@yahoo.com>.
After a long time thinking that separately versioned specs were  
better I started thinking about how much work it would be if I was  
trying to release separately versioned specs.  I now think we should  
at least try the one-version approach.  What we've been doing has  
resulted IMO in total confusion and many many problems releasing specs.

In any case PLEASE think about this and make your opinion known soon.

My only caveat is that I would prefer to use 1.2-SNAPSHOT releasing  
to 1.2 rather than 2.0.  I tend to regard this as finally  
straightening out what we are doing with specs, and lining up the  
versioning and release with the directory structure, rather than a  
major policy change.  (now we have a policy rather than confusion :-)

In addition I'd like to thank Jason for pushing on this issue.

thanks
david jencks

On Oct 1, 2006, at 4:07 PM, Jason Dillon wrote:

> Hi, me again... and the specs topic again too.
>
> I have been thinking about this for quite a while and I believe  
> that it would be in the best interest of the project to treat our  
> specs as a project and use one version to release the spec modules  
> under.
>
> Doing so will greatly reduce the complexity to maintain the specs  
> tree and to make new releases.  It also reduces the need for a  
> bunch of config in the root pom.xml for specs... all properties can  
> be removed and most of the dependencyManagement can be removed as  
> well.
>
> Releases can be done using the release plugin with out any twists  
> of configuration, which should be straight forward.  The  
> alternative is that the configuration becomes more compkicated and  
> that in order to make a release users will have to have much more  
> knowledge of how Maven works and how we have configured it... which  
> I am betting will only lead to something being missed which will  
> only lead to problems down the road.
>
> One thing to remember for those of you who are gonna say that some  
> spec module has not changed in x-years... is that the release is  
> code + pom configuration... and even if the code has not changed,  
> the configuration has, and thus it warrants a new release to be made.
>
> Specs do not get released that often anyways, so I don't really see  
> any huge problem with re-releasing specs under a new version when  
> something is added (or fixed).
>
> 1 version number for us (and our users) is IMO much, much simperer  
> than 30+ versions.  For example, if I am a developer and want to  
> use the latest versions of all of the specs that I use, I would  
> much rather know that there is just one version to track, instead  
> of needing to hunt down what the latest version of each spec is...  
> after all I don't care what the version is... I just want the  
> latest version.
>
> Also remember that some spec modules depend on other spec modules,  
> so ideally when a dependency module is released, the dependent  
> modules should be released to pickup the latest versions.  Doing  
> this is automatic with the one-version scheme, but becomes much  
> more work with independent versions... which will almost certainly  
> result in dependent modules not getting updated as they should.
>
>  * * *
>
> We have also been waiting for some resolution on this to simplify  
> the main server build.  It will take all of 10 minutes for me to  
> fix the specs build to use one version and make a release than can  
> be used by the server build (and allow the bootstrap of specs to be  
> removed).
>
> So, my recommendation is to:
>
>   1) change the specs project to use one version, 2.0-SNAPSHOT, and  
> publish the snaps
>   2) update the server build to use 2.0-SNAPSHOT for all specs
>   3) remove the specs build from bootstrap
>
> I believe this is the best option for the project and community at  
> this point.  I would like to implement this ASAP to simplify the  
> server build.  If after some time folks do not feel that is working  
> well, then we can revisit and consider either splitting up into a  
> multi-trunk build or using independent version numbers.  But, I do  
> believe that most will find that the advantages of using one  
> version far out-weight the disadvantages.
>
> NOTE:
>
> For those unaware, Dain did an experiment with version ranges...  
> but it looks like this will not work well right now as there is not  
> general support for use of ranges in most plugins that we depend  
> on.  Also several members of the m2 team have suggested that ranges  
> are buggy.  This was my general impression that I brought up to  
> Dain weeks ago when we talked about using ranges (and when he said  
> he would try it out).  So, for now at least I think that ranges  
> will not work for us.
>
> --jason
>
>