-
-
Notifications
You must be signed in to change notification settings - Fork 188
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
Support Distributions to be built on top of Plone #3854
Comments
+1 to the proposal. I subscribe to every single line. Maybe it's worth to add the i18n limitation and that we need to find a good way to overcome it. @ericof maybe you can also point to your Plone Conference talk this year, talking about them? I think there are really good points in there and it does expose the whole picture in an extraordinary way. |
@plone/framework-team since this is a PLIP that covers both Classic UI and Volto I guess we need to schedule a call, or at least have a vote if we think that this is a good idea. Since I am seconding this idea, I am +1. |
I obviously like this idea and would love to have this in Plone 6.1. Some details are not yet clear to me though, especially around the dependencies, and possibly circular dependencies:
|
@mauritsvanrees Excellent points. DependenciesMy original vision was to move site creation logic to Of course, we would need to address how to handle Export / ImportI would love to see Products.CMFPlone (or GenericSetup) shipping with a default way to serialize and deserialize content to JSON and I want to discuss implementing this and where it should be done. @pbauer, opinions here? |
+1 for the whole idea
|
@MrTango, In Plone 5.2 and 6.0, we have the example content being implemented by setuphandlers in plone.volto and in plone.app.contentypes. |
@mauritsvanrees, @fredvd, @pbauer : After some digging, it seems the |
|
I added a PLIP configuration to run |
I can not approve a PLIP where I am a seconder I guess. However, the @plone/release-team team discussed this and approved the PLIP. |
@ericof @mauritsvanrees I've tested this using plips/plip-distributions.cfg in buildout.coredev, and I think we are close to being ready to merge the following PRs for Plone 6.1:
I've also successfully run a 6.1 PLIP build on jenkins with these PRs. Remaining work:
|
Since this is close to merge, I have updated coredev 6.0 to use the 4.x.x branch of I have added plone/Plone#31 to add |
I have added this in bea0b3d. |
I think I am done with all the changes that I want. TODO: documentation. @gforcada Could you add a PLIP job for this on Jenkins please? Some have been testing this by pasting the PR urls, but the PLIP config also adds some
|
Let me have a look :) |
Thanks Gil. Updated to 3.10 and 3.12 meanwhile. But there are three test failures on all runs. See 3.10 and 3.12
Do those failures ring a bell? Did anything get fixed recently that still needs to be pulled in to the various PLIP branches? |
I have fixed the three failing tests. See ec4601c Running the Jenkins PLIP jobs now. |
Robot tests on Jenkins are a bit flaky lately. Some people are porting robot tests to Playwright, which may help there. But the 6.1 PLIP job at least passes. @plone/framework-team and others: last call for reviews. If we merge everything this week, then maybe the Salamina sprinters can fix some bugs that we overlooked. ;-) There are some details left like plone/plone.distribution#95, but we can polish later. |
I created a PR for the 6.1 upgrade guide, please review: With that under way, it is time for me to merge all related PRs. There will probably be some breakage on Jenkins for a bit, as there is no correct order in which to merge this. |
PLIP (Plone Improvement Proposal)
Responsible Persons
Proposer: Érico Andrei [@ericof]
Seconder: Timo Stollenwerk [@tisto]
Abstract
Over the years, the Plone community has developed numerous "distributions" of the Plone CMS, even without official support from the core codebase. These include SENAITE, Quaive, Portal Modelo, Portal Padrão, CastleCMS, and ioComune. These distributions often require patching Plone or necessitate manual steps to create a customized Plone site. This PLIP aims to establish a clear protocol for creating and managing new Plone distributions, including the incorporation of example content during site creation.
Talk about
plone.distribution
at the Plone Conference 2023Motivation
As one of the creators of Portal Padrão and a contributor to Portal Modelo, I have experience in modifying the Plone site creation process to include additional steps and customize the resulting site. However, each distribution, including Quaive and CastleCMS, has its unique implementation. The absence of a standardized approach and official support can lead to compatibility issues when changes occur in core packages like Products.CMFPlone.
Assumptions
We assume that the existing options in Plone’s
Add Site
page are basic distributions. Their content creation processes need unification to ensure consistency and ease of use.Proposal & Implementation
We propose the development of an API to streamline Plone site creation. This API will facilitate site creation through Python code and RESTAPI, enabling the development of frontends for default Plone or SaaS offerings. A standardized method for importing content into new websites will also be introduced to enhance user experience and consistency across distributions.
Deliverables
plone.volto
andplone.app.contenttypes
, until these packages provide their distributions.Products.CMFPlone
: Removal ofbrowser/admin.py
.plone-backend
: Removal ofscripts/create-site.py
.plone.volto
: Introduction of a distribution registration to manage default site creation.plone.classicui
: Implementation of a distribution registration to oversee site creation, replacing the existing method inplone.app.contenttypes
.plone.app.contenttypes
: Removal of the existing content setup implementation.Risks
Supporting Plone 6.0 necessitates that
plone.distribution
duplicates content fromplone.volto
andplone.app.contenttypes
. It also requires the implementation of a unified site creation function and RESTAPI services, ideally situated inProducts.CMFPlone
andplone.restapi
, respectively.Participants
The text was updated successfully, but these errors were encountered: