plone / Products.CMFPlone

The core of the Plone content management system
https://plone.org
GNU General Public License v2.0
240 stars 183 forks source link

Start separating Classic UI code from the core #3953

Open tisto opened 1 month ago

tisto commented 1 month ago

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

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

In Plone 6.1:

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

TODO

mauritsvanrees commented 2 weeks ago

I talked with @ale-rt and @MrTango at the Buschenschanksprint. It feels like the discussion is not completely done, or not unanimous, but my conclusions from there are:

An alternative package name could be plonedistribution.classicui (or plonedistro.classicui), and then plonedistribution.volto to be on top of plone.volto. The idea would be that plone.volto already has too much code, and for a distribution it is best to be a very light package, just like the current Plone package has no real code. But I am not much a fan of adding yet more packages.

jensens commented 2 weeks ago

I agree to have a small plone.classicui package and use plone.app.layout as the bucket for all layout/ui/template related. I tend to not add more packages. The other way around, features in plone.volto could be moved elsewhere, because meanwhile its very bloated. But that's OT here.

tisto commented 1 week ago

I approve this PLIP. cc @plone/framework-team @plone/release-team