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

[JENKINS-41631, JENKINS-40088, JENKINS-43715, JENKINS-40979] - Update Stapler and Enforce upper bound deps #2956

Merged

Conversation

jglick
Copy link
Member

@jglick jglick commented Jul 31, 2017

Follow-up to jenkinsci/plugin-pom#67. Downstream of jenkinsci/stapler#123.

Proposed changelog entries:

  • Cleanup of Maven dependencies in Jenkins core, allowing plugins depending on this version or later to build without “upper bound” dependency warnings.
  • Stapler library updated from 1.250 to 1.252:
    • order of search for web method overloads is now deterministic in case of ambiguity
    • deprecated HttpResponses.html and .plainText in favor of .literalHtml and .text
    • related to JENKINS-40088: configurable export API behavior
    • JENKINS-43715: NullPointerException fix
    • related to JENKINS-40979: NullPointerException fix
    • JENKINS-45903: Prevent file handle leak in LargeText.GzipAwareSession

@reviewbybees

@ghost
Copy link

ghost commented Jul 31, 2017

This pull request originates from a CloudBees employee. At CloudBees, we require that all pull requests be reviewed by other CloudBees employees before we seek to have the change accepted. If you want to learn more about our process please see this explanation.

@@ -95,6 +95,12 @@ THE SOFTWARE.
<dependency>
<groupId>com.google.inject</groupId>
<artifactId>guice</artifactId>
<exclusions>
<exclusion> <!-- TODO it seems to want Guava 16; apparently it manages to run against 11 -->
Copy link
Member

Choose a reason for hiding this comment

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

What could possibly go wrong? :(

Copy link
Member Author

Choose a reason for hiding this comment

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

Well, we are already doing it—this just makes it apparent.

<exclusions>
<exclusion> <!-- pick up from Stapler -->
<groupId>com.google.code.findbugs</groupId>
<artifactId>jsr305</artifactId>
Copy link
Member

Choose a reason for hiding this comment

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

Maybe it's safer to just define the newest version in this POM instead of adding exclusions

Copy link
Member Author

Choose a reason for hiding this comment

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

Maybe. Not used at runtime anyway, so probably does not matter.

@@ -53,7 +53,7 @@ THE SOFTWARE.
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>jenkins-test-harness</artifactId>
<version>2.20</version>
<version>2.23</version>
Copy link
Member

Choose a reason for hiding this comment

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

Unrelated to this change, I'd guess

Copy link
Member

Choose a reason for hiding this comment

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

It is, to catch jenkinsci/jenkins-test-harness#62 which indeed got released as 2.23.

Copy link
Member Author

Choose a reason for hiding this comment

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

Correct.

Copy link
Member

Choose a reason for hiding this comment

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

ack

@@ -239,6 +263,23 @@ THE SOFTWARE.
<skip>true</skip>
</configuration>
</plugin>
<plugin> <!-- TODO pending JENKINS-45271 fix, would be best to finish moving MavenModuleSet-specific tests to maven-plugin and delete the test dep here -->
Copy link
Member

Choose a reason for hiding this comment

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

Yeah, needs fix asap. OTOH, how many MavenPlugin-dependent tests do we have in the core? Maybe we should just move them elsewhere and remove the dependency.

Copy link
Member Author

Choose a reason for hiding this comment

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

There are a bunch. I do think it would be wise to move them to maven-plugin and delete the dep. I just did not want to take it on in this PR; would confuse the issue too much.

Copy link
Member

Choose a reason for hiding this comment

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

Could you please create a follow-up ticket for it?

Copy link
Member Author

Choose a reason for hiding this comment

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

Copy link
Member

@batmat batmat left a comment

Choose a reason for hiding this comment

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

A wee bit more unsure about the part in the test module, but as this is the test module, this is OK IMO. Worse case something is wrong and we fix it in the future, but it won't reach the war/production anyway.

@@ -87,7 +87,7 @@ THE SOFTWARE.
<patch.tracker.serverId>jenkins-jira</patch.tracker.serverId>

<guavaVersion>11.0.1</guavaVersion>
<slf4jVersion>1.7.7</slf4jVersion> <!-- < 1.6.x version didn't specify the license (MIT) -->
<slf4jVersion>1.7.25</slf4jVersion>
Copy link
Member

Choose a reason for hiding this comment

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

👍 been hit by this recently and this improvement shows it's worth it to avoid JENKINS-41631 being too much of a nightmare when it starts reaching plugins (I think now it's still so recent that only very few ever tried, or reverted it seeing that new error).

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes the intent here (together with the plugin-pom PR) was to allow a plugin using “newest everything” to build without warnings.

Copy link
Member

Choose a reason for hiding this comment

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

FYI @jtnord

@@ -53,7 +53,7 @@ THE SOFTWARE.
<dependency>
<groupId>${project.groupId}</groupId>
<artifactId>jenkins-test-harness</artifactId>
<version>2.20</version>
<version>2.23</version>
Copy link
Member

Choose a reason for hiding this comment

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

It is, to catch jenkinsci/jenkins-test-harness#62 which indeed got released as 2.23.

@batmat
Copy link
Member

batmat commented Aug 1, 2017

And so 🐝 for the tooling to catch up.

Copy link
Member

@oleg-nenashev oleg-nenashev left a comment

Choose a reason for hiding this comment

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

🐝 , a follow-up JIRA ticket for Maven Project tests is required. I or probably @aheritier will do it once we are around

@oleg-nenashev
Copy link
Member

@reviewbybees done

@oleg-nenashev oleg-nenashev added needs-more-reviews Complex change, which would benefit from more eyes ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback labels Aug 2, 2017
@ghost
Copy link

ghost commented Aug 2, 2017

This pull request has completed our internal processes and we now respectfully request the maintainers of this repository to consider our proposal contained within this pull request for merging.

@jglick
Copy link
Member Author

jglick commented Aug 2, 2017

Blocked pending @oleg-nenashev’s re-review of upstream PR.

@@ -39,7 +39,7 @@ THE SOFTWARE.

<properties>
<staplerFork>true</staplerFork>
<stapler.version>1.250</stapler.version>
<stapler.version>1.252</stapler.version>
Copy link
Member Author

Choose a reason for hiding this comment

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

Copy link
Member

@batmat batmat Aug 20, 2017

Choose a reason for hiding this comment

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

Now I wonder why I didn't ask about this when reviewing: was this related to Enforcer Upper Bound Deps? Shouldn't it have been a dedicated PR?

Anyway, it revealed jenkinsci/stapler#128 for us, an internal plugin that does not compile anymore.

@jglick
Copy link
Member Author

jglick commented Aug 3, 2017

Ready for final review I think (assuming tests pass).

@oleg-nenashev
Copy link
Member

The changelog entries should also refer Stapler upgrade, JENKINS-43715 and maybe JENKINS-40979

@@ -128,7 +142,7 @@ THE SOFTWARE.
<dependency><!-- we exclude this transient dependency from htmlunit, which we actually need in the test -->
<groupId>xalan</groupId>
<artifactId>xalan</artifactId>
<version>2.7.1</version>
<version>2.7.2</version>
Copy link
Member

Choose a reason for hiding this comment

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

So it's bundled into the core, right? Maybe requires a changelog entry as well

Copy link
Member Author

Choose a reason for hiding this comment

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

No, this is the test POM.

@jglick
Copy link
Member Author

jglick commented Aug 3, 2017

Sigh, forgot to release the staging repo for 1.252. Did so now, but need to wait for Central synch and then trigger a new build.

@jglick
Copy link
Member Author

jglick commented Aug 4, 2017

@reviewbybees done

Copy link
Member

@jtnord jtnord left a comment

Choose a reason for hiding this comment

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

🐝

@oleg-nenashev oleg-nenashev removed the needs-more-reviews Complex change, which would benefit from more eyes label Aug 7, 2017
@oleg-nenashev
Copy link
Member

Will merge towards the next weekly if there is no negative feedback by Thursday

@oleg-nenashev oleg-nenashev merged commit b8f6246 into jenkinsci:master Aug 11, 2017
@oleg-nenashev oleg-nenashev changed the title [JENKINS-41631] Enforce upper bound deps on Jenkins core [JENKINS-41631, JENKINS-40088, JENKINS-43715, JENKINS-40979] - Update Stapler and Enforce upper bound deps on Jenkins core Aug 11, 2017
@oleg-nenashev oleg-nenashev changed the title [JENKINS-41631, JENKINS-40088, JENKINS-43715, JENKINS-40979] - Update Stapler and Enforce upper bound deps on Jenkins core [JENKINS-41631, JENKINS-40088, JENKINS-43715, JENKINS-40979] - Update Stapler and Enforce upper bound deps Aug 11, 2017
@oleg-nenashev
Copy link
Member

Added JENKINS-45903 to the changelog. We need to double-check changes in Stapler @daniel-beck

@oleg-nenashev
Copy link
Member

1.252 does not seem to be complete: https://github.com/stapler/stapler/blob/master/CHANGELOG.md#1252 .

@jglick jglick deleted the requireUpperBoundDeps-JENKINS-41631 branch August 14, 2017 15:19
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.0.0-M1</version> <!-- TODO 3.0.0 when released -->
Copy link
Member Author

Choose a reason for hiding this comment

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-for-merge The PR is ready to go, and it will be merged soon if there is no negative feedback
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants