[Zope3-dev] Zope 3 Questions
Shane Hathaway
shane@zope.com
Thu, 09 Jan 2003 15:31:12 -0500
Here are the answers to my questions. Regarding the Zope UI, it's
simply not finished yet. Certain facets are not very polished, but the
UI will be cleaned up in time. My other questions related to packaging.
Shane Hathaway wrote:
> Ok. But look at what happens when I perform the installation steps I
> described above. I see three alternatives:
>
> 1) The content management package sets its "views" service to be the
> active one, then the rich text package goes and finds whichever service
> happens to be active and adds its components there. Now the rich text
> components are installed in the content management package, which isn't
> what the user intended.
I talked to Jim and got my answer. The answer is that packages should
contain only components that end users will not modify in any way. If a
views service from a "closed" package is made active, the user will not
be able to add new views, which is very sensible. To install custom
mutable services, packages should provide a service *factory*, not the
service itself. Thus the scenario described above will not happen
except when the user has explicitly "opened" the package containing the
mutable views service.
I can explain again the "open" vs. "closed" terminology if it's not in
the wiki somewhere.
> 3) The third alternative is for packages to "install" and "uninstall"
> components and configurations in the active services. The user and the
> system have no awareness of packaging except when installing and
> uninstalling software. In addition to their normal interface, services
> that can hold components implement a configuration interface. The
> configuration interface allows installation/removal/querying of
> configuration directives and components. Active services are not in any
> package, because they are not necessarily specific to any package.
This option is similar to RPM and Debian, but RPM and Debian both fail
to properly meet a use case that's very desirable, yet distribution
maintainers haven't met: making an updated package based on changes to
installed software. If I install the Zope RPMs and make changes to the
installed software, I'd like to be able to make a new RPM with my
changes. To do that currently, I have to use the source RPM and reapply
my changes to the source.
The current packaging solution for Zope 3 solves that in a very cool
way. Software will run right out of packages. You won't be able to
make changes to the software running out of packages unless you take an
explicit step to state you wish to change that package. To redistribute
your changes to a package, you just click a button to export your package.
> You may be thinking along those lines already, or perhaps you have
> another way to mix components from multiple sources into a single service.
This turned out to be the case. Never underestimate the Zope Pope. :-)
It might be useful to add this info to the next Zope 3 newsletter.
Shane