[JIRA] (JENKINS-55582) Convert modules to plugins

0 views
Skip to first unread message

jglick@cloudbees.com (JIRA)

unread,
Jan 14, 2019, 12:33:02 PM1/14/19
to jenkinsc...@googlegroups.com
Jesse Glick created an issue
 
Jenkins / Task JENKINS-55582
Convert modules to plugins
Issue Type: Task Task
Assignee: Unassigned
Components: core
Created: 2019-01-14 17:32
Labels: split-plugins-from-core
Priority: Major Major
Reporter: Jesse Glick

None of the currently bundled jenkins-module packages actually look like they need to be modules: they do not appear to need to be loaded in the same class loader as jenkins-core.jar, nor to have extensions/services registered early in the startup sequence. As such, they could be made into regular plugins (hpi packaging), and the usual split-plugins.txt registry used to retain compatibility for existing plugins which happen to refer to their classes (InstanceIdentity and SshCommandFactory are the main examples).

As an aside, in the case of sshd / git-server this would allow the older and deprecated half of workflow-cps-global-lib to be split into its own plugin so that the org.jenkinsci.plugins.workflow.libs package can be used without reference to existing modules. This would lighten its footprint and simplify some functional test configuration.

Add Comment Add Comment
 
This message was sent by Atlassian Jira (v7.11.2#711002-sha1:fdc329d)

jglick@cloudbees.com (JIRA)

unread,
Apr 15, 2019, 10:43:02 PM4/15/19
to jenkinsc...@googlegroups.com
Jesse Glick assigned an issue to Jesse Glick
Change By: Jesse Glick
Assignee: Jesse Glick

jglick@cloudbees.com (JIRA)

unread,
Apr 15, 2019, 10:43:02 PM4/15/19
to jenkinsc...@googlegroups.com
Jesse Glick started work on Task JENKINS-55582
 
Change By: Jesse Glick
Status: Open In Progress

jglick@cloudbees.com (JIRA)

unread,
Apr 15, 2019, 10:44:02 PM4/15/19
to jenkinsc...@googlegroups.com
Jesse Glick commented on Task JENKINS-55582
 
Re: Convert modules to plugins

Started off by making sure they all at least have up-to-date build metadata, which should make things easier.

jglick@cloudbees.com (JIRA)

unread,
Apr 16, 2019, 10:05:02 AM4/16/19
to jenkinsc...@googlegroups.com
Jesse Glick updated an issue
None of the [currently bundled {{jenkins-module}} packages|https://github.com/jenkinsci/jenkins/blob/6d2eb679a6fccc53d32708cc23c5927201953248/war/pom.xml#L95-L134] actually look like they need to be modules: they do not appear to need to be loaded in the same class loader as {{jenkins-core.jar}}, nor to have extensions/services registered [early in the startup sequence|https://javadoc.jenkins.io/jenkins/security/ConfidentialStore.html]. As such, they could be made into regular plugins ({{hpi}} packaging), and the usual {{split-plugins.txt}} registry used to retain compatibility for existing plugins which happen to refer to their classes ({{InstanceIdentity}} and {{SshCommandFactory}} are the main examples).

- As an aside , in the case of {{sshd}} / {{git - server}} this would allow the older and deprecated half of {{workflow _refiled as JENKINS - cps-global-lib}} to be split into its own plugin so that the {{org 57023 . jenkinsci.plugins.workflow.libs}} package can be used without reference to existing modules. This would lighten its footprint and simplify some functional test configuration. _

jglick@cloudbees.com (JIRA)

unread,
Apr 16, 2019, 4:25:03 PM4/16/19
to jenkinsc...@googlegroups.com

dbeck@cloudbees.com (JIRA)

unread,
Apr 16, 2019, 5:17:02 PM4/16/19
to jenkinsc...@googlegroups.com

jglick@cloudbees.com (JIRA)

unread,
Apr 16, 2019, 5:55:01 PM4/16/19
to jenkinsc...@googlegroups.com

The JNLP 4 protocol implementation does not work unless instance-identity (or technically some InstanceIdentityProvider) is installed, so it would be cleaner to move that to a plugin as well and express a dependency.

dbeck@cloudbees.com (JIRA)

unread,
Apr 16, 2019, 6:13:02 PM4/16/19
to jenkinsc...@googlegroups.com

Or, alternatively, do none of this…?

o.v.nenashev@gmail.com (JIRA)

unread,
Apr 16, 2019, 7:36:02 PM4/16/19
to jenkinsc...@googlegroups.com

I think it needs a JEP. I am in favor of killing the "module" type and converting everything to plugins, but this is a massive change which requires careful review and public discussion

jglick@cloudbees.com (JIRA)

unread,
Apr 16, 2019, 9:59:02 PM4/16/19
to jenkinsc...@googlegroups.com

It is actually not a large change at all; turned out to be quite straightforward. See the core PR for summary.

jglick@cloudbees.com (JIRA)

unread,
Apr 16, 2019, 10:00:01 PM4/16/19
to jenkinsc...@googlegroups.com
Change By: Jesse Glick
Status: In Progress Review

me@basilcrow.com (JIRA)

unread,
Aug 6, 2019, 4:05:02 PM8/6/19
to jenkinsc...@googlegroups.com

Or, alternatively, do none of this…?

I think this is worth doing. Right now, it's more or less impossible for plugins to depend on modules in a sane way (see the discussion in jenkinsci/git-server-plugin#10 to see what I mean). With this change in place, plugins could explicitly depend on the correct version of the "module" (turned plugin) that they need.

jglick@cloudbees.com (JIRA)

unread,
Aug 6, 2019, 4:18:02 PM8/6/19
to jenkinsc...@googlegroups.com

I have a to-do item to write this up a JEP by the way.

o.v.nenashev@gmail.com (JIRA)

unread,
Sep 2, 2019, 5:35:03 PM9/2/19
to jenkinsc...@googlegroups.com

I have created WEBSITE-642 to deuglify Web UI. Probably you want to convert this task to EPIC Jesse Glick

o.v.nenashev@gmail.com (JIRA)

unread,
Sep 2, 2019, 5:36:05 PM9/2/19
to jenkinsc...@googlegroups.com
Oleg Nenashev edited a comment on Task JENKINS-55582
I have created WEBSITE-642 to deuglify the Plugin Site Web UI. Probably you want to convert this task to EPIC [~jglick]

jglick@cloudbees.com (JIRA)

unread,
Nov 13, 2019, 1:03:03 PM11/13/19
to jenkinsc...@googlegroups.com

Just now realized that the slave installers only work if the inbound agent is launched in “GUI” mode, which is only available when using javaws, which is semi-deprecated and might be dropped altogether if we decline to keep signing remoting.jar. (Anyway they are only useful if the user account launching the agent has administrator privileges to register a service.) So while slave-installer and its four implementations can still be trivially converted to plugins, we may decide to stop bundling them, meaning that we would be down to three detached plugins (instance-identity, ssh-cli-auth, sshd), which might ease some of the objections to this change.

This message was sent by Atlassian Jira (v7.13.6#713006-sha1:cc4451f)
Atlassian logo

jglick@cloudbees.com (JIRA)

unread,
Dec 2, 2019, 4:01:03 PM12/2/19
to jenkinsc...@googlegroups.com
Jesse Glick updated an issue
Change By: Jesse Glick
Labels: split-plugins-from-core stalled-pr
Reply all
Reply to author
Forward
0 new messages