Plone 6.0.13 released

I have released Plone 6.0.13

Release notes for Plone 6.0.13

If you want to jump straight in, here are two important links:

Highlights

Major changes since 6.0.12:

  • plone.app.content:
    • getVocabulary: Fix for terms with incomplete HTML.
    • Fix select_default_page in VHM hosted sites.
  • Products.PortalTransforms: Shortcut in safe_html: Check for signs of html or script, skip further processing if none are found.
  • Newer docutils that works with Sphinx 8.
  • Products.validation:
    • Drop support for Plone 5.2 and for Python 3.7 and lower. Only Plone 6.0 and 6.1 are supported now. Note that this is not used by core Plone, but for example by collective.easyform.
    • Move translations from plone.app.locales to here.
  • zc.buildout: update to version that works with latest setuptools.
  • `plone.app.locales:
    • Remove Products.validation translations. They are moved to that package.
    • Update es, pt-br, eu, cn, and nl translations.
  • Products.CMFPlone: Use five.registerPackage so an editable install with pip works.

Volto frontend

The default frontend for new Plone 6 sites is Volto. Latest release is 16.32.1. See the changelog.
Note that this is a JavaScript frontend that you need to run in a separate process with NodeJS.

Also, existing Plone sites need some or more extensive changes to be upgraded before they can use the Volto Frontend. Please read the guide on migrating from Plone Classic UI to Volto.

Note that Volto 17 is also available, and you can use it on Plone 6.0, but we will keep recommending Volto 16 by default.

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. Our documentation now refers to this frontend as 'Classic UI'. Support for Classic UI is especially relevant for existing Plone sites which for whatever reason or requirements are not yet ready to be upgraded to the Volto frontend.

Python compatibility

This release supports Python 3.8, 3.9, 3.10, 3.11, and 3.12.

Note that Plone 6.0 is tested on Python 3.8 and 3.11 on every change to core packages. For the other Python versions we run the tests once a week.

pip, buildout, setuptools

In Plone core we use these versions to install Plone:

pip==24.2
setuptools==74.0.0
wheel==0.44.0
zc.buildout==3.1.0

In general you are free to use whatever versions work for you, but these worked for us.

Installation

For installation instructions, see the documentation.

Issues

If you find any issues, please report them in the main issue tracker.

3 Likes

With python 3.11.1

The build is success, but got error while run

Traceback (most recent call last):
  File "/home/user/Plone/zinstance/./bin/instance", line 260, in <module>
    sys.exit(plone.recipe.zope2instance.ctl.main(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Plone/zinstance/eggs/plone.recipe.zope2instance-7.0.0-py3.11.egg/plone/recipe/zope2instance/ctl.py", line 1007, in main
    c.onecmd(" ".join(options.args))
  File "/home/ken/.pyenv/versions/3.11.1/lib/python3.11/cmd.py", line 217, in onecmd
    return func(arg)
           ^^^^^^^^^
  File "/home/user/Plone/zinstance/eggs/zdaemon-5.0-py3.11.egg/zdaemon/zdctl.py", line 558, in do_fg
    self.do_foreground(arg)
  File "/home/user/Plone/zinstance/eggs/plone.recipe.zope2instance-7.0.0-py3.11.egg/plone/recipe/zope2instance/ctl.py", line 848, in do_foreground
    self._exitstatus = subprocess.call(command, env=env)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ken/.pyenv/versions/3.11.1/lib/python3.11/subprocess.py", line 389, in call
    with Popen(*popenargs, **kwargs) as p:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/ken/.pyenv/versions/3.11.1/lib/python3.11/subprocess.py", line 1024, in __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  File "/home/ken/.pyenv/versions/3.11.1/lib/python3.11/subprocess.py", line 1834, in _execute_child
    self.pid = _fork_exec(
               ^^^^^^^^^^^
TypeError: expected str, bytes or os.PathLike object, not NoneType