Release notes for Plone 6.1.2 (2025-06-20)
- Check the release schedule.
- Read the upgrade guide, explaining the biggest changes compared to 6.0.
- Canonical place for these release notes and the full packages changelog.
If you want to jump straight in, here are some important links:
- With pip you can use the constraints file at https://dist.plone.org/release/6.1-dev/constraints.txt. This includes the extra and ecosystem constraints, which are separate in the Buildout configs.
- With Buildout you can use the versions file at https://dist.plone.org/release/6.1-dev/versions.cfg, plus optionally
versions-extra.cfgandversions-ecosystem.cfg. - Use Docker image
plone-backend.
Highlights
These are the main changes since 6.1.1:
plonetheme.barceloneta:- (Re)Introduce the ajax_load theme parameter and skip diazo theming, if set.
Note: when you upgrade an existing Classic UI site to this version, the site will look broken at first.
Just run the upgrades on the standardplone-upgradepage, and all should be fine.
Alternatively, go to the Theming controlpanel, deactivate the Barceloneta theme, and then activate it again. - Add a dedicated barceloneta-toolbar stylesheet.
Add a new stylesheet which only compiles the barceloneta toolbar styles.
This stylesheet can be used in situations where only the toolbar is wanted but
not the whole Barceloneta design system. - Support for required and invalid styles on form tabs.
- (Re)Introduce the ajax_load theme parameter and skip diazo theming, if set.
- All packages in the
fiveandz3cnamespaces have dropped support forpkg_resourcesnamespace and replaced it with PEP 420 native namespace.
Caution: if you are using any other packages in these namespaces for which we have no versoin pin, you should switch these to versions using a PEP 420 namespace as well. Products.CMFPlone: Make resource registry more robust against broken resources.
Don't break the resource registry when a resource error happens (missing dependency, circular dependency, file not found, etc).
Admins will see a warning badge and can fix the problem in the resource registry user interface.
Previously such errors broke the rendering of the whole site, making fixes very fiddly.plone.app.discussion:- Implement
auto_approve_admin_commentsbased on specified roles. - Add Volto control panel.
- Implement
plone.volto:- Enable automatic versioning for content types with blocks.
- Enable preview image link behavior by default for most content types.
- Put preview image fields in their own fieldset, and the navigation title field in the Settings fieldset.
- Enable navigation title by default for most content types.
- Create a separate
initialprofile which is used to set up the Volto distribution.
The existingdefaultprofile defines the Volto add-on, and makes minimal changes to existing content types.
Theinitialprofile includes theplone.app.contenttypes:defaultprofile and fully controls the behaviors for the included content types.
plone.staticresources: Update to mockup 5.4.0.
NOTE: This updates the selection button and popover.
The selection button shows now the number of selected and maximum number of items within the current folder.
The corresponding popover offers the option to select all items, all visible items on the page and to cancel the selection.
The previous popover to manage the selected items is gone.plone.base:- Refactoring Interface ITinyMCEPluginSchema, field
menubaris not longer aList, it's now aTextLineField. - Add a "is_truthy" utility to test for true-ish and false-ish string values.
- Refactoring Interface ITinyMCEPluginSchema, field
plone.app.dexterity: Includeobjin the results from theINextPreviousProvideradapter.plone.app.iterate: Addis_working_copycolumn to catalog metadata.plone.app.multilingual: Run the SetupMultilingualSite actions with an event subscriber.plone.distribution:- Add attribute
packagetoplone.distribution.core.Distributionto store which package registered a specific distribution. - Support specifying a base GenericSetup profile during distribution registration.
- Add attribute
plone.namedfile:- Add a
srcsetmethod to the@@imagesview. - "Scale" SVGs by setting the correct height and width for the given scale in its metadata.
- Add a
plone.restapi:@siteservice: Add a way for add-ons to add additional data using anISiteEndpointExpanderadapter.- Include all summary fields when serializing
next_itemandprevious_item.
plone.scale: Add method to 'scale' SVGs by modifying display size and viewbox.plone.recipe.zope2instance: Check for presence of Products.CMFPlone with multiple keys. This is needed, depending on the usedzc.buildoutandsetuptoolsversions.twine: Add compatibility with setuptools 77+.
This fixes errors when making releases to PyPI: "twine.exceptions.InvalidDistribution: Metadata is missing required fields: Name, Version." .
Volto frontend
The default frontend for new Plone 6 sites is Volto.
Note that this is a JavaScript frontend that you need to run in a separate process with NodeJS.
Plone 6.1 is meant to be used with Volto 18.
Latest release is 18.23.0. See the changelog.
You can already test with the latest Volto 19 alpha version.
Classic UI
The HTML based and server side rendered UI that was present in Plone 5.2 and earlier major Plone releases is still available and has also been updated and improved upon in Plone 6.0 and 6.1. Our documentation now refers to this frontend as 'Classic UI'.
Python compatibility
This release supports Python 3.10, 3.11, 3.12, and 3.13.
pip, buildout, setuptools
In Plone core we use these versions to install Plone:
packaging==25.0
pip==25.1.1
setuptools==80.9.0
wheel==0.46.1
zc.buildout==4.1.12
In general you are free to use whatever versions work for you, but these worked for us.
Note that if you use Buildout and are on setuptools 80+, you need the latest zc.buildout 4.1.12.
Installation
For installation instructions, see the documentation.
Issues
If you find any issues, please report them in the main issue tracker.