-
-
Notifications
You must be signed in to change notification settings - Fork 8.8k
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-64107] Convert SSHD module to a plugin #5049
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Will need to add a test
-scoped dep to the test
module since some functional tests in core do try to use java -jar jenkins-cli.jar -ssh
.
the publish stages failed due to the issues on the infra these last two days, all the tests and the ATH passes. |
The JEP proposes inlining |
I was thinking of splitting the change into two PRs, but if you think I can include the ssh-cli-auth change here, I'd include it. |
I think you have to. Otherwise we could release a split of a plugin before that plugin is actually ready. |
@jglick I checked the |
That is precisely what I advocated in the JEP. Perhaps I did not word it clearly enough? |
+1 for having a single plugin BTW. I am a bit concerned about having no SSH CLI support on startup without a plugin, but I think we can live without it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Approving conditional on upstream.
I have added the test on jenkinsci/sshd-plugin#40 and update the PR with the master changes What are the next steps? I guess we have to merge jenkinsci/sshd-plugin#38 after this we can decide the final Jenkins Core version we will include this PR, and after that, we can finish and merge jenkinsci/sshd-plugin#40 finally, if everything is fine we can test and merge jenkinsci/sshd-plugin#37 |
Co-authored-by: Jesse Glick <[email protected]>
Co-authored-by: Jesse Glick <[email protected]>
|
Co-authored-by: Jesse Glick <[email protected]>
Note that automated test coverage is not going to be of much help here. You need to take the actual generated |
I tested this manually, setup wizard worked fine, but update center data for the plugin seems missing, cc @danielbeck
instance-identity worked fine |
This PR is now ready for merge, after ~24 hours, we will merge it if there's no negative feedback. Thanks! |
Suggest #5049 (comment) though it is not a blocker. |
@@ -29,5 +29,8 @@ jdk-tool 2.112 1.0 | |||
# JENKINS-55681 | |||
jaxb 2.163 2.3.0 11 | |||
|
|||
# JENKINS-64107 | |||
sshd 2.281 3.0.1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still do not see this on the UC?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
?
➜ wars cat update-center.actual.json | jq '.plugins["sshd"]'
{
"buildDate": "Feb 23, 2021",
"dependencies": [],
"developers": [
{
"developerId": "timja"
}
],
"excerpt": "Adds SSH server functionality to Jenkins, exposing CLI commands through it",
"gav": "org.jenkins-ci.modules:sshd:3.0.1",
"labels": [],
"minimumJavaVersion": "1.8",
"name": "sshd",
"popularity": 0,
"previousTimestamp": "2021-02-22T19:33:24.00Z",
"previousVersion": "3.0",
"releaseTimestamp": "2021-02-23T15:53:28.00Z",
"requiredCore": "2.282-rc30905.2ddf35821c11",
"scm": "https://github.com/jenkinsci/sshd-plugin",
"sha1": "xX2ALuJ47hl9sGVwrc6WptJTj+g=",
"sha256": "Jmpl9bTjReS3qrwwTf3d0CTR8RyB/bZS3u+IQVzvEJg=",
"title": "SSH server",
"url": "https://updates.jenkins.io/download/plugins/sshd/3.0.1/sshd.hpi",
"version": "3.0.1",
"wiki": "https://plugins.jenkins.io/sshd"
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
$ curl -sL 'https://updates.jenkins-ci.org/update-center.json?version=2.282' | head -n-1 | tail -n+2 | jq -r '.plugins | .["sshd"] | .version'
3.0
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
seems not portable command?
head: illegal line count -- -1
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hmm weird, maybe update center is ignoring the version in the dynamic tiers, 'latest' has it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe does not refresh until after 2.282 actually comes out. If so, fine.
Why are we considering this a split/detached plugin, when the functionality wasn't in core before? It makes some sense from a configuration/functionality POV (but seems separate enough that functionality would easily be restored after installing the plugin, similar to https://plugins.jenkins.io/cctray-xml/ ), but needlessly adds a dependency from plugins with slightly older core baselines. |
I think that the main reason to consider it a detached plugin is that is a feature you do not want to be installed. the use of Apache Mina SSH library in it is another good reason, it forces all plugins to use a version highly attached to the Jenkins Core, it difficult to bump that library version. As a plugin allows more flexibility to change the library version and helps other plugins to depend on a plugin and not on a Jenkins Core. |
Well, yeah, but those dependencies on plugins need to be explicit. Adding it to the split-plugins file doesn't accomplish that, because that only matters on cores newer than what the downstream plugin was developed against.
Well, the alternative is to just split it off and add a changelog entry, like we did for |
Oh!! I get you now, I simply put it in detached for backward compatibility as I did with the trilead plugin, to avoid friction. |
Well, trilead was on the core classpath, this one was not (AFAIUI). |
IIUC upgrade guideline is not required here simnce the plugin is detached, may have been confused by the changelog entry. Am I right or not? |
yes, it is detached so nothing to do on the user side. |
See JENKINS-55582 JENKINS-64107 JENKINS-64104.
Proposed changelog entries
Proposed upgrade guidelines
N/A
Submitter checklist
Proposed changelog entries
section only if there are breaking changes or other changes which may require extra steps from users during the upgrade[ ] For dependency updates: links to external changelogs and, if possible, full diffsDesired reviewers
@jenkinsci/code-reviewers
Maintainer checklist
Before the changes are marked as
ready-for-merge
:Proposed changelog entries
are correctupgrade-guide-needed
label is set and there is aProposed upgrade guidelines
section in the PR title. (example)lts-candidate
to be considered (see query).