Join the DZone community and get the full member experience.Join For Free
Get the Edge with a Professional Java IDE. 30-day free trial.
The Eclipse Development Process (EDP) defines “incubation” as a phase that projects go through on their way to maturity. New projects start in incubation to allow the project’s committers time to familiarize themselves with the state of being an Eclipse project, give them time to start developing a following in the community, and allow them some leeway to make and correct early mistakes. Projects in incubation can make releases, but they must be pre-1.0 releases, and must be labeled as “Incubating”. Frankly, I think that incubation is a fantastic idea and intend to keep it very much a part of the EDP.
An interesting use of the incubation phase as emerged and is the topic of discussion on Bug 300000 (which sounds a little like the title of a really bad sci-fi movie): the perpetual incubator. Many mature Eclipse projects now have projects that are intended to remain in perpetual incubation. These never-grow-up “Peter Pan” projects are an excellent place to innovate, test new ideas, and grow functionality that may one day be moved into the mature project. It is a curious, however, that the very notion of an incubator project is essentially (though not explicitly) forbidden by the EDP in its current form.
With the next revision of the EDP, I’d like to acknowledge the notion of an “Incubator” project. In Bug 300000, Holger Voorman and others propose that we adopt the name “Labs” for this notion to conform with precedents set by other open source organizations. Frankly, though, I believe that we’ve already established our own precedent and intend to run with it (I’m sure you’ll let me know if you disagree).
As I see them, Incubators are operating projects that never have releases; they do not require yearly continuation reviews; and they are not part of the release train. Incubators have builds, and downloads. They conform to the standard incubation branding are subject to the IP due diligence rules outlined for incubating projects. Incubators do not graduate.
I’d like to avoid creating any new process around the notion of Incubators. I’m hopeful that it will be enough to change some of the language in the EDP (and the Incubation HOW TO document) to allow projects to simply declare themselves as an incubator and leave it at that.
Unfortunately, I think that we may have a language issue. An “Incubator” project is in the incubation phase. However, a project in the incubation phase is not necessarily an incubator. A project like Mint, that one day intends to graduate, is in incubation. The Examples and the Equinox Incubator projects never intend to graduate and so are incubator projects in the incubation phase.
Maybe it’ll help if I stop thinking about it so much.
Opinions expressed by DZone contributors are their own.