It's Not Time for OSS Release Cycle Synchronization 110
Bakkies Botha writes "Ars Technica weighs in with some detailed analysis on the controversial issue of open source release cycle synchronization. Ars explains how time-based release cycles work and takes a close look at how the release management strategy suggested by Ubuntu founder Mark Shuttleworth would impact open source software projects. Ars concludes that Shuttleworth's proposal isn't currently viable and argues that the BFDL is overstating the potential to simplify development with better version control tools. Ars also examines a counter-proposal offered by KDE developer Aaron Seigo and explains how it enables users to get the same benefits of synchronization without disrupting upstream development."
if I was in charge of a FOSS project (Score:5, Insightful)
Translation of Seigo's suggestion (Score:5, Insightful)
This was a good article. The Internet was actually useful today.
Imho (Score:3, Insightful)
Re:if I was in charge of a FOSS project (Score:5, Insightful)
Re:if I was in charge of a FOSS project (Score:5, Insightful)
I think it's great the way it is: each distro has their own method, you can pick the one that's right for you. It's the ultimate in technical Darwinism.
Re:if I was in charge of a FOSS project (Score:2, Insightful)
Best definition: "It'll be ready when it's ready."
This is the same truth, whether you're talking about open or closed-source, free/libre or proprietary software.
Trying to alter this basic truth results in death marches, bad, bug-ridden software, disaffected developers, dissatisfied users, and "we'll fix that in the next release" bullsh*t.
If it ain't broke... (Score:2, Insightful)
Re:if I was in charge of a FOSS project (Score:3, Insightful)
Re:if I was in charge of a FOSS project (Score:5, Insightful)
Re:A lot of buzz (Score:5, Insightful)
One that targets non-developer desktop users ? Or even servers ?
As a sysadmin one of the many tasks I do to vanilla installs is to either uninstall the dev tools or restrict them to a particular group. Many exploits automatically download source for their rootkits or trojans etc. and compile it on the machine. Not having dev tools available to the user that the web server is running under, for example, makes these types of attacks more difficult and helps limit what an attacker can do if he does gain access (imagine a scenario where the attacker has no shell but can tell the web server to execute commands
In other words, if you have no pressing need for dev tools then it's wiser not to have them installed. If you're a developer then you can easily add them via the repositories.
Re:A lot of buzz (Score:2, Insightful)
Sync would please ISVs (Score:5, Insightful)
Anything that makes it easier to for major software vendors to release and support software makes Linux stronger.
Way To Go Aaron (Score:5, Insightful)
Aaron's post is a must-read for anyone vaguely interested in the topic. In particular,
It is not overly dramatic to say that if we make Free software development overly sterile via choice of process, there will be a commensurate diminishment in participation and momentum. I interpret that as Aaron recognizing the corrosive effect on the entire dev community by adopting Shuttleworth's scheme.
Better still, Aaron offers constructive alternatives. It's really nice to read and should be a template for most blogging.
Someone please explain why Shuttleworth's idea hasn't been swatted down the day he posted it.
Today's lesson: Learn to disagree without personal attacks and offer viable alternatives.
Re:Not only a development issue (Score:3, Insightful)
Re:A lot of buzz (Score:3, Insightful)
- Less support costs, they probably share a lot of packages in the backend
- Better consistency of software quality (all have the same release window to plan for)
Sure, things don't always go after plan and some projects would miss deadline windows and such. But compare that to the alternative, "when it's ready" basicly means they'll release all over the place and a distro would be an odd mix of old and new. If all projects knew this was the window I'm pretty sure most would manage to hit it. I think the "anti-synching" argument is rather poor because it's better to try to plan a scope than not making any plans at all. Seriously, the same applies inside a project and I assume you'd like all parts to have "releasable" code at the same time? Not easy if noone knows when it needs to be so.
I do think it's a bad idea, but not for any of the reasons you mention. I think this big break-and-release cycle will just lead to poorly tested software and a huge number of bugs after the synched release, since almost everyone will be waiting for that. I can deal with some new software on my distro, others can deal with some new software on their distros - but I think dealing with all new software would be an exercise in frustration, even with so many testing it.
Re:if I was in charge of a FOSS project (Score:3, Insightful)
Re:A lot of buzz (Score:3, Insightful)
Re:Way To Go Aaron (Score:2, Insightful)
As you said, we should learn to disagree without personal attacks and offer viable alternatives. Now that Aaron Seigo has provided an alternative view, we can discuss that as well and try to improve the overall process. If we can do that properly I see this only benifitting the FOSS Community.
Re:if I was in charge of a FOSS project (Score:2, Insightful)
Similarly, if you're doing leisure or volunteering programming, you can tell the world "It'll be ready when it's ready." Much of Open Source falls under this umbrella. Most of the business world does not. The professional programmer enforces up-front and on-going trade-offs between features, quality, and schedule risk. When they can't or won't (sometimes due to politics), then you get the bad stuff you mention. One way or another though, schedules are a business necessity.
I suspect that, even for volunteer programming, schedules can be useful. Deadlines force you to think about where you want to be by the time the deadline rolls around. They give you a goal. They force you to cut unneeded features and focus on the core strengths/concepts of your product.
Likewise, the lack of a schedule--especially the "It'll be ready when it's ready." attitude--can be severely damaging. If you haven't hammered out a detailed plan of what you want to accomplish and you've left it all open-ended, you can get lost spending lots of time choosing a programming language or gold-plating a feature that nobody will use. Is this why there are so many defunct OSS projects on SourceForge? I bet it's part of the reason... most software their has no business driver to give them momentum.
Re:A lot of buzz (Score:3, Insightful)
Re:Way To Go Aaron (Score:4, Insightful)
Shuttleworth is saying that if the distros synchronized, upstream developers would have better information about release cycles and could chose whether to target a particular release with their new features or not (essentially, when to branch for release and focus on stabilization). If it's not ready, then it's not ready and just shoot for 6 months later.
This guy Aaron makes a good point in that this shifts work upstream, but I don't agree that this is disruptive. Aaron's great idea? Have the distributors basically go into each and every project and make and manage the release branches themselves! Imagine someone else coming into your project and going "We're branching here because I said so". Gee, not very good with people is he?
If the distros synchronize, upstream can just ignore it if they feel like. There isn't really much of a downside. If you do chose to synchronize you can still have features released when they are ready, but deployments (releases/tarballs) happening on schedule. It's just a matter of which branches you merge.
On Ars' theory that big changes are prevented by a branch and merge, timed release approach, GCC has used a 3-stage (major change, improvement, stabilization) release cycle since GCC 3.1 in 2001. Rather large changes have been done since then until the 4.4 branch in development. Granted, Mark Mitchel has done a superb job at release management (i.e. cat herding) and recently had 3 more people join in in this job.
Even Linus does this fairly often (change too big, goes in next version so we can push this one out the door)
At best, distros could help with consulting and advising on this job, but the release planning and management must come from within each community. His point about shifting work is good, and release management for big, flaship projects could be provided by people from each company (as I'm sure redhat et al have people working on each project anyway), but big projects probably have something like it established anyway.
I'm still not seeing the downside to synchronized but ignorable schedules downstream.
Re:Counter-proposal? (Score:3, Insightful)
Bottom line is if you want the distro to help you, understand the distro first.