[Zope3-dev] Package is the wrong name for the things I called "Zope Packages".

Jim Fulton jim@zope.com
Wed, 22 Jan 2003 10:40:14 -0500


I think that there is a some agreement that we have two kinds of
objects, X and Y. ;)

X. These objects are where site developers can create
    custom components and configurations. For example, people
    create service and utility instances in these things.

    Some people will do software development in these things.
    They may initially do this to create some local views or
    even content types.

    (These things support the uses previously called A and B.)

Y. These objects provide installable software and configurations.
    The software and configuration are unchangeable. The only thing
    that's changeable is the software installation status.

    These things are used for software distribution. They are used to
    add new fundctionality to a site.

    (These things support the use previously called C.)

Now, we need names for these. We won't call them "packages". :)

The leading name for Xs seems to be "workspaces".  I can live with this,
but, I think that these are a lot like content folders. The only difference
is that they contain "meta" content.  They contain things like component
instances, software modules and templates, and configurations.

You might wonder why I keep talking about "meta content".  The rational for
this term are:

- These objects are "content" because they:

   o Manage domain specific information

   o Will be managed with the same sorts of tools we use for regular
     content.  For example, they will have meta data. They will be
     cataloged. They may be workflowed. And so on.

- These objects are meta, because they exist to support the management
   of the regular content. From the point of view of the regular content,
   they are software.

No, given the correspondence between content folders and Xs, I really
think they should have the same names.  My intuition is that they
should both be "folders' (or both be workspaces).

The leading name for Ys seems to be "bundles" although, there are some,
including myself, who think that the name should more clearly indicate that
these are things that you use to add software to your Zope. Suggestions
include "products", "plugins", and "add-ons".

Some additional notes about software development and distribution.

As mentioned earlier, people will create Xs to hold software developed
locally to customize the local site. At some point, someone might decide that
they or someone else would like to use the X they've been working on in other
sites.  At that point, they will be able to create a new Y from their X.
They can then distribute the X they made.

Similarly, someone might install a Y and then decide they want to customize it.
Now, they can always customize it by uninstalling some of it's components and
installing different components from Xs or other Ys.  They may, however, wish to
cusomize most of the contents of the Y and may wish to start from a copy. Or, they
may want to distribute a customized Y. They will be able to create a new X from
the Y (as opposed to converting the Y to an X). The new X will be a copy of the Y.
They can modify this new X as desired. If they want to distribute their modifications,
they can create a *new* Y from the (new) X.

Thoughts? :)

Jim


-- 
Jim Fulton           mailto:jim@zope.com       Python Powered!
CTO                  (888) 344-4332            http://www.python.org
Zope Corporation     http://www.zope.com       http://www.zope.org