[Zope-dev] the Zope Framework project

Matthew Wilkes matthew at matthewwilkes.co.uk
Mon Mar 2 19:31:03 EST 2009


On 2 Mar 2009, at 16:33, Martijn Faassen wrote:

> What is the Zope project? The Zope project is an umbrella project for
> a number of sub-projects. Its source code is in a repository managed
> by the Zope Foundation. Within the Zope project, there are a number of
> projects that ship full-stack web frameworks (or application servers):

One of the most striking things about the Zope community (imho) is  
that we don't have a single central presence.  There's no Zope  
conference, people go to PyCon, EuroPython, PloneConf, etc, they hang  
out in different irc channels (personally I discuss Zope in #plone,  
#zope, #zope.de, #plone-framework and #repoze), and this mailing list  
isn't widely read.  Yeah, the people are mostly the same, and you know  
a Zopista from people outside the community, but there doesn't feel  
like there's a central community.  I couldn't tell you what the Zope  
Foundation does, for example.

> To distinguish between these two perspectives on Zope 3, we will
> introduce a new term: "the Zope Framework". "Zope 3" should be used to
> indicate the Zope 3 application server that is one consumer of these
> libraries. To be explicit we encourage the use of "Zope 3 application
> server" to indicate Zope 3 and discourage the use of "Zope 3" to
> indicate the Zope Framework itself.

+1

> The Zope Framework has a central status within the wider Zope
> project. It is the core Zope technology ingredient to Zope projects
> such as Zope 2, Zope 3 and Grok.

With it's own IRC channel and mailing lists, that become the canonical  
place for questions about the ZCA, etc?

Either way, +1

> A library that at some point in time is considered to be part of the
> Zope Framework is called a "core library". The Zope Framework contains
> those libraries that are reused by a large number of projects, or that
> the Zope Framework developers want to promote to be being more widely
> adopted. The Zope Framework developers especially favor inclusions of
> libraries that are used by other Zope projects.

+1 on everything but the "want to promote" bit - the libraries will be  
decided by the same developers they'd be promoted to.  I'm -1 on  
framework bloat to help spread libraries.  If a package is truly  
useful as part of the framework it goes in, if it's just cool I don't  
think it should.

> The set of libraries that is "core" can change over time depending on
> how these libraries evolve and are used. New libraries considered to
> be "core" can be added to the set, and existing libraries once
> considered "core" can be removed from the set.  We should be careful
> though, as we cannot just drop libraries from the core without
> considerable thought. A library being in the core signals a level of
> commitment to this library.

Meh, ish.  I think if we make it clear enough in advance we should be  
fine.  If a non-core library is widely used compatibility will have to  
be maintained, but it doesn't mean we should keep it in core if it  
doesn't deserve it.

> * if it has a lot of people who contribute to it from our community,
>   it's likely core.

-1, it's a zope community package, but not necessarily part of our  
framework.

> * if it's something we want to encourage more consumer platforms use,
>   it's likely core.

-1, as stated above.

> Which libraries should be core to start with? Proposed is to take the
> ``zope.*`` libraries. We can immediately weed out a lot of libraries
> that aren't considered core, and we can then start the slower
> processes of adding and removing from that set over time.

zope.* is a good start, but I think it'd be more useful to look at  
what packages are actually used by everyone that's considered to be a  
framework user.

> Libraries may have a different status in the core to convey extra
> information about them, such as deprecation status.

How will this be signalled?

> As a service to the users of the Zope Framework, the Zope developers
> also make available lists of version numbers of core libraries that
> have been tested to work together as a "Known Good Set". This receives
> a version number and is the Zope Framework release.

+1

How will the numbering convention work, currently it is in step with  
Zope3-the-application-server.

> Currently intermixed with the Zope Framework core there is code that
> implements a particular user interface, the Zope 3 ZMI. There is a
> consensus that these application-like parts should be removed from the
> core set, as that code typically only sees use by a single consumer
> (the Zope 3 application server). It is not used by other consumers of
> the framework.

+1

> Examples of "extra" libraries are the "hurry.query" library for
> constructing catalog queries, the "z3c.form" related libraries for
> form generation, and the "grokcore.component" library which contains a
> different way to configure components.

Sounds sensible.

> Any library that is developed for integration with the Zope Framework
> in the Zope repository can be considered "extra"; "extra" is the set
> of libraries that is not in the Zope Framework but can work with it.  
> By
> having an "extra" designation we can more easily discuss such  
> libraries.

What about other dependencies?  Should we have a list of blacklist  
packages/things that prevent something being called an extra?  What if  
it only works with 1 user of the framework, or 2, or all but 1, where  
do we draw the line?

> The Zope Framework Steering Group is there to provide leadership for
> the development of the Zope Framework. The Zope Framework Steering
> Group consists of a small number of developers. The Steering Group
> takes on the task to represent the interests of the consumers of the
> Zope Framework. The Steering Group searches for consensus in the
> community of users and contributors and thereby guide the evolution of
> the Zope Framework.

+1, I think they should be pretty hands-off, but I think it'd be  
valuable to the community to have people who feel responsible for  
pushing Zope forward.

> It also resolves deadlocks: in
> case of disagreements within the community about particular
> development decisions, the Steering Group can make a decision based on
> what it believes is in the best interest of the current and future
> users of the Zope Framework.

How is the steering group selected?  How long do they serve for?  All  
these questions need to be answered in a way that everyone considers  
fair for this to work.

> The Steering Group is
> there to act as a catalyst for the community, enabling cooperation,
> helping to make good decisions, to have a positive atmosphere, and so
> on.

Hear, hear!

> In order to
> determine who is in it we could devise an election procedure by Zope
> Foundation members.

-1, I'm not sure the foundation membership is representative of the  
users.  I'd say people put themselves up for election, there is a  
secret public vote, the foundation review the results and then appoint  
people.  That way they can overrule the public but are informed by them.

>

Matt


More information about the Zope-Dev mailing list