Skip to content
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

Merged
merged 2 commits into from Jun 1, 2015

Conversation

orrc
Copy link
Member

@orrc orrc commented May 18, 2015

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


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 leaves 45 38 37 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:

ID POM URL
build-flow-toolbox-plugin
caliper-ci https://code.google.com/p/caliper-ci/
chef https://github.com/melezhik/chef-plugin
collabnet-automic-deploy
collabnet-uc4-deploy
ColumnsPlugin http://wiki.jenkins-ci.org/display/JENKINS/ColumnPack+Plugin
cucumber https://github.com/melezhik/cucumber-plugin
deploygate-plugin
devstack https://wiki.jenkins-ci.org/display/JENKINS/Devstack+Plugin
DotCi https://github.com/groupon/DotCi
DotCi-Fig-template http://github.com/groupon/DotCi-Fig-template
DotCi-Plugins-Starter-Pack https://github.com/groupon/DotCi-Plugins-Starter-Pack
drecycler
event-announcer http://wiki.jenkins-ci.org/display/JENKINS/My+Plugin
flexteam http://wiki.jenkins-ci.org/display/JENKINS/FlexTeam+Plugin
ikachan https://wiki.jenkins-ci.org/display/JENKINS/Ikachan+Plugin
jackson-databind
jenkins-tracker https://wiki.jenkins-ci.org/display/JENKINS/Jenkins+Tracker+Plugin
jprt http://wiki.jenkins-ci.org/display/JENKINS/JPRT+Plugin
jsch http://wiki.jenkins-ci.org/display/JENKINS/JSch+plugin
keep-slave-disconnected
monitor-remote-job
multiline-tabbar-plugin http://wiki.hudson-ci.org/display/HUDSON/Extension+Point+for+Project+Views+Navigation
mysql-job-databases https://github.com/codevise/jenkins-mysql-job-databases-plugin
network-monitor http://wiki.jenkins-ci.org/display/JENKINS/Network+Monitor+Plugin
oki-docki
package-parameter https://wiki.jenkins-ci.org/display/JENKINS/Package+Parameter+Plugin
perl https://github.com/melezhik/perl-plugin
perl-smoke-test https://github.com/melezhik/perl-smoke-test-plugin
rallyBuild http://wiki.jenkins-ci.org/display/JENKINS/rallyBuild
sidebar-update-notification
sourcemonitor http://wiki.jenkins-ci.org/display/JENKINS/SourceMonitor+Plugin
SSSCM
suite-test-groups-publisher http://wiki.jenkins-ci.org/display/JENKINS/Suite+Test+Groups+Publisher
url-auth https://github.com/kellyelton/url-auth-jenkins
writable-filesystem-monitor
zmq-event-publisher https://github.com/cboylan/zmq-event-publisher

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:

ID Comments
bees-sdk-plugin ndeloof says this can be killed off
foofoo Junk
hello-world Junk
jprt Looks to be very old; something to do with Sun?
koji-plugin This is a bit complex; I've emailed the maintainer to work things out
multiline-tabbar-plugin Some old Hudson plugin; is this tab behaviour now in core?
oki-docki Waiting for a release of docker-custom-build-environment-plugin to supersede this

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

orrc added a commit to orrc/backend-update-center2 that referenced this pull request May 18, 2015
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.
@daniel-beck
Copy link
Contributor

hopefully they can be found

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.

pointing all of them to a "Plugin Page Missing" wiki page

I like this idea.

@orrc
Copy link
Member Author

orrc commented May 18, 2015

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:
https://gist.github.com/orrc/4c149b62c62362191972

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.

@jenkinsadmin
Copy link

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests

@orrc
Copy link
Member Author

orrc commented May 26, 2015

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.

@orrc orrc force-pushed the exclude-undocumented-plugins branch from 6c44a90 to d3c7d69 Compare June 1, 2015 15:17
@orrc
Copy link
Member Author

orrc commented Jun 1, 2015

Changes have been rebased onto master without conflicts.

orrc added 2 commits June 1, 2015 17:32
… 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.
@orrc orrc force-pushed the exclude-undocumented-plugins branch from 5317f08 to 38a695b Compare June 1, 2015 15:32
orrc added a commit to orrc/backend-update-center2 that referenced this pull request Jun 1, 2015
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.
@orrc
Copy link
Member Author

orrc commented Jun 1, 2015

From my point of view, we're ready to merge PR 22 and then this one.

orrc added a commit that referenced this pull request Jun 1, 2015
Exclude plugins without a valid wiki page from the Update Centre JSON files
@orrc orrc merged commit 9645fdb into jenkins-infra:master Jun 1, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
3 participants