Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Are any base plone packages used in Zope/CMF projects? #311

Open
mauritsvanrees opened this issue Feb 19, 2025 · 2 comments
Open

Are any base plone packages used in Zope/CMF projects? #311

mauritsvanrees opened this issue Feb 19, 2025 · 2 comments

Comments

@mauritsvanrees
Copy link
Member

mauritsvanrees commented Feb 19, 2025

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

I have copied this question to the Plone community forum.

@dataflake
Copy link
Member

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.

@icemac
Copy link
Member

icemac commented Feb 21, 2025

  • Personal usage:
    • 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
    • ZODB suggests to use plone.recipe.zeoserver.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants