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

Upgrade to stapler version 1.246 #2593

Merged
merged 1 commit into from
Oct 30, 2016
Merged

Conversation

vivek
Copy link
Contributor

@vivek vivek commented Oct 15, 2016

Fixed regressions reported in #2415 and other enhancements.

@oleg-nenashev
Copy link
Member

Seems the issue with release availability has not been resolved yet.

According to the code changes, I do not believe that it's only one change in three Stapler releases. Please provide a full changelog (ideally with JIRA references if available)

@oleg-nenashev oleg-nenashev added the needs-more-reviews Complex change, which would benefit from more eyes label Oct 15, 2016
@vivek
Copy link
Contributor Author

vivek commented Oct 15, 2016

@oleg-nenashev Yeah not sure what the problem is, hopefully they will appear eventually in the repo.

In terms of changes, here are the Stapler PRs (no JIRA ticket though) that got merged post 1.244:

@oleg-nenashev
Copy link
Member

@vivek I'm aware there are many non-PR changes made by @kohsuke. Overall diff: jenkinsci/stapler@stapler-parent-1.243...master

I'll try to go through the code ant to provide my feedback by Wednesday. Please let me know if there is anything urgent

@oleg-nenashev oleg-nenashev added the on-hold This pull request depends on another event/release, and it cannot be merged right now label Oct 15, 2016
@oleg-nenashev oleg-nenashev self-assigned this Oct 15, 2016
@vivek
Copy link
Contributor Author

vivek commented Oct 17, 2016

@oleg-nenashev Who would know why is Stapler artifacts are not resolved yet?

10:45:26 [ERROR] Failed to execute goal on project jenkins-core: Could not resolve dependencies for project org.jenkins-ci.main:jenkins-core:jar:2.26-SNAPSHOT: The following artifacts could not be resolved: org.kohsuke.stapler:stapler-groovy:jar:1.246, org.kohsuke.stapler:stapler-jrebel:jar:1.246: Could not find artifact org.kohsuke.stapler:stapler-groovy:jar:1.246 in central

@oleg-nenashev
Copy link
Member

@vivek
Likely because it has not been actually uploaded to Maven Central.
See https://mvnrepository.com/artifact/org.kohsuke.stapler/stapler

@vivek
Copy link
Contributor Author

vivek commented Oct 17, 2016

@oleg-nenashev Right and its not even at http://repo.jenkins-ci.org/public/org/kohsuke/stapler/stapler/. Maybe the repo has moved. @kohsuke Do you know if release went well or it was released to some other repo?

@daniel-beck
Copy link
Member

@oleg-nenashev Actually, only the repository changing commit in jenkinsci/stapler@stapler-parent-1.244...stapler-parent-1.246 was without PR.

And in jenkinsci/stapler@stapler-parent-1.243...stapler-parent-1.244 only jenkinsci/stapler@9411334 was outside a PR.

Still, @vivek's list of PRs is misleading, as this updates from 1.243 to 1.246, not from 1.244. Full list:

jenkinsci/stapler#73
jenkinsci/stapler#75
jenkinsci/stapler#77
jenkinsci/stapler#78
jenkinsci/stapler#79
jenkinsci/stapler#80

@vivek
Copy link
Contributor Author

vivek commented Oct 18, 2016

@daniel-beck Thanks, yeah I mistook the from version number, your list is good that is from 1.243. So what happens next to get stapler 1.246 to land in central? It's already released.

@oleg-nenashev
Copy link
Member

@vivek You should contact @kohsuke . Likely he did not completely perform the release process. Maybe the release is staged on Nexus, but requires a manual action.

@vivek
Copy link
Contributor Author

vivek commented Oct 24, 2016

@daniel-beck @oleg-nenashev: Stapler 1.246 was released to maven central but was not visible, @kohsuke fixed it. Its visible now. Can Jenkins build be triggered for this PR manually?

@daniel-beck daniel-beck reopened this Oct 25, 2016
@vivek
Copy link
Contributor Author

vivek commented Oct 25, 2016

@daniel-beck There is one failure but this has been failing since https://jenkins.ci.cloudbees.com/job/core/job/jenkins-core/6375/ and is unrelated. How do we move forward?

@daniel-beck
Copy link
Member

@vivek There's a successful PR build, so no problem there from build success POV. Now this needs reviews.

@jenkinsci/code-reviewers assemble!

@vivek
Copy link
Contributor Author

vivek commented Oct 28, 2016

@daniel-beck How long do you stage it for review? Didn't see any comments so far.

@oleg-nenashev oleg-nenashev removed the on-hold This pull request depends on another event/release, and it cannot be merged right now label Oct 29, 2016
@oleg-nenashev
Copy link
Member

Review is still in my TODO list.
I'll do it with a high priority since it may worth having new Stapler in LTS

@oleg-nenashev
Copy link
Member

There are some compatibility changes in PRs like jenkinsci/stapler#77 (public classes => final, and several other changes). Putting back on-hold since I'm not comfortable about merging before a wider research

@oleg-nenashev oleg-nenashev added the on-hold This pull request depends on another event/release, and it cannot be merged right now label Oct 29, 2016
@oleg-nenashev
Copy link
Member

I would rather 🐛 this PR till Stapler has public CI builds.
The component is critical to Jenkins stability, hence we should invest into it.

@vivek Is it critical to get it available in the next LTS line? What's the impact if it does not get there?

@vivek
Copy link
Contributor Author

vivek commented Oct 29, 2016

@oleg-nenashev It is critical as some of the changes/fixes are needed by blueocean. So its really important it gets in to this LTS.

Just so that I understand, your objection is for process or there is technical reason you are objecting to? In terms of review, each Stapler PR goes thru review process and has been reviewed/approved.

Anyways, all of those PR are already in stapler released version. So if you think there is PR or change that is an issue or can cause instability in Jenkins then we can fix that otherwise I think we should not hold this PR for process reasons unless it violates any Jenkins guidelines.

@oleg-nenashev
Copy link
Member

@vivek Binary compatibility is one of Jenkins requirements. Since there are binary compatibility changes, Stapler maintainers should proof that they do not impact at least OSS plugins.

I do not want to block the update since I understand value of BO to the community, but compatibility of existing plugins IMHO is a mandatory requirement unless there is a decision made after the discussion in the ML.

@vivek
Copy link
Contributor Author

vivek commented Oct 29, 2016

@oleg-nenashev Fair point. Happy to help here. All tests are passing. If there is more testing or review needed, lets get thru that. Its just that the PR is sitting idle so was making sure the concern gets addressed and integration happens if all looks good:)

@oleg-nenashev
Copy link
Member

So there are following issues I see:

  • No CI for Stapler itself. Not sure we want to merge a lib, which didn't pass tests on the generic environment. But I'm sure @kohsuke has performed tests locally as a part of the release
  • java.org.kohsuke.stapler.lang.Klass has been converted from public to public final. It is a binary compatibility breakage
    • Investigation results: No usages in the Jenkins project
  • The changes slightly increase the technical debt (missing API docs), but it's a kind of the maintainer decision

So I do not see anything critical in the changes (though I didn't investigate logic much), but I would like to get signoff of other @jenkinsci/code-reviewers since the changes do not qualify as a "safe change" for me.

If somebody fixes the binary compatibility issue and creates a working PR builder, you will have my +1

@batmat
Copy link
Member

batmat commented Oct 29, 2016

+1 on the "safe change" comment. There's still quite a few changes there… Normally there would still be time for the next .1 LTS to let it soak anyway, only if the selected base includes it...

@oleg-nenashev
Copy link
Member

@batmat I'm not sure. Do you approve the change in the current state or not? I read "no" from your comment, but I'm not 100% sure

@vivek Actually I've expected a response from you yesterday. Is there a chance you spin a new Stapler release with compatibility change revert in time? In such case it would be convenient.

@oleg-nenashev
Copy link
Member

@jenkinsci/code-reviewers @reviewbybees Any other feedback?

@ghost
Copy link

ghost commented Oct 30, 2016

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.

@ndeloof
Copy link
Contributor

ndeloof commented Oct 30, 2016

LGTM 🐝 👍 and all that sort of things.

stapler imo is part of jenkins-core API (who else is using it?) and should be developed in sync. Getting 3 releases without being used by jenkins-core doesn't make sense to me. I wish stapler CI build would build latest tag from jenkins + stapler version patch to detect potential regressions.

@oleg-nenashev
Copy link
Member

There was np technical reason in the release delay. The release process was
somehow screwed up, and @kohsuke was not responding to pings (see the PR
referenced in the summary). Hence the stapler upgrades were hanging.

I do not consider Stapler as a part of the Jenkins project, because the
project is not accessible to jenkinsci/admins && the review process is
being held outside differently. There are also usages outside.Jenkins IIRC.
But I agree we should pick the new version to the Jenkins core as early as
we can.

On Oct 30, 2016 13:28, "Nicolas De loof" [email protected] wrote:

LGTM 🐝 👍 and all that sort of things.

stapler imo is part of jenkins-core API (who else is using it?) and should
be developed in sync. Getting 3 releases without being used by jenkins-core
doesn't make sense to me. I wish stapler CI build would build latest tag
from jenkins + stapler version patch to detect potential regressions.


You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
#2593 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AC3IoLOv6_xJt951mZRrbrrF6peZlpOLks5q5HFggaJpZM4KXuQf
.

@stephenc
Copy link
Member

🐝 and (as I am not "on the clock") 👍

@stephenc
Copy link
Member

FTR I have reviewed the changes to stapler and I do not view them as high or medium risk. I cannot see any use case for extending Klass.

@ndeloof
Copy link
Contributor

ndeloof commented Oct 30, 2016

The way stapler is managed and hosted outside jenkins project doesn't make me feel it's not part of jenkins project (I agree it would make sense project is managed the same way). And I can't find any usage outside jenkins and KK's own projects :P

@batmat
Copy link
Member

batmat commented Oct 30, 2016

@oleg-nenashev, let's say weak 👍 🐝 but I'll trust more knowledgeable persons here.
I've had a look at the GitHub code search yesterday, and in addition to Stephen's comment about any "use case for extending Klass", I couldn't find any plugin under https://github.com/jenkinsci that was actually doing it.

@oleg-nenashev
Copy link
Member

Thanks for the feedback.
I'm merging this PR and taking responsibility to work on any kind of regressions it causes.

@oleg-nenashev oleg-nenashev removed needs-more-reviews Complex change, which would benefit from more eyes on-hold This pull request depends on another event/release, and it cannot be merged right now labels Oct 30, 2016
@oleg-nenashev oleg-nenashev merged commit f8caf67 into jenkinsci:master Oct 30, 2016
@oleg-nenashev
Copy link
Member

@vivek Please provide a human-readable changelog (maybe in Stapler's repo)

@batmat
Copy link
Member

batmat commented Oct 30, 2016

@oleg-nenashev this is a team's decision. You don't have to take that burden alone if it happens to be necessary. Many people here have expressed their approval, so it's OK to merge IMO. Thanks for moving that forward and so many other things in that project Oleg.

@daniel-beck
Copy link
Member

@vivek So what does this actually do? The changelog for this change in 2.28 is still useless. See @oleg-nenashev's question above.

@vivek
Copy link
Contributor Author

vivek commented Dec 22, 2016

@daniel-beck @oleg-nenashev
Allows 'parallel request routing', this will allow BlueOcean or any Jenkins plugin to serve request routes that otherwise be served by jelly views as JSON response. Relevant PR is: jenkinsci/stapler#77.

@oleg-nenashev
Copy link
Member

@vivek
So could you add the changelog to Stapler?
Example: https://github.com/jenkinsci/remoting/blob/master/CHANGELOG.md

@vivek
Copy link
Contributor Author

vivek commented Dec 22, 2016

@oleg-nenashev sure, I can do that. I will send a PR with this change added to a CHANGELOG.md in stapler.

@vivek vivek mentioned this pull request Dec 22, 2016
@vivek
Copy link
Contributor Author

vivek commented Dec 22, 2016

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

Successfully merging this pull request may close these issues.

6 participants