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

Extensions index is missing many implementations #3746

Open
jtnord opened this issue Sep 7, 2023 · 12 comments
Open

Extensions index is missing many implementations #3746

jtnord opened this issue Sep 7, 2023 · 12 comments
Assignees
Labels
documentation Improvements or additions to documentation

Comments

@jtnord
Copy link

jtnord commented Sep 7, 2023

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

@jtnord jtnord added documentation Improvements or additions to documentation triage Incoming issues that need review labels Sep 7, 2023
@MarkEWaite MarkEWaite removed the triage Incoming issues that need review label Sep 8, 2023
@MarkEWaite MarkEWaite self-assigned this Sep 8, 2023
@MarkEWaite
Copy link

Sorry about that. No progress on the issue since you reported it almost 3 months ago as jenkins-infra/backend-extension-indexer#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
Copy link
Author

jtnord commented Sep 8, 2023

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
Copy link

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
Copy link
Member

lemeurherve commented Sep 8, 2023

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 jenkins-infra/backend-extension-indexer#58:
jenkins-infra/backend-extension-indexer#42

@KalleOlaviNiemitalo
Copy link

Also jenkins-infra/jenkins.io#6406

@basil
Copy link
Collaborator

basil commented Sep 13, 2023

Caused by jenkinsci/plugin-pom#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
Copy link

jglick commented Sep 13, 2023

compile the plugin

❗ 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 jglick/sezpoz@adf2093), 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
Copy link
Collaborator

basil commented Sep 13, 2023

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

Hence my previous suggestion in #3746 (comment):

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

@basil
Copy link
Collaborator

basil commented Sep 13, 2023

@jglick Since this regression was caused by jenkinsci/plugin-pom#100, should jenkins-infra/backend-extension-indexer#58 be assigned to you?

@zbynek
Copy link

zbynek commented Sep 19, 2023

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
Copy link
Collaborator

basil commented Sep 19, 2023

would it make sense to find some interim solution ?

I suggested an interim solution in #3746 (comment):

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

@jglick
Copy link

jglick commented Sep 19, 2023

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 (jenkins-infra/backend-extension-indexer#42 sounds like another consequence).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

7 participants