Skip to main content

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

Versioning at the package level is imperative, whether or not you use
Import-Package within J/EGit itself. If you only add versions at the
bundle level, then all the exported packages are implicitly version
"0.0.0", so any client bundle using Import-Package to consume J/EGit
will not be able to distinguish between different versions.

Bearing in mind that the use of Require-Bundle is strongly discouraged
in the OSGi core specification, most OSGi developers will want to use
Import-Package, and therefore you need to give them some versions to
import!

However I do not recommend attempting to track API changes and
versions on each individual package. A single version number applied
to all exported packages in the bundle is fine.

Regards,
Neil



On Sat, Jan 16, 2010 at 1:20 PM, Robin Rosenberg
<robin.rosenberg@xxxxxxxxxx> wrote:
>
> Versioning is as ugly as Yoda, but doing it properly  may have some benefits,
> both for developers and users.
>
> Until now everything has evolved very much from a practical point of view. We
> add a new useful method where it seems to fit and we even drop things and
> tell people to change their code. Everybody knows JGit is a fast moving target
> so people are quite tolerant.
>
> We have things in JGit that we know shouldn't look the way it does, and
> probably a few things that we haven't pondered much over. GitIndex is
> marked deprecated because we have a partial replacement. The ref update
> code was recently rewritten  What other stuff need we retire and what should
> we hide as implementation details, i.e. only available within parts of JGit
> and not outside.
>
> Related to this is how we handle version numbers and bundles. I know
> this works with jsch 1.41.1 so we set that as the required minimum version.
>
> 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. Is the ability to split bundles in the future a reason set requirements
> at the package level?
>
> Another aspect is that there is tooling in Eclipse that we can use that help
> check things at the bundle level.
>
> </ignorance-manifest>
>
> -- robin
> _______________________________________________
> egit-dev mailing list
> egit-dev@xxxxxxxxxxx
> https://dev.eclipse.org/mailman/listinfo/egit-dev
>


Back to the top