jenkins-infra / helpdesk

Open your Infrastructure related issues here for the Jenkins project
https://github.com/jenkins-infra/helpdesk/issues/new/choose
17 stars 10 forks source link

Extensions index is missing many implementations #3746

Open jtnord opened 1 year ago

jtnord commented 1 year ago

Describe your use-case which is not covered by existing documentation.

https://www.jenkins.io/doc/developer/extensions is supposed to list known ExtensionPoints and the known (ie public jenkins) implemtnations via an Extension.

However it seems like there are missing implementations

For example https://www.jenkins.io/doc/developer/extensions/jenkins-core/#queuetaskdispatcher

hudson.model.queue.QueueTaskDispatcher is implemented by branch-api plugins RateLimitBranchProperty.QueueTaskDispatcherImpl but it is not listed.

Reference any relevant documentation, other materials or issues/pull requests that can be used for inspiration.

No response

MarkEWaite commented 1 year ago

Sorry about that. No progress on the issue since you reported it almost 3 months ago as https://github.com/jenkins-infra/backend-extension-indexer/issues/58

I'll try to spend some time on it today as part of Docs Office Hours preparation. Hopefully a first attempt to rollback to a working version will be successful, then later I can do more investigation to understand what broke the indexer.

jtnord commented 1 year ago

Thanks MarK.

I thought I filed it before and then could not find it - somewhat obviously as I was looking in the wrong place!

MarkEWaite commented 1 year ago

Thanks MarK.

I thought I filed it before and then could not find it - somewhat obviously as I was looking in the wrong place!

Apologies for the non-progress. I hope a short term workaround will be available by some form of rollback with a long term solution being to add tests to the backend extension indexer to detect whatever condition caused the failure.

lemeurherve commented 1 year ago

I thought I filed it before and then could not find it - somewhat obviously as I was looking in the wrong place!

This is the third help desk issue on this topic already 😅 The others have been moved since. (Note: we shouldn't transfer this one)

The other one for ref, linked in https://github.com/jenkins-infra/backend-extension-indexer/issues/58: https://github.com/jenkins-infra/backend-extension-indexer/issues/42

KalleOlaviNiemitalo commented 1 year ago

Also https://github.com/jenkins-infra/jenkins.io/issues/6406

basil commented 1 year ago

Caused by https://github.com/jenkinsci/plugin-pom/pull/100 — any plugin that has been incrementalified uses flatten-maven-plugin, which removes the Jenkins core dependency from the flattened POM and breaks the logic in jenkins-infra/backend-extension-indexer, which relies on the Jenkins core dependency being on the classpath in order to compile the plugin and list its extensions. Suggest updating the flatten-maven-plugin configuration to retain the Jenkins core dependency or updating the logic in jenkins-infra/backend-extension-indexer to re-add the Jenkins core dependency to the classpath, if not rewriting jenkins-infra/backend-extension-indexer from scratch.

jglick commented 1 year ago

compile the plugin

:exclamation: Whatever this was doing, it sounds like it needs to be rewritten. Nothing should need to be compiled. Take the *.hpi from the UC, look for META-INF/annotations/hudson.Extension + META-INF/annotations/org.jenkinsci.plugins.variant.OptionalExtension (or the *.txt variants produced by the plugin toolchain since https://github.com/jglick/sezpoz/commit/adf2093128f4bbcc8fadefdcc65d2b168964913e), and you have the basic information. GH links you can guess at, these are best-effort anyway. Descriptions can be replaced with links to https://javadoc.jenkins.io/.

basil commented 1 year ago

Whatever this was doing, it sounds like it needs to be rewritten.

Hence my previous suggestion in https://github.com/jenkins-infra/helpdesk/issues/3746#issuecomment-1718138983:

Suggest […] rewriting jenkins-infra/backend-extension-indexer from scratch

basil commented 1 year ago

@jglick Since this regression was caused by https://github.com/jenkinsci/plugin-pom/pull/100, should https://github.com/jenkins-infra/backend-extension-indexer/issues/58 be assigned to you?

zbynek commented 1 year ago

Since this came up multiple times and the proposed fix of rewriting the extension indexer sounds like a long term projet, would it make sense to find some interim solution ? Maybe a disclaimer in the extension point index linking to https://web.archive.org/web/20210308005332/http://www.jenkins.io/doc/developer/extensions/ explaining that some content went missing 🤷

basil commented 1 year ago

would it make sense to find some interim solution ?

I suggested an interim solution in https://github.com/jenkins-infra/helpdesk/issues/3746#issuecomment-1718138983:

updating the logic in jenkins-infra/backend-extension-indexer to re-add the Jenkins core dependency to the classpath

jglick commented 1 year ago

If that works, it sounds like a good hotfix for this symptom. The fundamental mistake is the attempt to use a deployed POM to build sources, which is not what deployed POMs are for (Maven 4 is supposed to enforce the distinction), and of course relying on sources rather than binaries is inherently fragile (https://github.com/jenkins-infra/backend-extension-indexer/issues/42 sounds like another consequence).