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

Start separating Classic UI code from the core #3953

Open
tisto opened this issue May 15, 2024 · 0 comments
Open

Start separating Classic UI code from the core #3953

tisto opened this issue May 15, 2024 · 0 comments

Comments

@tisto
Copy link
Sponsor Member

tisto commented May 15, 2024

PLIP (Plone Improvement Proposal)

Responsible Persons

Proposer: @jensens

Seconder: @mauritsvanrees

Abstract

Step by step move classic ui templates and view-logic to plone.classicui, while keeping the API/business logic in core packages.

Motivation

  • Cleaner, easier to maintain code.
  • Separation of view-logic and API/business logic makes it easier to re-use code and reduce duplication.
  • Smaller core, less memory/disk footprint for users of the Volto frontend which does not need the Classic UI code.

Assumptions

In Plone 6, when you use only Products.CMFPlone, we still want you to get the complete Classic UI, or at least most of it.
In Plone 7 the Classic UI is still included with the Plone package, but not with the Products.CMFPlone package. See PLIP #3955 for that part.

Proposal & Implementation

  • Have a plone.classicui package.
  • This will define the Classic UI Plone distribution, so it will have the code to create a standard Classic UI site.
  • Begin moving code that is only for Classic UI (so useless for Volto) in there, with backwards compatibility in place, also for page templates.

In Plone 6.1:

  • The wanted dependency chain is: Plone -> plone.distribution -> Products.CMFPlone -> plone.classicui.
  • So plone.classicui will have a definition for the Plone Classic UI distribution, but it does not have a hard dependency on plone.distribution.
  • When you install only Products.CMFPlone the "Create a new Plone site" will create a Classic UI site in the traditional way, so not using plone.distribution. It could be a bit more basic, because we would prefer not to maintain both the old and new way.

In Plone 7.0, the wanted dependency chain is: Plone -> plone.classicui -> plone.distribution -> Products.CMFPlone. Here the button for "Create a new Plone site" will definitely give a more basic site.

Alternatively, in Plone 6.1 we already put plone.classicui between Plone and Products.CMFPlone. But then we cannot already move templates and browser views there. That would then all have to be done in Plone 7.0.

Deliverables

plone.classicui package and shrunken Plone-core packages (those between (and including) plone.base and Products.CMFPlone).

Risks

  • No longer fallback UI for a pure headless Plone (except ZMI)

Participants

TODO

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

No branches or pull requests

2 participants