-
-
Notifications
You must be signed in to change notification settings - Fork 5
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
Remove plone/meta
/ pre-commit from templates
#149
Comments
Thats the reason and way, why it is so exhausting to find new devs for Plone. We change our toolset so often... But perhaps i'm too old. |
@1letter I see your perspective, but I’d like to offer a different viewpoint. There are many aspects to consider, but for now, let’s focus on the toolset. I believe it’s important to recognize that using a toolset that is not widely adopted can make it more challenging to attract new contributors. Exploring new approaches can often be more beneficial in the long run. For example, no matter how much I appreciated and relied on Buildout, onboarding new developers—especially those coming from Django or FastAPI—was quite difficult. Similarly, continuing to use ZPT in an ecosystem dominated by Jinja, React, and Vue, or resisting the shift toward containers and object storage, would have made integration and collaboration more challenging. The goal of this discussion is to simplify our current QA processes. For those who actively maintain recent Plone projects and contribute as core developers, the existing setup has introduced significant mental overhead, which we need to address. That said, if you are maintaining a single legacy project that will eventually be upgraded to the latest version of Plone, you can certainly continue using the workflow you are accustomed to. |
Thank you for your write up of the current status @ericof . I added a few words in 2 places for smoother reading and posterity, see edit dropdown. Question: we are talking now about project mono repo's, finding a way out of the pre-commit issue will also benefit future plone 'addon' packages advancements, where we want a monorepo for the volto frontend and a possible python backend in one repo. Now we have 2 repo's in this situation. |
Points in favor of keeping plone/meta but evolving it to support monorepos better:
Points in favor of doing something else:
I'm not sure what I prefer personally. I would like things to be as simple as possible for both new users and existing users, but it's not obviously what path achieves that. |
The new distributions with Volto + Backend are a special case of addon packages, and this is where we should move in the long run for packages like collective.bookmarks, volto-form, etc |
As a first-timer to
I don't know if it will still bite the next first-timer, but now I think it won't go as deep. That said, almost all first-timers won't develop or maintain Plone packages. IMO doing something else would miss the target audience—specifically, experienced developers of Plone Python packages—of what we're trying to do as an organization. |
As it seems that my opinion is of some interest: tl;dr: drop Longer version:
Consistency is key on an aging software stack, specially if not a lot of people are looking at it on a daily basis. This really shows off when changes across all repositories have to happen: newer python/Plone versions, update GHA, etc etc.
What would be cool/nice is that the python/backend/addon part of what Right now that developer experience boils down to the This would reduce mental friction when working on a plone core addon ( Bottom line though, and as the tl;dr said: drop |
I would like to initiate a discussion regarding the removal of
plone/meta
from the existing templates. This proposal is not due to any issue withplone/meta
itself but rather its reliance onpre-commit
, which does not and will not support mono repositories. Given thatcookieplone-templates
incorporates the mono repository use case, maintaining two distinct configurations in the long term would introduce additional complexity.Background
plone/meta & pre-commit
Since the decision to adopt
pre-commit
was made during the 2023 Alpine City Sprint, the community has gradually transitioned non-core codebases to utilizeplone/meta
. Examples of this implementation can be observed in the following repositories:Additionally,
plone/meta
was incorporated into our legacy cookiecutter templates and subsequently intocookieplone-templates
.For codebases that contain a single Python package, this approach has proven to be effective.
Mono Repositories
A significant portion of new projects within the Plone community now follow a mono repository structure, typically comprising a Python backend and a React frontend. This structure presents a challenge with pre-commit its monorepo standpoint:
plone/meta
and attempt to adaptpre-commit
to support the mono repository use case.plone/meta
and maintain a separate set of QA tools.During last year's Beethoven Sprint 2024, following some research, we opted for the first approach and implemented a plugin named sub-pre-commit. It was understood at the time that this approach required
pre-commit
to remain pinned to a stable version, as this was the only way to ensure compatibility withsub-pre-commit
.Following this decision,
pre-commit
andsub-pre-commit
were added tocookieplone-templates
, and all new projects since have been structured accordingly.Reasons for Reconsideration
After nearly a year of working with this setup, it has become evident that maintaining support for mono repositories under the current approach is proving to be too fragile and does not offer sufficient benefits:
plone/meta
does not provide significant advantages, as its focus remains on Python packages located at the root of the repository.pre-commit
does not offer the intended benefits, as runningmake check
within a subdirectory often leads to unexpected failures.pre-commit
remains fixed at version3.7.1
, despite version[4.1.0](https://github.com/ddanier/sub-pre-commit/commit/68316dfbe1863166307a4a65bf73c62cfcf89c25)
already being available.Based on my experience in building and maintaining mono repositories for distributions (portalbrasil-intranet, kitconcept.intranet), as well as for customer projects, we have consistently moved away from
plone/meta
andpre-commit
over time. This decision has been driven by the challenges outlined above, which have made these tools less suitable for long-term maintenance in mono repository environments.Challenges of Transitioning Away
cookieplone-templates
not being used to create new core packagesAlternative path
As an alternative solution we should improve
plone/meta
and address the following points:pre-commit
:Next steps
plone/meta
+pre-commit
c/c @sneridagh, @fredvd, @davisagli, @mauritsvanrees, @gforcada, @pbauer, @MrTango
The text was updated successfully, but these errors were encountered: