Plugins dependency tree

34 views
Skip to first unread message

Arnaud Tamaillon

unread,
Dec 26, 2017, 10:25:15 AM12/26/17
to Jenkins Developers
Hello,

On a plugin page, we can see which other plugins a plugin depends on (mandatory & optional).

Is there anything available where we could see the list of plugins depending on another specific one?
This would help manage the life cycle of deprecated symbols by providing a tool to plugin authors to check dependent plugins for breaking changes.

I was also thinking that this would also allow extending https://ci.jenkins.io/job/Reporting/job/deprecated-usage-in-plugins/ which (if I am right) currently only checks plugins calling core deprecated methods to allow checking for inter-plugin deprecated methods usages.

Thanks for your feedback,

Arnaud

Baptiste Mathus

unread,
Dec 27, 2017, 11:28:46 AM12/27/17
to Jenkins Developers
IIUC you mean listing plugins that depend on a given plugin.
Not exactly that, but there's (was? Otp right now) a page listing all extension points and their implementations. So there the data is at least already computed. Possibly then it could be made available through plugins.jenkins.io too.

My 2 cents

--
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 jenkinsci-dev+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/5df09fce-a488-44e1-b897-efb53fccb28b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Arnaud Tamaillon

unread,
Dec 27, 2017, 1:03:10 PM12/27/17
to Jenkins Developers
Yes that's what I meant in a clearer way :p

The page you are speaking about is there : https://jenkins.io/doc/developer/extensions/
This is definitely a start, but it does not help for plugins which do not provide extensions points, but rather use public methods of another plugin they depend on.


Le mercredi 27 décembre 2017 17:28:46 UTC+1, Baptiste Mathus a écrit :
IIUC you mean listing plugins that depend on a given plugin.
Not exactly that, but there's (was? Otp right now) a page listing all extension points and their implementations. So there the data is at least already computed. Possibly then it could be made available through plugins.jenkins.io too.

My 2 cents
Le 26 déc. 2017 16:25, "Arnaud Tamaillon" <arnau...@gmail.com> a écrit :
Hello,

On a plugin page, we can see which other plugins a plugin depends on (mandatory & optional).

Is there anything available where we could see the list of plugins depending on another specific one?
This would help manage the life cycle of deprecated symbols by providing a tool to plugin authors to check dependent plugins for breaking changes.

I was also thinking that this would also allow extending https://ci.jenkins.io/job/Reporting/job/deprecated-usage-in-plugins/ which (if I am right) currently only checks plugins calling core deprecated methods to allow checking for inter-plugin deprecated methods usages.

Thanks for your feedback,

Arnaud

--
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 jenkinsci-de...@googlegroups.com.

Daniel Beck

unread,
Dec 27, 2017, 6:17:05 PM12/27/17
to jenkin...@googlegroups.com

> On 26. Dec 2017, at 16:25, Arnaud Tamaillon <arnau...@gmail.com> wrote:
>
> This would help manage the life cycle of deprecated symbols by providing a tool to plugin authors to check dependent plugins for breaking changes.
>

http://updates.jenkins-ci.org/update-center.actual.json is the raw JSON with dependency information, but note transitive dependencies may be a problem.

To get actual API usage, you can adapt https://github.com/jenkins-infra/deprecated-usage-in-plugins fairly easily to look for specific signatures or classes. Just rip out most of DeprecatedApi and replace with a fixed list of signatures; or even just check for a className.startsWith("my/package/name/" in DeprecatedUsage.

Arnaud Tamaillon

unread,
Jan 1, 2018, 7:08:10 AM1/1/18
to Jenkins Developers
Hello,

I did the adaptation, and proposed it as a PR here: https://github.com/jenkins-infra/deprecated-usage-in-plugins/pull/8
I only handled direct dependencies, which is what is of interest for the developers I think.

I also fixed the javadoc links which were broken.
As a consequence, I also wondered if there was something available to host plugins javadoc ?

Arnaud
Reply all
Reply to author
Forward
0 new messages