On Wed, Jun 6, 2012 at 8:57 AM, Felix Meschberger <fmesc...@adobe.com>wrote:

> Hi,
>
> Am 06.06.2012 um 13:52 schrieb Gary Gregory:
>
> > On Wed, Jun 6, 2012 at 6:40 AM, Felix Meschberger <fmesc...@adobe.com
> >wrote:
> >
> >> Hi
> >>
> >> I am on the Felix and Sling projects where we use commons IO and are
> >> confronted with a OSGi semantic versioning issue with the Commons IO 2.x
> >> bundles.
> >>
> >> According to [1] Commons IO 2.0 is binary compatible with  Commons IO
> 1.4.
> >> So I would assume all 2.x versions are binary compatible with 1.4. Am I
> >> right ? I hope so ;-)
> >>
> >> The problem comes with the package export which is set to be the package
> >> version of the library, hence 1.4 for the 1.4 release and 2.x for the
> 2.x
> >> releases. From the POV of OSGi semantic versioning this stipulates
> binary
> >> incompatiblity because of the change in the major version number part.
> >>
> >> Would you mind exporting the packages twice ? Once at version 1.5
> (higher
> >> than the last 1.4 library release) and once at the actual library
> version
> >> (to not alienate original IO 2.0 clients) ?
> >>
> >
> > I hope to hear from others but here some my first impressions.
> >
> > It feels wrong to mark something with a version (1.5) that does not
> > exist...
>
> Point is, that 1.4 is out, 2.x has new classes/methods in a backwards and
> binary compatible way. So it is more than 1.4.
>
> >
> > It feels really weird to mark something with two version numbers. Is that
> > even legal in OSGi?
>
> Yes, AFAICT it is.
>
> >
> > How does that make sense? If a package is exported as 1.5 and 2.0 it does
> > not break and breaks BC at the same time. At least that's how I read your
> > definitions and the executive summary in
> > http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf.
>
> Right. An export of 2.0 stipulates an incompatible change. So in practice
> current consumers of 1.4 could use 2.0 but since the Export-Package has
> been updated to 2.0, they will not be wired because of their semantic
> import version of [1.4,2) indicating anything up to but not including 2.0.0.
>
> Consumers of the 2.0 library would, on the other hand, import [2.0,3)
> indicating at least 2.0 but not 3.0.0 or higher. If only 1.x would be
> exported, those consumers would be alienated when upgrading to 2.4.
>
> So having both versions would satisfy both.
>

This sounds like an issue each Commons component will have to deal with. I
wonder if having a separate version number make sense just for OSGi
purposes. This makes the whole pile more confusing:( We could make it less
painful by supporting that through the Commons parent POM but still...

In IO's case, the JRE requirements have changed from 1.3 to 1.5 to 1.6 from
version to version. How does that affect OSGi headers WRT BC?

Gary


> >
> >
> >> Would you consider a bug/patch and include it in the release ?
> >>
> >
> > JIRAs and patches are always welcome and often help people see what is
> > being proposed. The proof is in the pudding as the saying goes :)
> >
> > If you have not already, please check the release notes for all versions
> > you care about in
> >
> https://svn.apache.org/repos/asf/commons/proper/io/trunk/RELEASE-NOTES.txtto
> > make sure the semantics are not OK as they are for OSGi purposes.
>
> Will do.
>
> Regards
> Felix
>
> >
> > Thank you!
> > Gary
> >
> >
> >> Thanks and Regards
> >> Felix
> >>
> >> [1] http://commons.apache.org/io/upgradeto2_0.html
> >>
> >> Am 05.06.2012 um 19:38 schrieb Gary Gregory:
> >>
> >>> A heads-up to the ML:
> >>>
> >>> Commit'em if you got'em!
> >>>
> >>> I'd like to release 2.4 soon.
> >>>
> >>> FYI: My interest is in picking up the UTF-32 fixes, so any additional
> >>> testing and code review is most welcome.
> >>>
> >>> --
> >>> E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> >>> JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0
> >>> Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK
> >>> Blog: http://garygregory.wordpress.com
> >>> Home: http://garygregory.com/
> >>> Tweet! http://twitter.com/GaryGregory
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> >> For additional commands, e-mail: dev-h...@commons.apache.org
> >>
> >>
> >
> >
> > --
> > E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
> > JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0
> > Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK
> > Blog: http://garygregory.wordpress.com
> > Home: http://garygregory.com/
> > Tweet! http://twitter.com/GaryGregory
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
> For additional commands, e-mail: dev-h...@commons.apache.org
>
>


-- 
E-Mail: garydgreg...@gmail.com | ggreg...@apache.org
JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0
Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK
Blog: http://garygregory.wordpress.com
Home: http://garygregory.com/
Tweet! http://twitter.com/GaryGregory

Reply via email to