Skip to main content

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

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/version.sh
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.

-- 
Shawn.


Back to the top