On Fri, 16 Mar 2001, Craig R. McClanahan wrote:

> For released components, or code used in a different subproject release, 
> it seems to me that you can have Agora-style development using the Commons
> workspace as proposed.  Which specific parts of the proposal lead you to
> believe that this is not the case?


The difference between commons and sandbox is that sandbox is open to all
jakarta projects and commiters. 

The commons are using the same model as Avalon or any other jakarta
project - with a set of existing commiters aproving new memebers and
controling the component. And this doesn't seem to work well for projects
and sharing - I haven't seen too many projects moving code out of their
workspace and into avalon for example. I'm sure Avalon people are as open
as "commons", and will accept code and contributions that follow their
rules.

The agora uses different rules - the projects have control over the code
they place there and they share it with other projects who decide to use
the component. Both projects will monitor and maintain the component -
without a "producer-consumer" relation. 


> If I believe that my component (currently part of my favorite
> subproject) is potentially reusable, and others agree, I'm going to
> propose it for Commons.  Assuming acceptance -- and that's mostly
> concerned with things like not dragging along dependencies on frameworks
> that hinder reusability -- I, and the other committers who want to share
> this component, will be the maintainers of record in the status file
> (point 15).

It's a valid action. 

What I would like to do is:
If my component is reusable and others agree, I will share it with other
projects in the agora workspace. By placing it in the agora workspace I
agree that other projects who decide to use the components will have the
same rights as me over the component. And I can also look at other
components and if I find something that I need I can use it - knowing that
I will have the same control over the component shared by another project
as the original source.  That would allow other components to have trust 
in the component I am sharing, and know that they are co-maintainers and
don't risk that I'll make changes that will affect them later. And will
allow me to trust components that I want to use, without risking that the
original commiters will do changes that will affect me.

Please don't tell me that the maintainers of a piece of code will preserve
backward compatiblity - remember XmlMapper :-)

Of course, I may use components from "commons" if they are stable and
boring ( i.e. no active development happens ) - and hope the maintainers
will not brake my code. 

Note that agora doesn't require active contributions to a component in
order to have a vote ( the veto that matters when the active contributors 
are braking my code ). And that's the difference between the 2 workspaces.


Eventually, if other projects decide to trust me and the component and
start using it, we may need to have separate releases of the component -
so users of jakarta-foo-7.0 and jakarta-bar-11.0 can upgrade and treat the
component as a separate entity in both projects. But I don't want to have
to "close" my component by moving it into commons.

> If this is all according to the rules of Commons, where does it say,
> specifically, that you cannot have the development style you like?  Or,
> where does it *not* say something that would prevent the kind of
> interference you are worried about?

The development style for components in commons is what I don't trust. I
don't think it'll provide enough guarantees for projects who want to
reuse. I like the style in agora/sandbox - where review is shared and 
projects have control over what they use, if they need to.

Costin


Reply via email to