Skip to content

Conversation

@jtnord
Copy link
Contributor

@jtnord jtnord commented Jun 13, 2022

following these recommendations for API plugins would be wrong. The reasons provided in the original PRs for doing so are all mostly completely moot with an API plugin, and would lock out of any older version getting API fixes - esp security related ones or at least make it much more effort than would be required to deliver it.

@jtnord jtnord requested a review from a team as a code owner June 13, 2022 11:02
@probot-autolabeler probot-autolabeler bot added the documentation Jenkins documentation, including user and developer docs, solution pages, etc. label Jun 13, 2022
@lemeurherve lemeurherve changed the title ignore recomendations for API plugins ignore recommendations for API plugins Jun 13, 2022
@jtnord jtnord marked this pull request as draft June 13, 2022 11:05
@jtnord jtnord force-pushed the patch-9 branch 3 times, most recently from d768545 to 1bff1ef Compare June 13, 2022 11:21
following these recommendations for API plugins would be wrong.  The reasons provided in the original PRs for doing so are all completely moot with an API plugin, and would lock out of any older version getting API fixes - esp security related ones or at least make it much more effort than would be required to deliver it.
Copy link
Contributor

@MarkEWaite MarkEWaite left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This makes sense to me. @jglick, @daniel-beck, and @basil does this make sense to you based on the discussion in #4876 ?

When updating the core dependency, choose the link:/changelog-stable/[newest LTS version] that doesn't exclude a majority of your existing users (by requiring a newer Jenkins than they have).

NOTE: if you are packaging a pure API library (one that does not depend on Jenkins APIs) then you should ignore newer jenkins versions and pick an older LTS.
Something around 1 year old that does not have too many detached plugins makes a good choice and *PLACEHOLDER_OLDEST_LTS* would be a reasonable candidate.
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally the plugin manifest could contain an option which could prevent the older baseline from even considering detached plugins for these types of plugins, but that is for another day.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@basil
Copy link
Contributor

basil commented Jun 13, 2022

@jglick, @daniel-beck, and @basil does this make sense to you based on the discussion in #4876 ?

I was not involved in #4876.

Copy link
Contributor

@jglick jglick left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Generally reasonable advice, though I am not sure I would say it is universally applicable as sometimes newer Jenkins baselines have updates to bundled plugins or corrections to Maven metadata which simplify the task of packaging the external library.

When updating the core dependency, choose the link:/changelog-stable/[newest LTS version] that doesn't exclude a majority of your existing users (by requiring a newer Jenkins than they have).

NOTE: if you are packaging a pure API library (one that does not depend on Jenkins APIs) then you should ignore newer jenkins versions and pick an older LTS.
Something around 1 year old that does not have too many detached plugins makes a good choice and *PLACEHOLDER_OLDEST_LTS* would be a reasonable candidate.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

When updating the core dependency, choose the link:/changelog-stable/[newest LTS version] that doesn't exclude a majority of your existing users (by requiring a newer Jenkins than they have).

NOTE: if you are packaging a pure API library (one that does not depend on Jenkins APIs) then you should ignore newer jenkins versions and pick an older LTS.
Something around 1 year old that does not have too many detached plugins makes a good choice and *PLACEHOLDER_OLDEST_LTS* would be a reasonable candidate.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Co-authored-by: Jesse Glick <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Jenkins documentation, including user and developer docs, solution pages, etc.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants