Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [egit-dev] Re: [jgit-dev] API and versioning

söndagen den 17 januari 2010 11.45.43 skrev  Ferry Huberts:
> On 01/17/2010 12:36 AM, Shawn O. Pearce wrote:
> > Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> wrote:
> >> Should we declare version dependencies at the bundle or package level?
> >> I'm not OSGi-fluent enough to tell the real difference, but bundle level
> >> seems to match how we define versions better, i.e. we don't state
> >> anywhere that this package is version 0.6.0, we do that at the bundle
> >> level and I think that is the way most projects work. My feeling is that
> >> the package version dependency in OSGi is for those that actually assign
> >> versions at the package level.
> >
> > I think what we should do right now is:
> >
> > Given a release numbering of 0.x.y:
> >
> > - If x changes, APIs can be removed or semantics changed.
> >   Applications linking against 0.x should take care before
> >   moving to another 0.x release.
> >
> > - If x stays same but y changes, no APIs have been removed, and no
> >   semantic changes have been made.  New APIs however can be added.
> >
> > That means in practice that other bundles importing JGit should use
> > an import rule like ";version=[0.6.0,0.7.0)".
> >
> > This also means we have to be very careful about using git describe
> > to create a snapshot version number, basically tools/
> > is wrong.
> >
> > Whether or not we import using Require-Bundle or Import-Package
> > doesn't much matter.  But Import-Package is I think preferred
> > because...
> >
> >> Is the ability to split bundles in the future a reason set requirements
> >> at the package level?
> >
> > I think that's the only reason for package level vs. bundle level.
> This proposal is not following OSGi versioning rules and common practices,
> so maybe that's asking for trouble.
> Checkout the OSGi spec for platform 4.2 at
> On page 32 you'll see the definition for the version number.
> In your proposal you're allowing api changes in minor releases, which is
> not a common pratice. In light of still being in development I can
> understand it though.
> Maybe a better idea would be to allow new apis but no api changes or
> removals in minor releases (shift your proposal from minor to major
>  versions)

I think we can change API' on minor releass before the 0.1 release? Otherwise
we would be at version 314.1.5 now.

> Also, be aware that 0.6.0.rc1 is _newer_ than 0.6.0

In other words our release plans should be revised since the current version 
numer is 0.6.0.qualifier, which translates to an actual build number of The next possible version is 0.6.1, but for official
planning 0.7.0 seems better.

Here are our previous drops, i.e. The first PDE-builds where 0.3.0, I think.

0.2.2                                                                                                                                                           <-- 99 = dev                                                      
0.3.0                                                                (came after 0.3.0)                                                  
0.3.1                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         (PDE builds and semi-secret update site from ~here)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
0.4.0 (came after 0.4.0)
0.4.9 (developement baseline for changing the package names, i.e. the egit 
plugin moved to Ecclipse). (dev build)
0.5.0 (came after 0.5.0) (here we have swiched JGit to eclipse too). There was not 
new functionality so therefore I did not care to relase a 0.6.0 at the time)

-- robin

Back to the top