I'm coming back to age old discussions of JENKINS-9598
<https://issues.jenkins-ci.org/browse/JENKINS-9598>.

If you look at the out of the box experience of Jenkins today, it is really
dated and not ideal. We have CVS and Subversion bundled out of the box,
which is much less commonly used than before. We have some other very
commonly used plugins, such as git plugin, parameterized-trigger plugin,
envinject plugin, and so on not available out of the box.

In addition, the critical new subsystem like workflow plugins are not made
available out of the box to users, despite the fact that the industry is
shifting from old days of build & test automation to continuous delivery.

For many of us in this list who know Jenkins inside out, this is not a
problem --- the first thing I do when I start a new Jenkins is to go to
plugin manager and install a whole bunch of plugins. How hard can that be,
you might ask.

But stop for a second and think about the fact that in the past 12 months,
we've added more than 30,000 installations. More and more new users are
coming to Jenkins. Many of the admins of those 30,000 installations each
had to learn what plugins are useful, which of the dozen "git" plugin is
necessary, and discover that the workflow plugin is the way forward for
writing a complex orchestration.

I think we are creating less than steller experience for those users. It
creates a wrong perception, and makes the barrier of entry harder.


Back then we talked about this (and you can see some comment in
JENKINS-9598 as well as the meeting minutes
<http://meetings.jenkins-ci.org/jenkins/2013/jenkins.2013-07-10-18.00.log.html#l-6>),
we have collectively felt that we don't just keep on adding more bundled
plugins, and that the proper solution is to ship a lean jenkins.war that
has a better setup wizard like experience, and among other things (such as
some initial system config setup of key parameters), it'd help people
install the right set of plugins.

JENKINS-9598 was filed 4 years ago, and that meeting discussion happened 2
years ago. I think it's safe to say as a community we have failed to
address this problem. It is understandable because this is not a pain that
many of the core contributors feel (and so we put more weight on downsides
like download size increase.) I'm not trying to argue that the consensus
built in JENKINS-9598 is wrong, but I feel that we are letting perfect get
in the way of better.


So this is a proposal to make one time reshuffling of the plugins that
Jenkins bundles out of the box. We add the following plugins and their
dependencies:

   - git
   - parameterized-trigger
   - workflow

Then remove the following plugins:

   - cvs (split from core in 1.340, 929KB)
   - ant (split from core in 1.430, 90KB)
   - maven-plugin (split from core in 1.296, 11MB)


This is a first step of improving the out of the box experience, and this
journey will include a better setup wizard down the road, at which point we
will get rid of the bundled plugins more or less entirely. This change will
also not jeopardize the setup wizard change down the road. Unlike those
plugins that were split off from the core, plugins that were born outside
core can be unbundled any time at a later point without any backward
compatibility consequences.

The proposed change includes some plugin removals. This has a backward
compatibility implication --- when we unbundle plugin that was split from
core at 1.X, people upgrading directly from version <1.X will see a loss of
functionality until s/he installs the plugin from plugin manager. S/he can
avoid this problem by first upgrading to the version of Jenkins that
bundles them as a plugin (say current LTS 1.609) instead of going straight
to the latest. So the damage is limited. Given that and the fact that 1.430
is released 4 years ago, I think this compatibility implication is very
minor that only affects a very small set of people.

I've added maven-plugin in the chopping block because it is by far the
biggest plugin coming in at 11MB. Some of the concerns people raised in
JENKINS-9598 was the increased download size. I'm worried a lot less about
it than the out of the box experience, but nonetheless I tried to be
considerate for those people. Removing 11MB from jenkins.war would offset
the size increase coming from newly bundled plugins.

Any objections, thoughts, feedbacks?

-- 
Kohsuke Kawaguchi

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAN4CQ4zHznf-0bTPOgjBv29EFWRbcYTidB7M7uGWgZ4xO-sh9A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to