Such a pity that they didn't change the package name when breaking
backwards compatibility...

On 21 June 2016 at 22:56, Mark Waite <[email protected]> wrote:

> The git client plugin 2.0.0 and git plugin 3.0.0 releases will only
> support JDK 7 and later.  The change to JDK 7 allows code simplifications
> (try with resources, etc.) and are a good opportunity to upgrade from
> embedding JGit 3 to embedding JGit 4.
>
> JGit 4 only supports JDK 7 and later.  The API's in JGit 4 have been
> reworked to support JDK 7 try with resources.  That API rework is what
> allows the most significant code simplifications.  However, that means
> there are some JGit 3 API calls which no longer exist in JGit 4 (JGit 3 has
> TreeWalk.release()
> <http://download.eclipse.org/jgit/site/3.7.1.201504261725-r/apidocs/org/eclipse/jgit/treewalk/TreeWalk.html>,
> while JGit 4 TreeWalk does not have release()
> <http://download.eclipse.org/jgit/site/4.3.1.201605051710-r/apidocs/org/eclipse/jgit/treewalk/TreeWalk.html>
> ).
>
> Now the challenge.  The git client plugin intentionally bundles JGit so
> that other plugins can use JGit without bundling it themselves.  However, a
> switch of the JGit version from JGit 3 to JGit 4 means that the JGit usage
> in plugins which depend on JGit as delivered by the git-client plugin may
> be broken by the upgrade from git client plugin 1 to git client plugin 2.
>
> The scenarios I see can be illustrated with git client and git plugin
> (since the git plugin has the same problem as other JGit consumers may):
>
> Git client plugin 1.19.6 with git plugin 2.4.4 -> allowed and works as
> expected (current configuration) (available to Jenkins versions 1.609 and
> later)
> Git client plugin 1.19.6 with git plugin 3.0.0 -> not allowed because git
> plugin 3 explicitly depends on git client plugin 2
> Git client plugin 2.0.0 with git plugin 2.4.4 -> allowed but will fail
> because git plugin 2 depends on at least one JGit 3 API call (available to
> Jenkins 1.625 and later)
> Git client plugin 2.0.0 with git plugin 3.0.0 -> allowed and works as
> expected (available to Jenkins 1.625 and later)
>
> I think I could remove the JGit TreeWalk dependency from the git plugin
> pretty easily, but I suspect there are other plugins which also depend on
> JGit and which may be harmed by the change from JGit 3 to JGit 4.
>
> Are there other, more effective techniques for managing this type of
> dependency problem?  I like very much the benefits of Java 7 and of JGit 4,
> but would like to not break compatibility for other plugins.
>
> Alternately, I could search the plugin tree for JGit references to see the
> actual scope of the problem.  I haven't detected any other JGit 3 specific
> dependencies in my integration testing (git plugin, github plugin, GitHub
> Organization Folders, various workflow uses, etc.), but my failure to
> detect those dependencies doesn't mean they don't exist...  In my first
> attempt <https://github.com/search?q=org%3Ajenkinsci+TreeWalk&type=Code>
> (searching just for TreeWalk), I found that git plugin and
> openshift-deployer-plugin both depend on JGit TreeWalk().  Two consumers
> (one of which I maintain, the other which seems to include its own specific
> JGit version) is not enough to spend much effort trying to retain
> compatibility.
>
> Thanks,
> Mark Waite
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/40211832-a315-43e6-8372-94fb21109e5a%40googlegroups.com
> <https://groups.google.com/d/msgid/jenkinsci-dev/40211832-a315-43e6-8372-94fb21109e5a%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CA%2BnPnMxpdDK4pBU7ETPvNfQLq9s_3-xKzu1GksthmMdz7Vz-MA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to