Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

JGit/Planning

Ideas for JGit 7.0

Ideas for a possible scope for JGit 7.0. This is not a definitive roadmap or feature list for 7.0; so far, it's just a collection of things that could be done for 7.0.

Putting together a binding roadmap for an open-source project maintained by volunteers is nigh impossible since what ultimately gets done depends on the interests of the volunteers, and on the time they have. (Even people employed to work on JGit are volunteers: their employer donates their time and knowledge, and that employer likely will have them work on things of interest to him, just like any other volunteer.)

So this is an attempt to put to together a collection of ideas from which we could then define a reasonable scope for JGit 7.0. This list is by no means complete; feel free to add items or to comment on them.

In general, API breaks should not happen in 6.x; anything that changes API in ways that would break backwards compatibility must be deferred to 7.0.

Clean-ups

  • Remove deprecated methods.
  • Re-do the GpgSigner/GpgSignatureVerificationFactory stuff to facilitate dealing with different signature types (x509, openpgp, ssh).
    • In any case fold GpgObjectSigner into GpgSigner. That was forgotten in 6.0.
  • Remove JSch completely? (Though as long as it's understood that we're not actively maintaining this, we might also keep it around. For some use cases it may be sufficient, some people might want to use it with the Github fork of JSch, and the JSch library is smaller than Apache MINA sshd.)
  • There was a proposal to re-vamp the JGit exception hierarchy. See for instance this thread on jgit-dev.
  • Miscellaneous minor clean-ups:
    • Non-API types exposed; see bug 576340:
      • BitmapIndex.BitmapBuilder.removeAllOrNone() refers to non-API type PackBitmapIndex.
      • UploadPack.setCachedPackUriProvider() refers to non-API type CachedPackUriProvider.
    • LogCommand.call() returns a RevWalk as an Iterable. The RevWalk thus cannot be properly closed (unless it's downcasted). See bug 439305 and bug 530757.
  • Other API clean-ups/refactorings?

Platform Specifics

JGit works best on Linux or OS X, simply because that is what most users and maintainers use. We're likely to never notice some of the quirks that may exist in corner cases on other platforms.

Some things could perhaps be improved:

  • Support for symlinks on Windows. See bug 568955. Not sure what the situation on recent Win 10 is; perhaps one could finally improve this.

Back to the top