Plugin/core version installation statistics

49 views
Skip to first unread message

Daniel Beck

unread,
Jul 19, 2017, 11:52:53 AM7/19/17
to Jenkins Developers
Hi everyone,

A question that comes up regularly: "What version of core should I depend on in a plugin?". Maybe you don't want to arbitrarily limit who can use your plugin, but want newer core features? This becomes more difficult when your plugin has been around for a while, as now you have users that may still be on older Jenkins releases.

While we have some general guidelines in the wiki, we also have data that can help understand usage patterns. The data discussed below has always been available on the stats site, it just wasn't very accessible.

So I added additional output to the stats generator that can be used to inform decisions where to take core dependencies for existing plugins: Every plugin that has usage stats now also has a file like the following with a giant table in it (just replace the plugin ID in the URL):

http://stats.jenkins.io/pluginversions/workflow-job.html

This table shows which release of a plugin is installed how often on which core release. The rows are Jenkins releases, the columns are plugin releases (with the last column being the number of plugin installs for any release on that core), and the values are number of installations. Tooltips for each cell show what percentage of users are on any given core or later for the current plugin release (or, in the 'Sum' column, any plugin release).

In this example (Pipeline: Job plugin), plugin releases 2.0 - 2.11.1 required only core 1.642.3. How useful is such a low core release, as of June? Version 2.10 has been around since February, plenty of time to update -- and 90% of users on plugin version 2.10 are on Jenkins 2.32.1 or newer. This seems to indicate that users on older cores generally don't seem to care a lot about keeping their plugins updated.

Some limitations:
- The numbers are off a bit compared to what you may be used to, as this doesn't count releases like alpha/beta to keep the size of the table manageable.
- Additionally, there's some weirdness going on with instances reporting different core versions over time, so a handful of instances with incompatible core releases may show up as using a given plugin release; I expect that's not actually the case.
- It's still not easy to read the giant table for e.g. Git plugin, but it's a start.

Copying & pasting the page content from the browser allows transferring the data into a spreadsheet with no further conversion, so you can perform your own analysis pretty easily.

The sources for this are in https://github.com/jenkins-infra/infra-statistics -- it's basically all JavaScript in https://github.com/jenkins-infra/infra-statistics/blob/master/generateVersionDistribution-template.html, so easy to iterate on if you want to improve the output format.

Note that there's no directory index at https://stats.jenkins.io/pluginversions/ (yet) -- my plan is to add links to plugins.jenkins.io and make that the default entry point.

I hope someone finds this useful.

Daniel

Stephen Connolly

unread,
Jul 19, 2017, 1:02:25 PM7/19/17
to jenkin...@googlegroups.com
Nice!


--
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.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/12163123-1269-45C0-B91E-116053E920C5%40beckweb.net.
For more options, visit https://groups.google.com/d/optout.
--
Sent from my phone

Stephen Connolly

unread,
Jul 20, 2017, 6:41:09 AM7/20/17
to jenkin...@googlegroups.com
So 73% of people using the credentials plugin are on the 2.1.x series.

5% of people on the 2.1.x series of the credentials plugin are using a version of Jenkins older than 1.651 (23% of people using any version of the credentials plugin as a whole are using a Jenkins version older than 1.651)
10% of people on the 2.1.x series of the credentials plugin are using a version of Jenkins older than 2.7 (30% of people using any version of the credentials plugin as a whole are using a Jenkins version older than 2.7) 

I think I may consider updating the baseline for the credentials plugin to either 2.7 or 1.651

Nice!


To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-dev+unsubscribe@googlegroups.com.

Oleg Nenashev

unread,
Jul 20, 2017, 5:16:56 PM7/20/17
to Jenkins Developers
Nice tool! Thanks a lot for doing it

+1 for adding links to plugins.jenkins.io.
It may be in the Developer Info (or Other Stats) tab collapsed by default.

четверг, 20 июля 2017 г., 13:41:09 UTC+3 пользователь Stephen Connolly написал:
Nice!


To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-de...@googlegroups.com.

Baptiste Mathus

unread,
Jul 23, 2017, 8:30:30 AM7/23/17
to Jenkins Developers
Very cool Daniel, thanks for that work! 

--
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.

Daniel Beck

unread,
Sep 5, 2017, 9:17:32 PM9/5/17
to jenkin...@googlegroups.com

> On 19. Jul 2017, at 17:52, Daniel Beck <m...@beckweb.net> wrote:
>
> Note that there's no directory index at https://stats.jenkins.io/pluginversions/ (yet) -- my plan is to add links to plugins.jenkins.io and make that the default entry point.

Thanks to Jesse's prodding and with Andrew's help, there's now a directory index linked from the stats.jenkins.io home page:

http://stats.jenkins.io/ → Plugin Versions by Jenkins Version → http://stats.jenkins.io/pluginversions/

We also now have the usage stats for September.

Reply all
Reply to author
Forward
0 new messages