-
-
Notifications
You must be signed in to change notification settings - Fork 194
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. |
* Document distributions in the 6.1 upgrade guide. See plone/Products.CMFPlone#3854 * Review of Distributions documentation * Align term definition with upgrade guide docs, avoiding circular reference. * Fix admonition syntax * Add link to repo * Enhance screenshot with card syntax * plone.exportimport is not for upgrading Plone. If you need an export/import for upgrading Plone you would still use collective.exportimport. Upgrading is not a use case that plone.exportimport covers. * Here we do not start a new project, I just mean: start Plone. * These are not 'frontend distributions'. * Creating a 6.1 CMFPlone site differs from 6.0, that is the main point here. * Don't mention installing add-ons here, activating is enough. Sure, the Python package of an add-on must be installed before you can activate it, but the same is true for a distribution. The plone.classicui distribution has basically the same Python package dependencies as CMFPlone, although it activates a few extra ones automatically if they are available (say plone.app.caching). * reorganize distribution docs * Apply suggestions from code review * Update conceptual guide for distributions, where the significant changes are: - Use the actual package names of the built-in distributions - Move the comparison to other CMSs to the end of the page, putting Plone-only content first. * Create an entry in `index.md` to include a new `developer-guide/index.md` and the new `developer-guide/create-a-distribution.md` * Update glossary reference to other distribution material * Add cross-reference * Add JSON Schema to Glossary * Tidy up create-a-distribution.md. - Rewrite passive voice to active. - Enhance code blocks with `emphasize-lines`. - Use definition lists as appropriate for terms and inline literals. - Add links and terms where helpful. * Revert distribution names and enhance `ALLOWED_DISTRIBUTIONS` usage. * Tidy up add-site.md, mostly docs style guide stuff, and a rewording of the final admonition. Add plural `distributions` to Glossary. * Tidy up distributions section in upgrade-to-61.md * Update docs/backend/upgrading/version-specific-migration/upgrade-to-61.md Co-authored-by: David Glick <[email protected]> * Move add-site into Admin Guide. Move Admin Guide before Developer Guide in main navigation * Remove stray characters from bad merge * Resolve TODOs by moving file and adding link to new choose-user-interface. * Update glossary with Zope instance and cross-references to Zope itself. * Fix cross-references * Fix link * Ignore link to static images * Ignore searches on GitHub as it rate limits and times out. * Update docs/developer-guide/index.md Co-authored-by: David Glick <[email protected]> --------- Co-authored-by: Steve Piercy <[email protected]> Co-authored-by: Maik Derstappen <[email protected]> Co-authored-by: David Glick <[email protected]>
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: