Plugin/core version installation statistics

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Plugin/core version installation statistics

Daniel Beck
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

--
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 [hidden email].
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.
Reply | Threaded
Open this post in threaded view
|

Re: Plugin/core version installation statistics

stephenconnolly
Nice!


On Wed 19 Jul 2017 at 16:52, Daniel Beck <[hidden email]> wrote:
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

--
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 [hidden email].
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

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CA%2BnPnMxpLQZMC0L9ZS2JKK4eZRP67_QK_Nx3Q%2BXQavvr-cWqJw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Plugin/core version installation statistics

stephenconnolly
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

On 19 July 2017 at 10:02, Stephen Connolly <[hidden email]> wrote:
Nice!


On Wed 19 Jul 2017 at 16:52, Daniel Beck <[hidden email]> wrote:
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

--
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 [hidden email].
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

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CA%2BnPnMyRNweh_ABM8W16tAaV5Bp10F_4WX65bmYUFzYaNcr3TQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Plugin/core version installation statistics

Oleg Nenashev
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 написал:
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

On 19 July 2017 at 10:02, Stephen Connolly <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="SX6gCaGwAwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">stephen.al...@gmail.com> wrote:
Nice!


On Wed 19 Jul 2017 at 16:52, Daniel Beck <<a href="javascript:" target="_blank" gdf-obfuscated-mailto="SX6gCaGwAwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">m...@...> wrote:
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):

<a href="http://stats.jenkins.io/pluginversions/workflow-job.html" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fstats.jenkins.io%2Fpluginversions%2Fworkflow-job.html\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFsyCVl9Iz8yBuLeAtTgRNt9PRV7A&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fstats.jenkins.io%2Fpluginversions%2Fworkflow-job.html\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNFsyCVl9Iz8yBuLeAtTgRNt9PRV7A&#39;;return true;">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 <a href="https://github.com/jenkins-infra/infra-statistics" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkins-infra%2Finfra-statistics\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGPlUlPCyFx2FwA2BuL_Ep6VOJXcQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkins-infra%2Finfra-statistics\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGPlUlPCyFx2FwA2BuL_Ep6VOJXcQ&#39;;return true;">https://github.com/jenkins-infra/infra-statistics -- it's basically all JavaScript in <a href="https://github.com/jenkins-infra/infra-statistics/blob/master/generateVersionDistribution-template.html" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkins-infra%2Finfra-statistics%2Fblob%2Fmaster%2FgenerateVersionDistribution-template.html\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHTIJFIaX41ip5m9TVouC-GBQu6DQ&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fgithub.com%2Fjenkins-infra%2Finfra-statistics%2Fblob%2Fmaster%2FgenerateVersionDistribution-template.html\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHTIJFIaX41ip5m9TVouC-GBQu6DQ&#39;;return true;">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 <a href="https://stats.jenkins.io/pluginversions/" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fstats.jenkins.io%2Fpluginversions%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGk11r7TN20w2tqXAXB1jlJ2GBdLw&#39;;return true;" onclick="this.href=&#39;https://www.google.com/url?q\x3dhttps%3A%2F%2Fstats.jenkins.io%2Fpluginversions%2F\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNGk11r7TN20w2tqXAXB1jlJ2GBdLw&#39;;return true;">https://stats.jenkins.io/pluginversions/ (yet) -- my plan is to add links to <a href="http://plugins.jenkins.io" rel="nofollow" target="_blank" onmousedown="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fplugins.jenkins.io\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHbzOwz67aV6GYSsTTC8sHeRwDrFA&#39;;return true;" onclick="this.href=&#39;http://www.google.com/url?q\x3dhttp%3A%2F%2Fplugins.jenkins.io\x26sa\x3dD\x26sntz\x3d1\x26usg\x3dAFQjCNHbzOwz67aV6GYSsTTC8sHeRwDrFA&#39;;return true;">plugins.jenkins.io and make that the default entry point.

I hope someone finds this useful.

Daniel

--
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 <a href="javascript:" target="_blank" gdf-obfuscated-mailto="SX6gCaGwAwAJ" rel="nofollow" onmousedown="this.href=&#39;javascript:&#39;;return true;" onclick="this.href=&#39;javascript:&#39;;return true;">jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit <a href="https://groups.google.com/d/msgid/jenkinsci-dev/12163123-1269-45C0-B91E-116053E920C5%40beckweb.net" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/msgid/jenkinsci-dev/12163123-1269-45C0-B91E-116053E920C5%40beckweb.net&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/msgid/jenkinsci-dev/12163123-1269-45C0-B91E-116053E920C5%40beckweb.net&#39;;return true;">https://groups.google.com/d/msgid/jenkinsci-dev/12163123-1269-45C0-B91E-116053E920C5%40beckweb.net.
For more options, visit <a href="https://groups.google.com/d/optout" rel="nofollow" target="_blank" onmousedown="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;" onclick="this.href=&#39;https://groups.google.com/d/optout&#39;;return true;">https://groups.google.com/d/optout.
--
Sent from my phone

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/e9301027-1d47-4137-a223-e376f1b3f21b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Plugin/core version installation statistics

Baptiste MATHUS
In reply to this post by Daniel Beck
Very cool Daniel, thanks for that work! 

Le 19 juil. 2017 17:52, "Daniel Beck" <[hidden email]> a écrit :
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

--
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 [hidden email].
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.

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CANWgJS7-ThoBzkKaEMf01WZ700NnKMQGtxV6chaQobd%3DG-scRA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Plugin/core version installation statistics

Daniel Beck
In reply to this post by Daniel Beck

> On 19. Jul 2017, at 17:52, Daniel Beck <[hidden email]> 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.

--
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 [hidden email].
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/06DF6A2B-7684-437B-A0FA-37869185A7F6%40beckweb.net.
For more options, visit https://groups.google.com/d/optout.