[ZF] Zope Development Process

Martijn Faassen faassen at infrae.com
Tue Sep 26 12:47:34 EDT 2006


Jim Fulton wrote:
[snip]
> I wonder what projects there should be.  Do we need want many
> projects?  Some obvious projects are Zope 2, Zope 3, and ZODB.  What
> about smaller efforts?  Should ZConfig be a separate project?  If not,
> what project does it fall under.  It is used by all 3 of Zope 2, Zope
> 3, and ZODB.  What about a project like zc.buildout?  Should the
> repsository contain code that doesn't fit under any project?  For
> example, zc.ngi is an experimental testable networking library that I
> plan to use in ZEO someday.  Should that be in the repository?  Should
> it be a project? Should the packages in the zc (or z3c or lovely)
> namespaces be their own projects? Should each namespace be a project?

I think it makes sense to detach 'ZF bylaw projects' from development 
projects, just like it makes sense to detach repository commit access 
from ZF Committer Member status. A development project may become a 
separate ZF Project over time, or may never reach that stage.

I definitely do not want us to be tied down by the ZF definition of 
project. I'm concerned with the process of project incubation. We need 
to be aware in practice that small projects may grow into big ones 
later. Such small projects can be under one ZF Project early on but grow 
into a separate ZF Project later on. As a silly example, let's imagine 
zc.resourcelibrary became a major new thing that had lots of people 
talking about it and lots of checkins and so on.

There needs to be some way to recognize this process and give it its own 
ZF Project. We need to make the steps a development project could take 
towards ZF Project explicit, so that people who need more facilities to 
support their growing project know who to talk to to get them.

Detaching development projects from ZF management projects could be 
supported by having a minimum number of established ZF Projects, plus 
one catch-all "Other" ZF Project:

* Zope 2 - the zope 2 core

* Zope 3 - the zope 3 core

* CMF - anything CMF related

* ZODB - the ZODB

* Other - everything else (z3c, lovely, zc, zc.buildout, etc)

We need a minimum of process in Other. There should be someone with at 
least some awareness of what is going on, and who people can talk to if 
they need something, but there shouldn't be much else. There also needs 
to be a defined process for how things in catch-all can turn into an 
established ZF project.

So, we do not *require* any project to be part of an established ZF 
project yet when it starts; anyone can start just about anything under 
the catch-all of "Other". Other is low on process. Only when there are 
people who stand up and say, hey, we want a ZF project for, say, 
everything under lovely.*, and we're willing to volunteer to back this 
up, do we proceed and make a new top-level ZF project.

Concerning development projects, we should be aware that project 
identity is important in getting developer adoption. Project identity 
can be established by having one or more web pages on zope.org, a group 
of people on a mailing list or IRC channel, a logo and motto, and so on. 
  Having a clear project identity can in my experience be a major factor 
in the formation of an open source community around this project.

I consider aspects of this valuable even for smaller projects. So, I 
believe the ZF should provide infrastructure support for these projects 
to establish such identities. In some cases this may not go much beyond 
a pointer on zope.org to a cheeseshop page similar to the TurboGears 
Cogbin, in other cases it can be much more. We should provide this 
infrastructure support at a granularity finer than ZF Project and 
without requiring that these projects move out of Other. Perhaps one 
good indicator on whether a dev project needs a separate ZF Project 
status is when the project grows its own mailing list.

Regards,

Martijn



More information about the Foundation mailing list