This page is no longer maintained — Please continue to the home page at www.scala-lang.org

From incubator to greenhouse to trunk

7 replies
odersky
Joined: 2008-07-29,
User offline. Last seen 45 weeks 6 days ago.

Like any large scale open source project Scala faces the problem how
contributions can be best integrated into the code base. Integrating
them too fast risks instability, and lack of common vision.
Integrating them too hesitantly risks stagnation and turning valuable
contributors away.

To address this problem, we have decided to work with a staged
approach, involving a Scala ``incubator'' and a Scala ``greenhouse''
as two stages for extensions and possible future additions to the
standard Scala distribution (named ``trunk'' in the following).

The incubator was launched some weeks ago by Miles Sabin. It's purpose
is to be a highly visible hosting platform for Scala projects that
should have widespread appeal and that are possible candidates for
future inclusion in a Scala release. Projects in incubator go each at
their own pace. Typically each project has one or more owners, but
there is no central instance that controls what goes into incubator
overall (except for making hosting arrangements). Two projects have
already started up: I/O, led by Jesse Eichar, and modularization,
led by Josh Suereth.

The greenhouse is more centralized. It's role is to serve as a
concrete candidate for an alternate version of trunk which usually
includes the standard Scala distribution as a subset. Greenhouse code
is not yet cast in stone but is expected to build at all times and to
perform as well as trunk. There will be frequent merges of the latest
trunk with greenhouse code and there will be nightly builds.
Greenhouse jars will be made available from EPFL alongside
the standard distribution. There will also be regular assessments to
decide which parts of greenhouse are ready to be promoted to trunk.

The delta between greenhouse code and trunk code can be very flexible.
Some parts of greenhouse might introduce a whole package hierarchy,
where others could just add a couple of methods to existing trunk
classes.

Greenhouse has a ``gardener'', who acts as a central owner, deciding
what goes in, and who makes sure that everything works smoothly
together. Paul Phillips has agreed to serve in that role. He will
certainly need help, and I assume he will also delegate the
development of some parts to others, but he'll keep the final say of
what goes in.

In a sense, greenhouse is intended to recreate some of the feel of the
early days of Scala when development could be rapid because decisions
could be easily changed later on. With trunk that's now more difficult
because of the large and growing base of installed code. But if you
want to live a bit on the bleeding edge and value cool features over
100% stability of APIs you might well want to choose to build your
project on greenhouse instead of trunk.

By contrast, incubator casts a much wider net, combining projects that
will migrate to greenhouse/trunk alongside projects that will continue
to exist as separate entities.

So I believe both these efforts are ideally complementary, and I hope
that they will be enablers for lots of great contributions to the Scala
eco-system. Many thanks to Miles and Paul for running these efforts!

Cheers

ijuma
Joined: 2008-08-20,
User offline. Last seen 22 weeks 2 days ago.
Re: From incubator to greenhouse to trunk

On Wed, 2009-11-25 at 10:08 +0100, martin odersky wrote:
> So I believe both these efforts are ideally complementary, and I hope
> that they will be enablers for lots of great contributions to the Scala
> eco-system.

Sounds good to me. Thanks for pushing for this.

> Many thanks to Miles and Paul for running these efforts!

Indeed, thanks!

Best,
Ismael

Kevin Wright
Joined: 2009-06-09,
User offline. Last seen 49 weeks 3 days ago.
Re: From incubator to greenhouse to trunk
Out of curiousity, what impact will this have on version control for trunk?
Incubator runs on github, and I doubt that Paul would be gardening unless the greenhouse also used git. :)
To simplify promoting code from the greenhouse, will mainline Scala also be upgrading from svn?


On Wed, Nov 25, 2009 at 9:30 AM, Ismael Juma <mlists@juma.me.uk> wrote:
On Wed, 2009-11-25 at 10:08 +0100, martin odersky wrote:
> So I believe both these efforts are ideally complementary, and I hope
> that they will be enablers for lots of great contributions to the Scala
> eco-system.

Sounds good to me. Thanks for pushing for this.

>  Many thanks to Miles and Paul for running these efforts!

Indeed, thanks!

Best,
Ismael


Jonas Bonér 3
Joined: 2009-11-25,
User offline. Last seen 42 years 45 weeks ago.
Re: From incubator to greenhouse to trunk

This sounds excellent. I really like the idea of a place for ideas to
thrive and be tested for a wider audience. Hopefully I'll be able to
contribute.
/Jonas

2009/11/25 martin odersky :
> Like any large scale open source project Scala faces the problem how
> contributions can be best integrated into the code base. Integrating
> them too fast risks instability, and lack of common vision.
> Integrating them too hesitantly risks stagnation and turning valuable
> contributors away.
>
> To address this problem, we have decided to work with a staged
> approach, involving a Scala ``incubator'' and a Scala ``greenhouse''
> as two stages for extensions and possible future additions to the
> standard Scala distribution (named ``trunk'' in the following).
>
> The incubator was launched some weeks ago by Miles Sabin. It's purpose
> is to be a highly visible hosting platform for Scala projects that
> should have widespread appeal and that are possible candidates for
> future inclusion in a Scala release. Projects in incubator go each at
> their own pace. Typically each project has one or more owners,  but
> there is no central instance that controls what goes into incubator
> overall (except for making hosting arrangements). Two projects have
> already started up: I/O, led by Jesse Eichar, and modularization,
> led by Josh Suereth.
>
> The greenhouse is more centralized. It's role is to serve as a
> concrete candidate for an alternate version of trunk which usually
> includes the standard Scala distribution as a subset. Greenhouse code
> is not yet cast in stone but is expected to build at all times and to
> perform as well as trunk. There will be frequent merges of the latest
> trunk with greenhouse code and there will be nightly builds.
> Greenhouse jars will be made available from EPFL alongside
> the standard distribution. There will also be regular assessments to
> decide which parts of greenhouse are ready to be promoted to trunk.
>
> The delta between greenhouse code and trunk code can be very flexible.
> Some parts of greenhouse might introduce a whole package hierarchy,
> where others could just add a couple of methods to existing trunk
> classes.
>
> Greenhouse has a ``gardener'', who acts as a central owner, deciding
> what goes in, and who makes sure that everything works smoothly
> together. Paul Phillips has agreed to serve in that role. He will
> certainly need help, and I assume he will also delegate the
> development of some parts to others, but he'll keep the final say of
> what goes in.
>
> In a sense, greenhouse is intended to recreate some of the feel of the
> early days of Scala when development could be rapid because decisions
> could be easily changed later on. With trunk that's now more difficult
> because of the large and growing base of installed code. But if you
> want to live a bit on the bleeding edge and value cool features over
> 100% stability of APIs you might well want to choose to build your
> project on greenhouse instead of trunk.
>
> By contrast, incubator casts a much wider net, combining projects that
> will migrate to greenhouse/trunk alongside projects that will continue
> to exist as separate entities.
>
> So I believe both these efforts are ideally complementary, and I hope
> that they will be enablers for lots of great contributions to the Scala
> eco-system. Many thanks to Miles and Paul for running these efforts!
>
> Cheers
>
>  -- Martin
>

odersky
Joined: 2008-07-29,
User offline. Last seen 45 weeks 6 days ago.
Re: From incubator to greenhouse to trunk

On Wed, Nov 25, 2009 at 10:50 AM, Kevin Wright
wrote:
> Out of curiousity, what impact will this have on version control for trunk?
> Incubator runs on github, and I doubt that Paul would be gardening unless
> the greenhouse also used git. :)
> To simplify promoting code from the greenhouse, will mainline Scala also be
> upgrading from svn?
>
Not immediately, but in the medium term that's quite likely, yes.

Viktor Klang
Joined: 2008-12-17,
User offline. Last seen 1 year 27 weeks ago.
Re: From incubator to greenhouse to trunk
Wow!

I love it!


--
Viktor Klang
| "A complex system that works is invariably
| found to have evolved from a simple system
| that worked." - John Gall

Blog: klangism.blogspot.com
Twttr: twitter.com/viktorklang
Code: github.com/viktorklang
extempore
Joined: 2008-12-17,
User offline. Last seen 35 weeks 3 days ago.
Re: From incubator to greenhouse to trunk

On Wed, Nov 25, 2009 at 09:50:35AM +0000, Kevin Wright wrote:
> Incubator runs on github, and I doubt that Paul would be gardening
> unless the greenhouse also used git. :)

We haven't worked out those details yet, but you're right, I couldn't do
it without git. I think there is a tacit agreement that git will happen
eventually, but I'm sure there are a lot of details which must be dealt
with first. In the meantime we can leverage the greenhouse arrangement
to work out some of those details since I'll be greenhousing the DVCS as
well as its contents.

Kevin Wright
Joined: 2009-06-09,
User offline. Last seen 49 weeks 3 days ago.
Re: From incubator to greenhouse to trunk
I think that a lot of people would be happy if the greenhouse provided a standard git-based into trunk.At the moment I get the impression that most folk rolling their own...
This makes it not-so-easy to collaborate on branches

On Wed, Nov 25, 2009 at 8:02 PM, Paul Phillips <paulp@improving.org> wrote:
On Wed, Nov 25, 2009 at 09:50:35AM +0000, Kevin Wright wrote:
> Incubator runs on github, and I doubt that Paul would be gardening
> unless the greenhouse also used git. :)

We haven't worked out those details yet, but you're right, I couldn't do
it without git.  I think there is a tacit agreement that git will happen
eventually, but I'm sure there are a lot of details which must be dealt
with first.  In the meantime we can leverage the greenhouse arrangement
to work out some of those details since I'll be greenhousing the DVCS as
well as its contents.

--
Paul Phillips      | Adultery is the application of democracy to love.
Imperfectionist    |     -- H. L. Mencken
Empiricist         |
i pull his palp!   |----------* http://www.improving.org/paulp/ *----------

Copyright © 2012 École Polytechnique Fédérale de Lausanne (EPFL), Lausanne, Switzerland