[ZF] Please comment! Re: Zope Development Process
Lennart Regebro
regebro at nuxeo.com
Wed Sep 27 08:48:34 EDT 2006
Baiju M wrote:
> If we require a special feature which is not available in that 3rd-party
> code,
> how egg is going to help here? For example, if we want a feature 'foo'
> in 'doctest', but 'doctest' will only have that feature in next release.
Then you need to get that feature into that code.
This problem is no different from anything, including features in Python
or c-libraries. ;)
How much should be in the ZF repo and how much should be outside is
amongst other considerations, a matter of weighing two issues:
1. If you have things close to each other, in the same repo, it's easier
to contribute. It's also easier to avoid putting the features on the
wrong level. For example, if you are working on a blog software, that
uses a 3rd party library, and you don't have write access to that
library, you would typically end up adding the feature in the blog
software instead. Less repositories make it easier to put features where
they should be.
2. When you have write access to everything it's easy to just use trunk
of every module and add stuff as you go along. This results in unstable
APIs and feature sets, and when several people does this it also
frequently means that the API becomes inconsistent.
Basically, it's a part of weighing development speed vs stability. This
is not a big problem with a small set of developers, like for example
CPS, where many projects use trunk of many products, because the product
needed a particular feature and it was added to CPS Core mid-release.
I also don't think it's a problem for Zope, at least not Zope3, where we
already have the discipline not to add features and methods totally
hurdy-gurdy.
It may however become a problem for 3rd party modules. As long as we are
a close-knit community getting features into 3rd party modules that are
on separate repositories will probably not be a problem anyway.
(Besides, adapters can avoid this in a very nice way. You implement the
feature in a "futureware" module as a IMyExtendedBla(IBla) and when the
feature gets into the 3rd-party module proper, you just change
IMyExtendedBla to be another name for IBla, and deprecate it. ;) )
More information about the Foundation
mailing list