-
Improvement
-
Resolution: Fixed
-
Major
-
Powered by SuggestiMate
It would be useful to include support for Git in the standard jenkins distribution.
As a new Jenkins user, I will like to choose a feature area that I am interested in and Jenkins installs the related plugins for me.
As an existing Jenkins user who is upgrading, I will like to choose the feature areas that I am interested in and Jenkins installs the related plugins for me.
- is related to
-
JENKINS-20617 Remove old versions of optional plugins from Jenkins core: CVS, LDAP, possibly others
-
- Closed
-
[JENKINS-9598] Overhaul bundled plugins or setup experience
I agree with David. Improve the UI, as opposed to bundling unnecessary functionality into core.
+1 with davidmc24. Make the original bundle as lightweight as possible and change the UI to possibly display the plugins by popularity rating (on top of the current categorization).
It's interesting to note that this was somewhat discussed during the project meeting at the San Francisco JUC last Sunday. It seems that there is a need for something like this now, given the number of plugins out there.
Generalizing the summary to reflect what seems to be the prevailing opinion. Also Kohsuke expressed interest in having some kind of setup wizard that would guide users to install popular plugins relevant to their workflow, perhaps based on “themes” of some kind.
I suppose that several "bundle plugins" would be enough (with a separate page on the update center?).
Any plugin could just reference other plugins, but it also could provide setup dialogs or initialize the configuration.
Having gone down the road of “bundle plugins” in another context (NetBeans), I can say that they cause more trouble and confusion than they solve.
As I mentioned on the mailing list, the first run experience is kind of weird. A guided tour through the basic concepts, the most important settings of Configure System, and a subset of Manage Plugins (as to not overwhelm the newcomer) might be helpful.
IMO the only bundled plugins should be whatever used to be in core, plus their new dependencies, for compatibility reasons. And those might not even need installing by default, but only if an older version that might otherwise break (e.g. <1.466 for LDAP plugin) is detected.
Code changed in jenkins
User: kzantow
Path:
core/src/main/java/hudson/model/UpdateCenter.java
core/src/main/java/jenkins/I18n.java
core/src/main/java/jenkins/model/Jenkins.java
core/src/main/resources/jenkins/install/pluginSetupWizard.properties
core/src/main/resources/jenkins/install/pluginSetupWizard_de.properties
core/src/main/resources/jenkins/install/pluginSetupWizard_es.properties
core/src/main/resources/lib/layout/layout.jelly
war/gulpfile.js
war/package.json
war/pom.xml
war/src/main/js/pluginManager.js
war/src/main/js/pluginSetupWizard.js
war/src/main/js/pluginSetupWizardGui.js
war/src/main/js/recommendedPlugins.js
war/src/main/js/templates/errorPanel.hbs
war/src/main/js/templates/offlinePanel.hbs
war/src/main/js/templates/pluginSelectionPanel.hbs
war/src/main/js/templates/pluginSetupWizard.hbs
war/src/main/js/templates/progressPanel.hbs
war/src/main/js/templates/successPanel.hbs
war/src/main/js/templates/welcomePanel.hbs
war/src/main/js/templates/wizard.hbs
war/src/main/js/util/ajax.js
war/src/main/js/util/browser.js
war/src/main/js/util/jenkins.js
war/src/main/js/util/system.js
war/src/main/js/wizard.js
war/src/main/less/pluginSetupWizard.less
war/src/main/less/wizard.less
war/src/main/webapp/WEB-INF/web.xml
war/src/test/js/pluginManager-spec.js
war/src/test/js/pluginSetupWizard-spec.js
war/src/test/js/util.js
war/src/test/js/wizard-spec.js
http://jenkins-ci.org/commit/jenkins/0b0c7f7bd9b52e16fbf4d372e366b9844c8f2f41
Log:
JENKINS-9598 - Initial installation wizard & curated list of plugins
Code changed in jenkins
User: tfennelly
Path:
core/src/main/java/hudson/ClassicPluginStrategy.java
core/src/main/java/hudson/LocalPluginManager.java
core/src/main/java/hudson/PluginManager.java
core/src/main/java/hudson/PluginWrapper.java
core/src/main/java/hudson/init/InitStrategy.java
core/src/main/java/hudson/model/UpdateCenter.java
core/src/main/java/hudson/model/UpdateSite.java
core/src/main/java/hudson/util/HttpResponses.java
core/src/main/java/jenkins/I18n.java
core/src/main/java/jenkins/diagnostics/PinningIsBlockingBundledPluginMonitor.java
core/src/main/java/jenkins/install/InstallState.java
core/src/main/java/jenkins/install/InstallUtil.java
core/src/main/java/jenkins/model/AssetManager.java
core/src/main/java/jenkins/model/Jenkins.java
core/src/main/java/jenkins/util/ResourceBundleUtil.java
core/src/main/java/jenkins/util/xml/XMLUtils.java
core/src/main/resources/jenkins/diagnostics/PinningIsBlockingBundledPluginMonitor/message.jelly
core/src/main/resources/jenkins/diagnostics/PinningIsBlockingBundledPluginMonitor/message.properties
core/src/main/resources/jenkins/diagnostics/PinningIsBlockingBundledPluginMonitor/message_ja.properties
core/src/main/resources/jenkins/diagnostics/PinningIsBlockingBundledPluginMonitor/message_pt_BR.properties
core/src/main/resources/jenkins/install/pluginSetupWizard.properties
core/src/main/resources/jenkins/install/pluginSetupWizard_de.properties
core/src/main/resources/jenkins/install/pluginSetupWizard_es.properties
core/src/main/resources/lib/layout/layout.jelly
core/src/test/java/hudson/ClassicPluginStrategyTest.java
core/src/test/java/hudson/util/JSONObjectResponseTest.java
core/src/test/java/jenkins/util/ResourceBundleUtilTest.java
core/src/test/java/jenkins/xml/XMLUtilsTest.java
core/src/test/resources/jenkins/xml/config.xml
test/pom.xml
test/src/test/java/hudson/ClassicPluginStrategyTest.java
test/src/test/java/hudson/PluginManagerInstalledGUITest.java
test/src/test/java/hudson/PluginManagerTest.java
test/src/test/java/hudson/PluginManagerTest2.java
test/src/test/java/hudson/model/UpdateCenterConnectionStatusTest.java
test/src/test/java/hudson/model/UpdateCenterPluginInstallTest.java
test/src/test/java/jenkins/I18nTest.java
test/src/test/java/jenkins/install/InstallUtilTest.java
war/.gitignore
war/Gruntfile.js
war/gulpfile.js
war/package.json
war/pom.xml
war/src/main/js/api/pluginManager.js
war/src/main/js/api/plugins.js
war/src/main/js/pluginSetupWizard.js
war/src/main/js/pluginSetupWizardGui.js
war/src/main/js/templates/errorPanel.hbs
war/src/main/js/templates/incompleteInstallationPanel.hbs
war/src/main/js/templates/loadingPanel.hbs
war/src/main/js/templates/offlinePanel.hbs
war/src/main/js/templates/pluginSelectionPanel.hbs
war/src/main/js/templates/pluginSetupWizard.hbs
war/src/main/js/templates/progressPanel.hbs
war/src/main/js/templates/successPanel.hbs
war/src/main/js/templates/welcomePanel.hbs
war/src/main/js/util/jenkins.js
war/src/main/less/pluginSetupWizard.less
war/src/main/webapp/WEB-INF/web.xml
war/src/main/webapp/css/icons/icomoon.css
war/src/main/webapp/css/icons/icomoon/icomoon.eot
war/src/main/webapp/css/icons/icomoon/icomoon.svg
war/src/main/webapp/css/icons/icomoon/icomoon.ttf
war/src/main/webapp/css/icons/icomoon/icomoon.woff
war/src/test/js/pluginSetupWizard-spec.js
http://jenkins-ci.org/commit/jenkins/036a8e94ed37cf851f0cafb9cb12c21e3496ed7c
Log:
[FIX JENKINS-9598] Add plugin selection wizard on first launch
Also ... unbundling of plugins from Jenkins core.
Code changed in jenkins
User: Daniel Beck
Path:
core/src/main/java/hudson/ClassicPluginStrategy.java
core/src/main/java/hudson/LocalPluginManager.java
core/src/main/java/hudson/PluginManager.java
core/src/main/java/hudson/PluginWrapper.java
core/src/main/java/hudson/init/InitStrategy.java
core/src/main/java/hudson/model/UpdateCenter.java
core/src/main/java/hudson/model/UpdateSite.java
core/src/main/java/hudson/util/HttpResponses.java
core/src/main/java/jenkins/I18n.java
core/src/main/java/jenkins/diagnostics/PinningIsBlockingBundledPluginMonitor.java
core/src/main/java/jenkins/install/InstallState.java
core/src/main/java/jenkins/install/InstallUtil.java
core/src/main/java/jenkins/model/AssetManager.java
core/src/main/java/jenkins/model/Jenkins.java
core/src/main/java/jenkins/util/ResourceBundleUtil.java
core/src/main/java/jenkins/util/xml/XMLUtils.java
core/src/main/resources/jenkins/diagnostics/PinningIsBlockingBundledPluginMonitor/message.jelly
core/src/main/resources/jenkins/diagnostics/PinningIsBlockingBundledPluginMonitor/message.properties
core/src/main/resources/jenkins/diagnostics/PinningIsBlockingBundledPluginMonitor/message_ja.properties
core/src/main/resources/jenkins/diagnostics/PinningIsBlockingBundledPluginMonitor/message_pt_BR.properties
core/src/main/resources/jenkins/install/pluginSetupWizard.properties
core/src/main/resources/jenkins/install/pluginSetupWizard_de.properties
core/src/main/resources/jenkins/install/pluginSetupWizard_es.properties
core/src/main/resources/lib/layout/layout.jelly
core/src/test/java/hudson/ClassicPluginStrategyTest.java
core/src/test/java/hudson/util/JSONObjectResponseTest.java
core/src/test/java/jenkins/util/ResourceBundleUtilTest.java
core/src/test/java/jenkins/xml/XMLUtilsTest.java
core/src/test/resources/jenkins/xml/config.xml
plugins/pom.xml
test/pom.xml
test/src/test/java/hudson/ClassicPluginStrategyTest.java
test/src/test/java/hudson/PluginManagerInstalledGUITest.java
test/src/test/java/hudson/PluginManagerTest.java
test/src/test/java/hudson/PluginManagerTest2.java
test/src/test/java/hudson/model/UpdateCenterConnectionStatusTest.java
test/src/test/java/hudson/model/UpdateCenterPluginInstallTest.java
test/src/test/java/jenkins/I18nTest.java
test/src/test/java/jenkins/install/InstallUtilTest.java
war/.gitignore
war/Gruntfile.js
war/gulpfile.js
war/package.json
war/pom.xml
war/src/main/js/api/pluginManager.js
war/src/main/js/api/plugins.js
war/src/main/js/pluginSetupWizard.js
war/src/main/js/pluginSetupWizardGui.js
war/src/main/js/templates/errorPanel.hbs
war/src/main/js/templates/incompleteInstallationPanel.hbs
war/src/main/js/templates/loadingPanel.hbs
war/src/main/js/templates/offlinePanel.hbs
war/src/main/js/templates/pluginSelectionPanel.hbs
war/src/main/js/templates/pluginSetupWizard.hbs
war/src/main/js/templates/progressPanel.hbs
war/src/main/js/templates/successPanel.hbs
war/src/main/js/templates/welcomePanel.hbs
war/src/main/js/util/jenkins.js
war/src/main/less/pluginSetupWizard.less
war/src/main/webapp/WEB-INF/web.xml
war/src/main/webapp/css/icons/icomoon.css
war/src/main/webapp/css/icons/icomoon/icomoon.eot
war/src/main/webapp/css/icons/icomoon/icomoon.svg
war/src/main/webapp/css/icons/icomoon/icomoon.ttf
war/src/main/webapp/css/icons/icomoon/icomoon.woff
war/src/test/js/pluginSetupWizard-spec.js
http://jenkins-ci.org/commit/jenkins/0d4d93d4502b63494ca8565b7bcad21abbf79519
Log:
Merge pull request #1995 from tfennelly/2.0-with-plugin-wizard
[FIX JENKINS-9598] 2.0 with plugin wizard
Compare: https://github.com/jenkinsci/jenkins/compare/e0919f1a46ea...0d4d93d4502b
With regard to apgray's proposal, I'm still not seeing the need for a different mechanism for installing plugins (even just initially) than the one we already have: the Plugin Manager.
If it's too hard to figure out that you should use the Plugin Manager to install plugins, we should improve the navigation or provide hints to the user to ease that learning curve.
If it's too hard to find the plugins you want to install in the Plugin Manager we should address that, possibly by changing the categorization, introducing a rating or popularity system, or even adding an initial wizard to guide them through selection of the most common plugins.
What we shouldn't do is introduce a redundant way to install plugins which has the side-effect of eliminating/reducing the need for users to know about the Plugin Manager. If a newbie user does their initial install via the proposed questionare-based custom bundle builder, they may well think that that's just the way that plugins are managed in Jenkins. When they next need a plugin, they may go back to that wizard, and try to answer the questions in a way to get it (and likely fail, since the questionare would be way too complicated if it covered all possible plugins), thinking that the plugins available through the bundle builder are all there are.
The vibrant plugin community is one of the things that makes Jenkins great. Let's not shoot ourselves in the feet by hiding it from the users.