[Question] Plugin Health Scores on Update Center?

55 views
Skip to first unread message

Dheeraj

unread,
Apr 6, 2022, 8:14:26 AM4/6/22
to jenkin...@googlegroups.com
Hi everyone,

Based on the project idea 'Plugin Health Score' for GSoC '22, I have a small question. Can we deliver each plugin's health score inside the JSON object published by the Update Center?

More on this can be found in this proposal.

Gavin Mogan

unread,
Apr 6, 2022, 11:28:51 AM4/6/22
to Jenkins Developers
Does every install for Jenkins need the data? Or would it be only for a single view?

 How much data is it per plugin? A single number? Or an object full of values?

Any data you'd want to add would need to be multiplied by like 2000 plugins so it gets super expensive super quickly.

I tried reading the proposal but after a couple pages or so I didn't feel like skimming any more to try and find this info.

--
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/CAET3Cjcwrf_USC1tL-hRM0mDsd9gsa22bR5_rXbpNNj8aoJNGw%40mail.gmail.com.

Dheeraj

unread,
Apr 6, 2022, 11:28:17 PM4/6/22
to jenkin...@googlegroups.com
As per my understanding, for now, the data would only be used by Plugins Site. If in the future we want to show Plugin's health scores on Plugin Manager as well then I think every install of Jenkins would need the data.


An object full of values like this:
```
"healthScore": 87,
“healthScoreParameters”: [
     {isParentPomLatest : 0.4},
     {isJenkinsfilePresent : 0.3},
     {checkJenkinsBaseVersion : -0.2},
     {checkDeprecatedLayouts : -0.1},
     {isSpotbugsEnabled : 0.3},
     {isScmUrlUpdated : 0.1},
     {isAutomatedDepCheckEnabled : 0.5},
     {isUsingPluginBom : 0.4},
     {isContributingGuidePresent : 0.2}
     .
     .
     .
]
```
The number of parameters can be expanded very easily and is yet to be decided specifically, but I think initially there can be around 30~ of them per plugin. This means 30*2000 = 60000


That's weird, I specifically placed the link of the bookmark within my proposal which takes us to the exact section which answers your questions.

Link: https://docs.google.com/document/d/1HTbcWh5C1KrCgEzgqeVEPyfr1H5fH5eTj8KpbWrWsSY/edit#bookmark=id.67e168tnirse

Please let me know what you think about this, thanks!


Gavin Mogan

unread,
Apr 6, 2022, 11:37:18 PM4/6/22
to Jenkins Developers
danielbeck is the owner of updatecenter, but my opinion is that is way
too big for something jenkins won't use. the example you gave has 300+
character, time 2000 plugins, thats 600+ megs of extra data that every
jenkins would download

What would be the advantage of making update center do it vs
processing it elsewhere and then having plugin site pull it in?

Gavin
> To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAET3CjefDseaRAbGzAmgDRjPguHfi89p0Wu0nDMQ%3Dsa%2Bff3VLg%40mail.gmail.com.

Dheeraj

unread,
Apr 7, 2022, 1:43:01 AM4/7/22
to jenkin...@googlegroups.com
I agree that there are just too many characters as the naming convention I've used is too descriptive, so maybe the character count can be decreased if we name them efficiently.

The advantage of making the update center do it vs processing it elsewhere is that there will be one less service to maintain, but I agree, I didn't think of it from the character-count perspective. 

Gavin Mogan

unread,
Apr 7, 2022, 1:45:17 AM4/7/22
to Jenkins Developers
Like update center, it can be a script that generates output and gets
published to a server. Doesn't need to be a service. Actually
shouldn't be a service, should be a once in a while generated json
file so it can't be broken into or anything.
> To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAET3Cjc9MNKbs%3DE3B4iSqpMStq6mpCVAdNmAn87GJsmxFa0vHw%40mail.gmail.com.

Adrien Lecharpentier

unread,
Apr 7, 2022, 9:01:23 AM4/7/22
to Jenkins Developers
I agree on the fact that the scoring shouldn't be added to the update center file.
However, the details of the score shouldn't be added. My point is, if we want the score to be visible on any controllers, only the score should be added. Details of that score are should be left to the plugin site where more details can be added than cryptic `isJenkinsfilePresent`.

On the service details, I don't know. The json file should be generated and cached for sure, but the data on which the scoring is based could be stored.

Dheeraj

unread,
Apr 8, 2022, 11:12:03 AM4/8/22
to jenkin...@googlegroups.com
Hi all,

These are some very useful inputs. I understand why there's no need to put the details of the score in the JSON output, for it to be picked up by the controller.
But I believe there should be another JSON file that contains the detailed breakdown of the health score of each plugin, for it to be used by the Plugins Site, where we'd like to show users/maintainers how their score was calculated with a detailed breakdown of it.

As suggested, I'll move forward with the idea of not using Update Center for health-score purposes, instead make use of a script that generates JSON outputs that get published to a server.


Dheeraj

Reply all
Reply to author
Forward
0 new messages