New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Exclude plugins without a valid wiki page from the Update Centre JSON files #20
Conversation
The current UC code will throw an exception and give up if this override is included; we need to wait for pull request jenkins-infra#20 to be merged.
If the recent releases aren't too old it should be possible to find who uploaded it to Artifactory, then go to their Jira profile and find out the email there. That should be a start, at least.
I like this idea. |
Here's a list of the bad plugins, with latest release date, wiki URL from the POM, full SCM URL from the POM and the developer IDs, with email if available: Cross-referencing with Artifactory is a good idea. I started writing a mail to the dev list, where we can post this information. But I won't finish that today. |
Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests |
One week later: the mailing list has been notified, a number of plugins have removed themselves from the bad and not-so-bad lists. The override lists have been updated accordingly. I'll send out another reminder to the mailing list (after seeing what happens in the community meeting), and start emailing the contacts in the (updated) Gist. Now we can create the "Plugin Page Missing" wiki page, and add wiki overrides for the 38 bad plugins. |
6c44a90
to
d3c7d69
Compare
Changes have been rebased onto master without conflicts. |
… files. The criteria for inclusion are: - Plugins must specify a Jenkins wiki URL in their pom.xml, via the <url> tag - The wiki page must exist on the Jenkins wiki - The wiki page must be a child of the "Plugins" page Also accepted are: - Wiki short URLs (e.g. /x/GYCGAQ) - Wiki URLs with a numeric ID (e.g. /pages/viewpage.action?pageId=60915753) - URLs which have legacy URL prefixes (e.g. non-HTTPS, wiki.hudson-ci.org) - URLs ending with a trailing slash Plugins not meeting these criteria will not be included in the Update Centre JSON file, nor in the release history JSON file. As before, plugins may also be excluded via the "artifact-ignores.properties" file, or if a plugin does specify a valid wiki page, but that wiki page has the "plugin-deprecated" label. While building the plugin list, more informational output is now printed to the console regarding why plugins are being excluded, or whether their wiki URL was rewritten to the canonical wiki URL format. A summary of the total number of included, excluded and deprecated plugins is also shown at the end of building the Update Centre plugin list. A number of test cases were added to test the basic URL resolution process, as well as some of the rarer types of URL found in currently-released plugins.
…s for now. Even if plugin developers update their plugins to include a wiki URL, and make a new release, this will not apply to older plugin releases. Because the UC for LTS releases may only include older plugin releases, and not the latest version of any given plugin, we should not exclude those plugins because they don't have a wiki page. This is a workaround which should ideally be removed once we no longer generate UC files for LTS 1.596, which was the last LTS in which we tolerated plugins without a valid wiki URL.
5317f08
to
38a695b
Compare
Each of these plugins will, after jenkins-infra#20 is merged, still be available in the UC, but the URL will point to the "Plugin Documentation Missing" wiki page, which tells users what the situation is, and warns that this plugin will be removed in future if no wiki page is added.
From my point of view, we're ready to merge PR 22 and then this one. |
Exclude plugins without a valid wiki page from the Update Centre JSON files
The criteria for inclusion are:
pom.xml
, via the<url>
tagAlso accepted are:
/x/GYCGAQ
)/pages/viewpage.action?pageId=60915753
)Plugins not meeting these criteria will not be included in the Update Centre JSON file, or will have an empty
wiki
value in the release history JSON file.As before, plugins may also be excluded via the
artifact-ignores.properties
file, or if a plugin does specify a valid wiki page, but that wiki page has theplugin-deprecated
label.While building the plugin list, more informational output is now printed to the console regarding why plugins are being excluded, or whether their wiki URL was rewritten to the canonical wiki URL format.
A summary of the total number of included, excluded and deprecated plugins is also shown at the end of building the Update Centre plugin list.
A number of test cases were added to test the basic URL resolution process, as well as some of the rarer types of URL found in currently-released plugins.
These changes are as agreed in the most recent community meeting (and broadly on the developers' mailing list). This raises the quality bar a tiny bit to ensure plugins are at least minimally documented, and that users have a chance of seeing an excerpt in the Update Centre, and hopefully also source code links and JIRA info.
All current plugin releases which do have a wiki page, but do not list the URL in the POM have been grandfathered in via #14.
When running with
-no-experimental
(plus the overrides from #14, and the further exclusions from #19), this leaves453837 plugins that would be excluded from the Update Centre, after this code is merged. But the wiki overrides in #22 will provide a grace period for these plugins:Usage stats for these plugins can be seen in the old list; only a few are really popular:
https://gist.github.com/orrc/2995a31028a27f9765d1
I know that a few of these are nothing to worry about:
bees-sdk-pluginndeloof says this can be killed offfoofooJunkhello-worldJunkkoji-pluginThis is a bit complex; I've emailed the maintainer to work things outBut the next step is to announce this on the mailing list and try and contact the maintainers of the remaining plugins — hopefully they can be found, and will add wiki pages for their plugins.
I would suggest adding additional, temporary wiki overrides (for ~3-6 months, as mentioned in the meeting) for these 45 plugins, pointing all of them to a "Plugin Page Missing" wiki page, which explains that there is no documentation, no infobox (so no source code link, no JIRA issues), and encourages people to find the maintainer and get them to add a wiki page.
Otherwise, after the deadline, the plugin will be excluded like other undocumented plugins.