You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In Plone we have several "twin" packages. You have a base plone.example and you have plone.app.example. Theoretically, plone.example is often intended to be usable in plain Zope or CMF as well, where plone.app.example would have Plone-specific code that builds on the base package.
In the Plone community we often wonder: is anyone actually using any of these base packages outside of Plone? In discussions, the main feeling is that it was a nice idea to have two packages, but that probably no one is actually using the base one outside of Plone. In that is true, we might as well merge those twin packages, and lighten some of our maintenance burden. I guess in most cases we would merge the base plone.example package into plone.app.example. plone.example would be left unmaintained.
So: is anyone using these in their Zope or CMF projects? If so, please speak up. I know this issue probably only reaches core Zope developers, not integrators or end users, but it is a start.
I count ten package couples:
plone.contentrules (readme: 'provides a "pure Zope" implementation of a a rules engine which allows arbitrary conditions and actions to be combined into rules, and rules to be executed dependent on events.') and plone.app.contentrules with Plone-specific rules. See a comment by me in a discussion about merging these two.
plone.portlets (readme: "generic infrastructure for managing portlets") and plone.app.portlets with some actual portlets specific to Plone.
plone.caching (readme: "framework for the management of cache headers") and plone.app.caching (next to z3c.caching actually)
plone.dexterity (readme: "Dexterity is a system for building content types, both through-the-web and as filesystem code. It is aimed at Plone, although this package should work with plain Zope + CMF systems.") and plone.app.dexterity
plone.event (readme: "Event/Calendaring related infrastructure. Recurrence calculation tools based on RFC2445 and timedelta recurrence rules, timezone tools and date conversion tools.") and plone.app.event. I did not even know that plone.event existed...
plone.i18n (readme: "Advanced i18n/l10n features useful in a CMS environment.") and plone.app.i18n
plone.registry (readme: "This package provides debconf-like (or about:config-like) settings registries for Zope applications. A registry, with a dict-like API, is used to get and set values stored in records.") and plone.app.registry
plone.testing (readme: "Testing infrastructure for Zope and Plone projects.") and plone.app.testing
plone.uuid (readme: "This is a minimal package that can be used to obtain a universally unique identifier (UUID) for an object.") and plone.app.uuid
plone.z3cform (readme: this "is a library that enables the use of z3c.formin Zope. It depends only on Zope and z3c.form.") and plone.app.z3cform
Speaking for myself I don't use any packages from the plone namespaces in any of the projects I work with. I don't recall ever even considering that because I had a preconceived notion that those packages would always require a rat's tail of Plone-specific dependencies.
union.cms had used plone.i18n and plone.testing but I am no longer maintaining it. It was very helpful those days that these packages did not require to install a whole Plone.
At Minddistrict I'd like to use plone.testing, so it would be really helpful to keep its depenencies at a minimum.
Usage in zopefoundation repositories (found by searching zopefoundation on GitHub for plone):
z3c.caching suggests to use plone.cachepurging in its code.
five.customerize uses plone.testing but this repository probably has to be moved to the plone organization
z3c.jbot optionally uses plone.resource – but this package is also probably only used in Plone land.
A bit off topic:
Zope uses plone.recipe.command in its buildout.cfg and the documentation refers to plone.recipe.zope2instance
In Plone we have several "twin" packages. You have a base
plone.example
and you haveplone.app.example
. Theoretically,plone.example
is often intended to be usable in plain Zope or CMF as well, whereplone.app.example
would have Plone-specific code that builds on the base package.In the Plone community we often wonder: is anyone actually using any of these base packages outside of Plone? In discussions, the main feeling is that it was a nice idea to have two packages, but that probably no one is actually using the base one outside of Plone. In that is true, we might as well merge those twin packages, and lighten some of our maintenance burden. I guess in most cases we would merge the base
plone.example
package intoplone.app.example
.plone.example
would be left unmaintained.So: is anyone using these in their Zope or CMF projects? If so, please speak up. I know this issue probably only reaches core Zope developers, not integrators or end users, but it is a start.
I count ten package couples:
plone.contentrules
(readme: 'provides a "pure Zope" implementation of a a rules engine which allows arbitrary conditions and actions to be combined into rules, and rules to be executed dependent on events.') andplone.app.contentrules
with Plone-specific rules. See a comment by me in a discussion about merging these two.plone.portlets
(readme: "generic infrastructure for managing portlets") andplone.app.portlets
with some actual portlets specific to Plone.plone.caching
(readme: "framework for the management of cache headers") andplone.app.caching
(next toz3c.caching
actually)plone.dexterity
(readme: "Dexterity is a system for building content types, both through-the-web and as filesystem code. It is aimed at Plone, although this package should work with plain Zope + CMF systems.") andplone.app.dexterity
plone.event
(readme: "Event/Calendaring related infrastructure. Recurrence calculation tools based on RFC2445 and timedelta recurrence rules, timezone tools and date conversion tools.") andplone.app.event
. I did not even know thatplone.event
existed...plone.i18n
(readme: "Advanced i18n/l10n features useful in a CMS environment.") andplone.app.i18n
plone.registry
(readme: "This package provides debconf-like (or about:config-like) settings registries for Zope applications. Aregistry
, with a dict-like API, is used to get and set values stored inrecords
.") andplone.app.registry
plone.testing
(readme: "Testing infrastructure for Zope and Plone projects.") andplone.app.testing
plone.uuid
(readme: "This is a minimal package that can be used to obtain a universally unique identifier (UUID) for an object.") andplone.app.uuid
plone.z3cform
(readme: this "is a library that enables the use ofz3c.form
in Zope. It depends only on Zope and z3c.form.") andplone.app.z3cform
I have copied this question to the Plone community forum.
The text was updated successfully, but these errors were encountered: