The Jenkins rename has been rather passionate and democratic,
now going forward we as a user need to decide what we are going
to do.
As I see it we have two options.
1) Do nothing, continue with the Oracle Hudson branch.
2) Put in a bit of effort and go with Jenkins.
The first option will be a lot easier to "sell" to my management.
One problem that we've encountered frequently in the past with Hudson
is stability after upgrades. Hudson's main screen effectively encourages
an upgrade to the latest release, but our experience is that release
often contains regressions and new bugs. On a number of occasions
we have upgraded in order to install a new plug-in but then had to
roll back due to other issues. We then spend time investigating
intermediate releases until we find a solid one with the new features
or fixes that we need but without the bleeding-edge bugs.
If Jenkins could improve the situation by releasing a -STABLE branch
which is tested more rigorously and updated less frequently, this
would be a real benefit to the user community. It would give me
something solid I can use to argue with management that we need to
make the switch.
(There's always a chance that Oracle could do this with Hudson I guess.)
Thanks and Best Regards,
Ed Randall
Senior Developer - JEE Systems Group
Wall Street Systems
____________________________________________________________
TRY FREE IM TOOLPACK at http://www.imtoolpack.com/default.aspx?rc=if5
Capture screenshots, upload images, edit and send them to your friends
through IMs, post on Twitter®, Facebook®, MySpace™, LinkedIn® – FAST!
Hello,
Same situation here. Corporate user, installation with many slaves on many platforms. Each upgrade is a gamble.
Soon we will have to choose - Hudson vs Jenkins. Currently Jenkins seems ahead, but if Oracle comes up with a good plan for the future, including an increase in QA, it will be hard to sell Jenkins to management…
Regards,
_______________
Costin Caraivan
Our organisation is a fairly heavy Hudson user. We have recently
hired a full-time build engineer with responsibility for migrating
a diverse variety of project environments to be managed under
Hudson control.
The Jenkins rename has been rather passionate and democratic,
now going forward we as a user need to decide what we are going
to do.
As I see it we have two options.
1) Do nothing, continue with the Oracle Hudson branch.
2) Put in a bit of effort and go with Jenkins.
The first option will be a lot easier to "sell" to my management.
One problem that we've encountered frequently in the past with Hudson
is stability after upgrades.
Hudson's main screen effectively encourages
an upgrade to the latest release, but our experience is that release
often contains regressions and new bugs. On a number of occasions
we have upgraded in order to install a new plug-in but then had to
roll back due to other issues. We then spend time investigating
intermediate releases until we find a solid one with the new features
or fixes that we need but without the bleeding-edge bugs.
If Jenkins could improve the situation by releasing a -STABLE branch
which is tested more rigorously and updated less frequently, this
would be a real benefit to the user community. It would give me
something solid I can use to argue with management that we need to
make the switch.
(There's always a chance that Oracle could do this with Hudson I guess.)
Thanks and Best Regards,
Ed Randall
Senior Developer - JEE Systems Group
Wall Street Systems
____________________________________________________________
TRY FREE IM TOOLPACK at http://www.imtoolpack.com/default.aspx?rc=if5
Capture screenshots, upload images, edit and send them to your friends
through IMs, post on Twitter®, Facebook®, MySpace™, LinkedIn® – FAST!
I was thinking of something more like many other open-source projects where they maintain a
stable branch somewhat independently of the main development trunk, but occasionally important
fixes are merged back (Linux kernel odd/even numbered releases come to mind though I am
unfamiliar with their exact process). The triage decision for this would have to be based on
both -STABLE user demand and testing. Fixes to be proven in -DEV first. From time to time
the development branch reaches a milestone and is stabilised, after a period of intense testing
and fixing a major release is declared. That release is copied over to -STABLE and becomes
the new stable head version until the next development milestone.
Having broken free of Oracle, Jenkins really needs to raise the bar now to prove itself for
production. You guys can still hack away on the -DEV leading edge but many of us are a
bit more conservative, we prefer the dull predictability of a solid -STABLE release to all
that excitement!
A roadmap would be useful at this point, to indicate milestones and where the project is going.
One question regarding the plan that Oracle + Sonatype is going to
propose (because my understanding is that the plan is common): How the
"Hudson community" will be integrated into it? I mean, will the
community still be considered as a major contributor as it was before
"The Event" and fully part of the decision making, thus being able to
bring big unplanned changes, or will it act more as a validator of
what's proposed by O+S?
Thanks,
Romain
2011/2/1 ted <ted...@gmail.com>:
---------- Forwarded message ----------
From: Richard Bywater <rbyw...@gmail.com>
Date: Wed, Feb 2, 2011 at 8:54 AM
Subject: Re: Request: Jenkins-STABLE branch
Hi Jesse
I think one issue with the "do not upgrade" approach is that its hard
to know when it is safe to upgrade. For instance we're sitting on
1.372 currently. Everytime a new release comes out I think that its
time to upgrade but have no idea whether it's stable enough to move
to.
Personally I think unless QA of releases in increased (although I'm
not sure exactly how), I think that the Oracle offering will eat
Jenkins alive in the corporate world (as presumably they've got whole
teams of people they can throw at it)
My 2 cents...
Richard.
On Tue, Feb 1, 2011 at 2:55 PM, Richard Bywater <rbyw...@gmail.com> wrote:
>
> I think one issue with the "do not upgrade" approach is that its hard
> to know when it is safe to upgrade. For instance we're sitting on
> 1.372 currently. Everytime a new release comes out I think that its
> time to upgrade but have no idea whether it's stable enough to move
> to.
Yep, there have been a few false starts for this kind of thing. What I
do in my shop is run Hudson privately for a couple of days when I'm
thinking about upgrading. I have all our core plugins, and I build a
few of the Apache Maven modules so that if I find any bugs I can
report bugs with them and have a fully working config.xml for someone
outside my company to reproduce the problem.
I think this is the best that can be done right now. Maybe if the
anonymous usage data was more real time, it would shine a brighter
light on which versions might be safest to hop to.
I was really hoping for a bit more than that.
Previously there was a hudson-download web page that showed some user-approval statistics
which gave a bit of an indication as to the stability of a build. It was insufficient and I don't think
this proposal is an awful lot different.
I was thinking of something more like many other open-source projects where they maintain a
stable branch somewhat independently of the main development trunk, but occasionally important
fixes are merged back (Linux kernel odd/even numbered releases come to mind though I am
unfamiliar with their exact process).
The triage decision for this would have to be based on
both -STABLE user demand and testing. Fixes to be proven in -DEV first. From time to time
the development branch reaches a milestone and is stabilised, after a period of intense testing
and fixing a major release is declared. That release is copied over to -STABLE and becomes
the new stable head version until the next development milestone.
This vote for release seems interesting, I saw Maven developers doing this too.
However, there's a something I didn't see anyone mention - *plugin quality*. Even if the Jenkins core is stable, the plugins make or break an installation or upgrade.
Right now each plugin has its own release + QA cycle and there's no easy way to see the maturity of the plugin. Compare this with Maven, for example:
http://maven.apache.org/plugins/ -> core Maven plugins, usually solid
http://mojo.codehaus.org/plugins.html -> other Maven plugins, with levels of maturity: Production, Pre-release, Sandbox, Graveyard.
The Hudson/Jenkins plugin list doesn't help much - ok, there are hundreds of plugins. But which of them can be relied on now and in the future, and which are just code drops no one is maintaining?
I could help with the Wiki editing, but the plugin developers need to rate their plugins according to several categories. For example Berlios has a nice rating system:
1 - Planning
2 - Pre-Alpha
3 - Alpha
4 - Beta
5 - Production/Stable
6 - Mature
7 - Inactive
Regards,
_______________
Costin Caraivan
From: jenkin...@googlegroups.com [mailto:jenkin...@googlegroups.com] On Behalf Of Erik Bertelsen
Sent: 2 februarie 2011 16:08
To: jenkin...@googlegroups.com
Subject: Re: Request: Jenkins-STABLE branch
I'd like to suggest something that I have learned to appreciate from the Apache Tomcat project:
Hi
My plugin (Starteam) has additional complication of being dependent on proprietary piece of licensed software.It severely limits the testing pool.
Probably a lot of people test new Jenkins release in their environment before
deploying it into production, which includes also some testing of plugins.
Another thing which could help little bit is to share this information in some
systemac way.
Also up to date results from anonymous Jenkins usage data could be useful -
e.g. some 2D plot, on one axis hudson version, on the other plugin names and
showing number of deplyments (or e.g. mark given coordinate as green if there
is more then 5/10/? deployments of the given plugin with given Jenkins release
- this would asseme that if plugin is running on more the 5/10/? instances, it
probably works or at least does't cause any significant problems)
Does it sound reasonable to you?
So, basically, it would be an anonymous usage survey, coming from the
Jenkins update center. Is this already implemented or it's meant to be a
new plugin?
Something which could show the number of deployments and the
combinations of versions, maybe even some details about the size of the
deployment (X slaves, Y platforms, Z jobs) would be great.
The base question is: I'm an existing user and I want to upgrade. What
do I chose? Where can I find some relevant information about the upgrade
decision?
Regards,
_______________
Costin Caraivan
We actually did it for a while, so let me explain it once again here:
- In the project top page, there used to be two download links.
One that said "latest&greatest", which pointed to the last release,
and the other that said "old&stable", which pointed to one of the
earlier versions that are known to work well.
- The goal of the latest & greatest was to deliver bug fixes and
new features that plugin developers needed quickly.
- The goal of the old & stable was to make it easy for people to
find old stable release, at the expense of losing some cutting edge
features.
We can further build upon it, like:
- Produce a separate update center that only advertises the old&stable
releases?
- Perhaps we can even try to backport some important bug fixes
to generate 1.X.1, 1.X.2, and so on, from the old&stable line.
We'll have to count on more volunteers to help with this effort,
though, in terms of cherry-picking changes from the trunk.
In the past few months, I think different people told us that the
release process should be revisited. I think we should make some changes
--- we just need to figure out exactly how to do it.
--
Kohsuke Kawaguchi | CloudBees, Inc. | http://cloudbees.com/
I think this is where the Andrew's original idea of endorsed stable
release would help.
We actually did it for a while, so let me explain it once again here:- In the project top page, there used to be two download links.
One that said "latest&greatest", which pointed to the last release,
and the other that said "old&stable", which pointed to one of the
earlier versions that are known to work well.- The goal of the latest & greatest was to deliver bug fixes and
new features that plugin developers needed quickly.- The goal of the old & stable was to make it easy for people to
find old stable release, at the expense of losing some cutting edge
features.We can further build upon it, like:
- Produce a separate update center that only advertises the old&stable
releases?- Perhaps we can even try to backport some important bug fixes
to generate 1.X.1, 1.X.2, and so on, from the old&stable line.
We'll have to count on more volunteers to help with this effort,
though, in terms of cherry-picking changes from the trunk.
Nice suggestion :)
Don't really know about the core, but for the plugins, I think that the
Hudson plugins are very similar to Firefox add-ons.
It might be a good idea to see how the Mozilla guys handle this. I'm
pretty sure that the promoted plugins (those on addons.mozilla.org) have
at least some minimal QA checks before being made available. And there's
also an add-on black list in Firefox, so that known trouble-makers can
be blocked.
Maybe there's a Firefox developer somewhere around here which can
enlighten us? :)
_______________
Costin Caraivan
I'm not aware of any implementation. Finally I had some time to write PoC of
this idea - table attached as "topPlugins.html". It's only for top 30 plugins.
The box is green if there are 10 or more installations of this plugin on given
Hudson version, otherwise red. First number is Hudson version, second is
number of instalations of plugin on this Hudson version.
The table is quite huge and for all plugins it would be even less lucid.
Therefore I tried somehow summarize this data. I took into an account only
plugins, which have 10 or more installation on given Hudson version and sum
number of such plugins for each version. Result is attached as
"topVersions.html" and these plugins are listed for completeness. I could
imagine some more complex function taking into accnout number of deployments
of given Jenkins version itself, how lager is the deployment or how old the
version is. This is just a PoC, if the community is interested and especially
KK et al. as this should be published on Jenkins web page (implementing it as
a pluging doesn't seem to be reasonable)
Both tables are based on data from July 2010 (therefore version is refered as
Hudson version).