Plone 6.0.0a1

Milestone information

Project:
Plone
Series:
6.0
Version:
6.0.0a1
Released:
 
Registrant:
Maurits van Rees
Release registered:
Active:
Yes. Drivers can target bugs and blueprints to this milestone.  

Download RDF metadata

Activities

Assigned to you:
No blueprints or bugs assigned to you.
Assignees:
No users assigned to blueprints and bugs.
Blueprints:
No blueprints are targeted to this milestone.
Bugs:
No bugs are targeted to this milestone.

Download files for this release

File Description Downloads

Release notes 

# Release notes for Plone 6.0.0 alpha 1

Released: Friday October 22, 2021.

The first real alpha release of Plone 6 is here!

## Highlights

Some highlights of this release are:

- The big one: Volto as new front-end, using React, built with modern JavaScript tools.
- The backend is now called Plone Classic. It generally works the same as Plone 5.2, so if you are not ready for Volto yet, you can just use this.
- Removed Python 2 and Archetypes compatibility.
- Support only for Python 3.7, 3.8 and 3.9.
- Zope 5.3
- Removed `CMFQuickInstallerTool` dependency.
- Removed `CMFFormController` dependency and removed all remaining form controller scripts (`cpy`/`vpy`).
- Removed dependency on `Products.TemporaryFolder`.
  Note: in your `plone.recipe.zope2instance` buildout part, you must set `zodb-temporary-storage = off`,
  otherwise you get errors when starting Plone.
- Extensive overhaul of Plone UI elements based on Bootstrap 5 components.
- Introduction of icon resolver with use of `icon_expr` definitions.
- Barceloneta LTS theme
- Add control panel for relations
- Add plone.api.relation module to ease using relations.
- Use Dexterity for the Plone Site root object.
- Add a traverser `++api++` as an alternative to mark a request as REST request.

## Expected

There are some items that we want to include during the alpha phase, but which are not ready yet:

- Updated JavaScript for Plone Classic, using ES6 modules. No more through-the-web compiling of JavaScript.
- Replace `z3c.autoinclude` with `plone.autoinclude`. No more `includeDependencies`.
- An updated installation method to more easily combine the node frontend and Python backend.

## Installation

Some documentation about installation:

- Installation instructions from the Mastering Plone 6 training:
  https://training.plone.org/5/mastering-plone/installation.html
- Volto frontend installation:
  https://docs.voltocms.com/getting-started/install/

There is no Docker image for Plone 6 yet, so we will have to do the backend by hand.
The links above should give you information on how to install the prerequisites, like Python, also on Windows.
Here, we will focus on Unix-like systems (Linux, Mac OSX), but Windows should work as well.
The steps are:

* Install the Plone (Classic) backend with buildout or pip.
* Create the Plone Site in the browser.
* Install the Plone frontend (Volto) with node.

## Install backend with buildout

Change to a new directory and put a file `buildout.cfg` in it:

```
[buildout]
extends = https://dist.plone.org/release/6.0.0a1/versions.cfg
parts = instance

[instance]
recipe = plone.recipe.zope2instance
eggs =
    Plone
    plone.volto
user = admin:admin
zodb-temporary-storage = off
```

Install it with:

```
python3.9 -m venv .
bin/pip install -r https://dist.plone.org/release/6.0.0a1/requirements.txt
bin/buildout
bin/instance fg
```

## Install backend with pip

If you don't want to use buildout, you can install the Plone Python packages with `pip`.
Change to a new directory and then:

```
python3.9 -m venv .
bin/pip install -U pip setuptools wheel
bin/pip install Plone plone.volto -c https://dist.plone.org/release/6.0.0a1/constraints.txt --use-deprecated legacy-resolver
bin/mkwsgiinstance -u admin:admin -d .
bin/runwsgi -v etc/zope.ini
```

## Create Plone backend

After you have installed the backend with buildout or pip, open a browser and go to http://localhost:8080/.
If you want Plone Classic, click 'Create a new Plone site'.
If instead you want to prepare for the new Volto frontend, click the Advanced button.
In the Advanced form:

* Make sure the Path identifier is Plone. (You can change this, but then you need to change some Volto configuration as well.)
* uncheck 'Example content'
* check 'Plone 6 Frontend (Default content on homepage)'
* check 'Plone 6 Frontend (plone.volto)'

Submit the form and your backend is ready.
If you want Classic Plone, you are done.
If you want the full Plone 6 with Volto, read on.

## Frontend with node

You should probably read one of documentation pages linked above.
But the following gives you the general idea.

First install nvm, the Node Version Manager

* On Linux: `apt-get install nvm`
* On Mac: `brew install nvm`
* Or use the installation procedure detailed in the [nvm documentation](https://github.com/nvm-sh/nvm)

Create a Volto project:

```
nvm install --lts
npm install --global yarn
npm init yo @plone/volto
```

This will take long, and then ask for a project name.
It will create a directory with this name.
Go to that directory and start the frontend:

```
yarn start
```

In your browser go to http://localhost:3000.

You are done. Welcome to Plone 6!

Changelog 

View the full changelog

Zope: 4.6.3 → 5.3
-----------------

setuptools: 42.0.2 → 54.0.0
---------------------------

zc.buildout: 2.13.3 → 3.0.0b2
-----------------------------

pip: 20.3.4 → 21.0.1
--------------------

click: 7.1.2 → 8.0.1
--------------------

Genshi: 0.7.3 → 0.7.5
---------------------

incremental: 17.5.0 → 21.3.0
----------------------------

plone.recipe.zope2instance: 6.10.0 → 6.10.2
-------------------------------------------
Bug fixes:

- Fix ``python-dotenv`` dependency for Python 2 compatibility. [dataflake] (#181)

- Fix resource warning in tests. [icemac] (#176)

plone.releaser: 1.8.3 → 1.8.4
-----------------------------
Bug fixes:

- Do not offer updating core branches 4.3 and 5.1.
  Only 5.2 and 6.0 are maintained.
  [maurits] (#41)

python-dotenv: 0.15.0 → 0.19.0
------------------------------

plone.app.robotframework: 1.5.6 → 2.0.0a1
-----------------------------------------
Breaking changes:

- Update to Barceloneta-LTS selectors
  [petschki] (#123)

i18ndude: 5.4.0 → 5.4.1
-----------------------
Bug fixes:

- Support the define syntax from Chameleon.
  This is for the unpacking syntax, for example ``tal:define="(text,url) python:view.linkinfo"``.
  This avoids ``TALError: invalid define syntax`` when extracting messages from templates that use this.
  [maurits] (#36)

Products.StandardCacheManagers: 4.0.3 → 4.1.1
---------------------------------------------

Products.ZODBMountPoint: 1.0 → 1.2
----------------------------------

zope.dublincore: 4.2.0 → 4.3.0
------------------------------

zope.intid: 4.3.0 → 4.4.0
-------------------------

decorator: 4.4.2 → 5.0.9
------------------------

feedparser: 5.2.1 → 6.0.8
-------------------------

markdown: 3.1.1 → 3.3.4
-----------------------

pillow: 6.2.2 → 8.3.1
---------------------

pyrsistent: 0.15.7 → 0.18.0
---------------------------

python-dateutil: 2.8.1 → 2.8.2
------------------------------

simplejson: 3.17.0 → 3.17.3
---------------------------

unidecode: 0.04.1 → 1.2.0
-------------------------

icalendar: 4.0.7 → 4.0.9
------------------------
Bug fixes:

- Fix vCategories for correct en/de coding.
  [thet]

- vDuration property value: Fix changing duration sign after multiple ``to_ical`` calls.
  Ref: #320
  Fixes: #319
  [barlik]

- Support added for Python 3.9 and 3.10 (no code changes needed).

- Replace bare 'except:' with 'except Exception:' (#281)

Plone: 5.2.5 → 6.0.0a1
----------------------
Breaking changes:

- Create internal release on dist.plone.org. [maurits]

- Move ``setup.py`` metadata to ``setup.cfg``.
  [jensens]

Bug fixes:

- Release 6.0.0a1.dev1.
  Update: accidentally released as 6.0.0a1.
  [maurits]

plone.api: 1.11.0 → 2.0.0a2
---------------------------
Breaking changes:

- Drop support for Archetypes and Python 2.
  [pbauer] (#460)

New features:

- There is now a ``plone.api.relation`` module that make it easier to work with relations.
  [pbauer] (#449)

Bug fixes:

- Fixed IndexError when calling set_registry_record with wrong value.
  [maurits] (#435)

- Prevent startup error in relation code when ``plone.app.iterate`` is missing.
  [maurits] (#462)

plone.app.caching: 2.1.0 → 3.0.0a7
----------------------------------

plone.app.content: 3.8.8 → 4.0.0a6
----------------------------------

plone.app.contentlisting: 2.0.3 → 2.0.4
---------------------------------------
Bug fixes:

- Remove cyclic dependency with Products.CMFPlone
  [ericof] (#37)

plone.app.contentmenu: 2.3.3 → 2.3.4
------------------------------------
Bug fixes:

- Remove cyclic dependency with Products.CMFPlone
  [ericof] (#31)

plone.app.contentrules: 4.1.6 → 5.0.0a2
---------------------------------------
Breaking changes:

- Update for Plone 6 with Bootstrap markup
  [andreesg, agitator] (#63)

Bug fixes:

- Remove cyclic dependency with Products.CMFPlone
  [ericof] (#64)

plone.app.contenttypes: 2.2.2 → 3.0.0a4
---------------------------------------

plone.app.dexterity: 2.6.9 → 3.0.0a3
------------------------------------
Breaking changes:

- Update for Plone 6 with Bootstrap markup
  [petschki, agitator] (#322)

Bug fixes:

- Remove cyclic dependency with Products.CMFPlone
  [ericof] (#329)

- Update documentation. (#1)

plone.app.discussion: 3.4.4 → 4.0.0a3
-------------------------------------
New features:

- Refactor templates and styling for comments and controlpanel.
  [santonelli] (#169)

- Implement events for Comment (ICommentModifiedEvent) and Reply(IReplyModifiedEvent) modification [ericof] (#183)

- Refactor templates and styling for comments and controlpanel.
  [santonelli] (#169)

- Cleanup template and move message to python code.
  [santonelli] (#177)

Bug fixes:

- Add missing i18n:translate tags
  [erral] (#189)

- Fix tests with Products.MailHost 4.11.
  [maurits] (#174)

- Remove cyclic dependency with Products.CMFPlone
  [ericof] (#186)

- Fix tests with Products.MailHost 4.11.
  [maurits] (#174)

plone.app.event: 3.2.12 → 4.0.0a6
---------------------------------

plone.app.iterate: 4.0.1 → 4.0.2
--------------------------------
Bug fixes:

- Fixed issue with Publication behavior fields having different values in the baseline and working copy [ericof] (#97)

plone.app.layout: 3.4.6 → 4.0.0a4
---------------------------------
Breaking changes:

- Update for Plone 6 with Bootstrap markup
  [agitator, ale-rt, jensens, mauritsvanrees, mrtango, pbauer, petschki] (#250)

- Update dashboard for Plone 6 with Bootstrap markup
  [1letter] (#252)

- Update for Plone 6 with Bootstrap markup
  [agitator, ale-rt, jensens, mauritsvanrees, mrtango, pbauer, petschki] (#250)

- Update dashboard for Plone 6 with Bootstrap markup
  [1letter] (#252)

New features:

- add col visibility marker classes to body tag
  [MrTango] (#238)

- Protect @@historyview with Modify portal content permission. Fixes https://github.com/plone/Products.CMFPlone/issues/3297
  [pbauer] (#257)

- add icon_expr to actions dict
  [agitator] (#2967)

- add col visibility marker classes to body tag
  [MrTango] (#238)

- add icon_expr to actions dict
  [agitator] (#2967)

Bug fixes:

- Add missing i18n:translate tags
  [erral] (#264)

- Remove cyclic dependency with Products.CMFPlone
  [ericof] (#261)

- Show document_byline to public if `display_publication_date_in_byline` in site controlpanel is active. Only show author if `allow_anon_views_about` in security controlpanel is active. Show `modification_date` if not published or `modification_date` is greater that `effective_date`.
  [agitator] (#258)

plone.app.multilingual: 5.6.3 → 6.0.0a5
---------------------------------------

plone.app.portlets: 4.4.7 → 5.0.0a6
-----------------------------------

plone.app.querystring: 1.4.14 → 1.4.15
--------------------------------------
Bug fixes:

- Remove cyclic dependency with plone.app.vocabularies
  [sneridagh] (#101)

plone.app.registry: 1.7.8 → 2.0.0a5
-----------------------------------
Breaking changes:

- Update for Plone 6 with Bootstrap markup
  [jensens, petschki, agitator] (#45)

New features:

- Add JSONField Handler for plone.registry.field.JSONField
  - add component JSONFieldHandler
  - add Tests for Import and Export JSONField
  - add towncrier message
  [1letter] (#48)

Bug fixes:

- Add missing i18n:translate tag
  [erral] (#56)

- Remove cyclic dependency with Products.CMFPlone
  [sneridagh] (#54)

- Fix an issue that was preventing the edit of a registry record containing a "/" in its name [ale-rt] (#51)

plone.app.testing: 6.1.8 → 6.1.9
--------------------------------
Bug fixes:

- Fixed test that failed for dexterity site root.
  [jaroel, ale-rt] (#60)

plone.app.theming: 4.1.7 → 5.0.0a3
----------------------------------

plone.app.upgrade: 2.0.39 → 2.0.41
----------------------------------
Breaking changes:

- Upgrade step to make the Plone site a dexterity object (#256)

New features:

- Protect @@historyview with Modify portal content permission. Fixes https://github.com/plone/Products.CMFPlone/issues/3297
  [pbauer] (#254)

- Add relations controlpanel as part of https://github.com/plone/Products.CMFPlone/pull/3232
  [pbauer] (#255)

Bug fixes:

- Add an UUID to existing, migrated site roots. [jensens] (#258)

- Add upgrade to 5214, Plone 5.2.6.
  [maurits] (#5214)

- Renamed ``v60/profiles/to_alpha1`` to ``to6000``.
  We have no Plone alpha1 release yet, but do have a pre alpha.
  [maurits] (#6000)

- Added upgrade to 6001, Plone 6.0.0a1.dev1.
  [maurits]

  Fix icon_expr in typeinfo action
  [petschki] (#6001)

- Added upgrade to 6000, Plone 6.0.0a1.dev0.
  [maurits] (#600)

plone.app.users: 2.6.6 → 3.0.0a4
--------------------------------
Breaking changes:

- Update for Plone 6 with Bootstrap markup
  Fix registration form test
  [petschki, jensens, agitator] (#98)

- Update account-panel for Plone 6 with Bootstrap markup
  [1letter] (#99)

Bug fixes:

- Use registry API to access usergroup settings.
  Removes usages of deprecated API.
  [jensens] (#104)

- Remove cyclic dependency with Products.CMFPlone
  [sneridagh] (#102)

- Split up the chaotic navigation in users and groups into its parts. [jensens] (#1)

plone.app.vocabularies: 4.2.2 → 4.3.0
-------------------------------------
New features:

- Add new ``StaticCatalogVocabulary`` class providing a simplified mechanism for
  creating queryable content vocabularies. Allows use of e.g. AJAXSelectWidget for
  fields that store Relations or UUIDs. (#66)

plone.app.widgets: 3.0.5 → 3.0.6
--------------------------------
Bug fixes:

- Remove cyclic dependency with plone.app.z3cform
  [sneridagh] (#211)

plone.app.workflow: 4.0.4 → 5.0.0a2
-----------------------------------

plone.app.z3cform: 3.2.2 → 4.0.0a3
----------------------------------
Breaking changes:

- Update form widget implementation for Plone 6 with Bootstrap markup
  [petschki, balavec, agitator] (#127)

New features:

- Add support for more widget options when working with relation fields. (#125)

- - Added Exception for ValueError if value is (None,) and term_value can't be set [wkbkhard] (#121) (#121)

- Added Exception for ValueError if value is (None,) and term_value can't be set [wkbkhard] (#121) (#121)

Bug fixes:

- Fix form-error alert for BS5 (including invariants errors). [jensens] (#129)

- Fix widget display mode for Bootstrap 5. [jensens] (#130)

- Clean up rst documentation titles, spacing, add .vscode and .idea to gitignore.
  [balavec] (#0)

plone.batching: 1.1.7 → 2.0.0a1
-------------------------------

plone.dexterity: 2.10.2 → 2.10.4
--------------------------------
Bug fixes:

- Catch maximum recursion error when lookup FTI
  [petschki] (#155)

- Optimize local components access by shortcutting `utilities` attribute access. [jensens] (#156)

- Fix ft._updateProperty so it doesn't break when receiving an empty value.
  This happens when an DX FTI is part of a Generic Setup baseline import.
  Update more code to work when the Plone Site is a dexterity item.
  [jaroel] (#85)

- Codestyle black and isort [jensens] (#154)

plone.formwidget.namedfile: 2.1.2 → 3.0.0a4
-------------------------------------------

plone.formwidget.recurrence: 2.1.4 → 2.1.5
------------------------------------------
Bug fixes:

- Fix batch numbers computation
  [frapell] (#25)

plone.i18n: 4.0.6 → 5.0.0a2
---------------------------
Breaking changes:

- Drop support of Python 2 [jensens] (#31)

New features:

- Support Cyrillic and Latin character sets for Serbian.
  See `locales issue 326 <https://github.com/collective/plone.app.locales/issues/326>`_.
  [maurits, fredvd] (#326)

- Make it work with newwest Unidecode 1.2.0.
  Use its method instead of duplicating it in here.
  Also support newer unicode chars, like with `Bei Jing` in the example.
  [gogobd, jensens, alert] (#31)

plone.locking: 2.2.4 → 2.2.5
----------------------------
Bug fixes:

- Register a fallback @@plone_lock_info view to allow objects without plone.locking behavior to be edited.
  [ericof] (#3331)

plone.portlet.collection: 3.3.6 → 4.0.0a2
-----------------------------------------

plone.portlet.static: 3.1.6 → 4.0.0a1
-------------------------------------
Breaking changes:

- Update for Plone 6 with Bootstrap markup
  [petschki, agitator] (#22)

Bug fixes:

- Remove explicit required attribute on `omit_border` boolean
  [petschki] (#20)

plone.reload: 3.0.1 → 3.0.2
---------------------------
Bug fixes:

- Fix a deprecation warning [ale-rt]

- Fix missing doctype, add html lang, use html5 charset to reload page.
  [thet]

plone.rest: 1.6.2 → 2.0.0a1
---------------------------
New features:

- Add a traverser `++api++` as an alternative to mark a request as REST request.
  [jensens] (#113)

plone.restapi: 7.3.8 → 8.12.1
-----------------------------

plone.staticresources: 1.4.3 → 2.0.0a1
--------------------------------------

plone.supermodel: 1.6.3 → 1.6.4
-------------------------------
Breaking changes:

- Make finalizeSchema more robust by not handling behavior schema classes (#27)

plone.z3cform: 1.1.3 → 2.0.0a1
------------------------------
Breaking changes:

- Update for Plone 6 with Bootstrap markup
  Refs PLIP https://github.com/plone/Products.CMFPlone/issues/3061
  [petschki, ale-rt, agitator] (#16)

plonetheme.barceloneta: 2.1.10 → 3.0.0a6
----------------------------------------

Products.CMFEditions: 3.3.4 → 4.0.0a1
-------------------------------------
Breaking changes:

- Removed support for Archetypes, Zope 2 and Python 2.
  Removed Archetypes-only modifiers: ``RetainATRefs``, ``NotRetainATRefs``, ``SkipBlobs``, ``CloneBlobs``.
  Added upgrade step to remove these modifiers from the ``portal_modifier`` tool.
  This is for Plone 6 only.
  [maurits] (#74)

- Update for Plone 6 with Bootstrap markup
  [petschki] (#79)

New features:

- Handle broken VersionPolicies and modifiers in a nicer way.

  - ``ConditionalModifier.isApplicable``: return False when modifier is broken.
  - ``portal_repository.listPolicies``: log and ignore Broken VersionPolicies.

  [maurits] (#74)

- ``ConditionalModifier.isApplicable``: return False when modifier is broken.

- ``portal_repository.listPolicies``: log and ignore Broken VersionPolicies.

- Barceloneta LTS support
  [petschki] (#77)

Products.CMFPlone: 5.2.5 → 6.0.0a1.dev1
---------------------------------------

Breaking changes:

- Removed our CMFQuickInstallerTool code completely.
  See `PLIP 1775 <https://github.com/plone/Products.CMFPlone/issues/1775>`_.
  [maurits] (#1775)
- Use Dexterity for the Plone Site root object.
  This is `PLIP 2454 <https://github.com/plone/Products.CMFPlone/issues/2454>`_.
  [jaroel, ale-rt] (#2454)
- Removed dependency on ``Products.TemporaryFolder``.
  Note: in your ``plone.recipe.zope2instance`` buildout part, you must set ``zodb-temporary-storage = off``,
  otherwise you get errors when starting Plone.
  See `issue 2957 <https://github.com/plone/Products.CMFPlone/issues/2957>`_.
  [maurits] (#2957)
- A part of "Drop Python 2 Support for Plone 6" #2812:
  Reflect dropping of Python 2 support in setup.py.
  Bump version to 6.0
  [jensens] (#3041)
- Removed ``folder_publish.cpy`` script.
  Replaced with folder_publish browser view in ``plone.app.content``.
  Removed deprecated transitionObjectsByPaths.
  [maurits] (#3057)
- Removed Products.CMFFormController dependency.
  [maurits] (#3057)
- Removed ``content_status_modify.cpy`` script and its validator ``validate_content_status_modify.vpy``.
  Replaced with ``content_status_modify`` browser view in ``plone.app.content``.
  [maurits] (#3057)
- Barceloneta LTS theming (#3061)
- Remove six at all places where used. [jensens] (#3183)
- Remove ``portal_utf8`` and it twin ``utf8_portal`` from ``utils`` and ``PloneTool`` since its never used nowhere. [jensens] (#3183)
- Remove `meta_type` index and metadata from catalog.
  Both were unused in Plone core and rarely used in addons.
  [jensens] (#3208)
- Plone 6 with markup update for Bootstrap.
  Extensive overhaul of Plone ui elements based on Bootstrap components.
  Introduction of icon resolver with use of icon_epr definitions.
  [1letter, agitator, ale-rt, balavec, ericof, erral, frapell, fredvd, fulv, gomez, jensens, krissik,
  mauritsvanrees, mrtango, nilshofer, petschki, santonelli, thet, thomasmassmann, tkimngyuen,
  tschorr] (#3249)

New features:

- Custom date format strings from registry can be in the ``${}`` format as in the locales files.
  If theres a day or month name used, this will be translated.
  For bbb the classic strftime ``%`` strings are still behaving like before.
  [jensens] (#3084)
- Add icon resolver to return url or tag for given icon.
  [santonelli] (#3192)
- Include a controlpanel to inspect and rebuild relations.
  [pbauer] (#3231)
- Add PLONE60MARKER (and PLONE52MARKER) Python marker
  [sneridagh] (#3257)
- Protect @@historyview with Modify portal content permission. Fixes #3297
  [pbauer] (#3297)

Bug fixes:

- Use HTML5 meta charset.
  [malthe] (#2025)
- add icon_expr to view/edit action for @@iconresolver
  [petschki] (#3327)
- Set the "Show excluded items" (``show_excluded_items``) to False per default.
  Setting it to ``True`` can introduce a performance problem.
  ``False`` should be the default, also from user expectation for the ``exclude_from_nav`` setting on content items.
  No upgrade step!
  Previous behavior is just kept, unless you override it manually.
  See: #3055, first comment.
  Use this registry snippet to set it false::

      <?xml version="1.0"?>
      <registry>
        <records prefix="plone" interface="Products.CMFPlone.interfaces.controlpanel.INavigationSchema">
          <value key="show_excluded_items">False</value>
        </records>
      </registry>

  Fixes: #3035
  [thet] (#3329)
- Remove typo in ajax_main_template
  [petschki] (#3333)
- Fix some template issues to have properly translated messages (#3334)
- Updated metadata version to 6001.
  [maurits] (#6001)
- Add ``plone.app.caching`` to the list of add-ons that is upgraded when upgrading Plone.
  [maurits] (#82)
- Change control panel item sorting and sort them by title
  [erral] (#721)
- No longer doubly undo a response Content-Type change when combining bundles.
  [maurits] (#1924)
- Removed dependency on Products.Sessions.
  It is still pulled in by Products.PluggableAuthService though.
  See also `CMFPlacefulWorkflow issue 35 <https://github.com/plone/Products.CMFPlacefulWorkflow/issues/35>`_.
  [maurits] (#2957)
- Fix issue with @@search view when filtering by creation date
  [frapell] (#3007)
- Merge Hotfix20200121: isURLInPortal could be tricked into accepting malicious links. (#3021)
- Merge Hotfix20200121 Check of the strength of password could be skipped. (#3021)
- Improve tests for the workflow tool method listWFStatesByTitle (#3032)
- A default WSGI configuration requires Paste which is only installed with the Zope[wsgi] extra..
  [tschorr] (#3039)
- Fixed deprecation warning for zope.site.hooks.
  [maurits] (#3130)
- Fixed use of own ``utils.isDefaultPage``, which should be ``defaultpage.check_default_page_via_view``.
  [maurits] (#3130)
- Fixed invalid escape sequences in regular expressions.
  [maurits] (#3130)
- PloneBatch: define ``__bool__`` as copy of ``__nonzero__``.
  Python 3 calls ``__bool__`` when doing ``bool(batch)``.
  [maurits] (#3175)
- No longer consider calling ``len(batch)`` as deprecated.
  The deprecation warning is unvoidable with current ``Products.PageTemplates`` code.
  Fixes `issue 3176 <https://github.com/plone/Products.CMFPlone/issues/3176>`_.
  maurits (#3176)
- Fix tests with Products.MailHost 4.10.
  [maurits] (#3178)
- Applied: `find . -name "*.py" |grep -v skins|xargs pyupgrade --py36-plus --py3-only`.
  This auto-rewrites Python 2.7 specific syntax and code to Python 3.6+.
  [jensens] (#3185)
- Robot tests: Do not use jQuery.size() but use ``.length`` instead.
  ``.size()`` is deprecated since 1.8.
  [thet] (#3195)
- Remove traces of Archetypes
  [pbauer] (#3214)
- Fix problem to remove username and password from email settings if there was already one set.
  [jensens] (#3224)
- Fix migration when we have broken objects in the app root (e.g. the temp_folder) (#3245)
- Fixed tests in combination with Products.PluggableAuthService 2.6.0.
  [maurits] (#3251)
- Fix closing curly brace in search.pt template.
  [balavec] (#3252)
- Add the remote code execution fix from the `Products.PloneHotfix20210518 expressions patch <https://plone.org/security/hotfix/20210518/remote-code-execution-via-traversal-in-expressions>`_.
  We need this because Zope 4.6.2 is too strict for us.
  [maurits] (#3274)
- Removed the docstring from various methods to avoid making them available via a url.
  From the `Products.PloneHotfix20210518 reflected XSS fix <https://plone.org/security/hotfix/20210518/reflected-xss-in-various-spots>`_.
  [maurits] (#3274)
- Remove unused imports. [jensens] (#3299)
- Fix TypeError when adding a portlet. [daggelpop] (#3303)
- The portal catalog will not try to index itself anymore [ale-rt] (#3312)

Products.CMFUid: 3.1.0 → 3.2.0
------------------------------
- Add support for Python 3.9

- change package structure to move package code into a ``src`` subfolder

Products.GenericSetup: 2.1.3 → 2.1.4
------------------------------------
- Fix compatibility with Zope 5.3, where a lines property is expected to contain text,
  instead of bytes.
  (`#109 <https://github.com/zopefoundation/Products.GenericSetup/issues/109>`_)

Products.isurlinportal: 1.2.0 → 1.2.1
-------------------------------------
Bug fixes:

- Return False when a url is not like a string, for example None.
  Note: this is not a security fix.
  [maurits] (#8)

Products.PlonePAS: 6.0.8 → 7.0.0a1
----------------------------------

Products.PortalTransforms: 3.1.11 → 3.1.12
------------------------------------------
Bug fixes:

- Fix "ValueError: invalid literal for int() with base 10" when transforming some html to text.
  [pbauer] (#46)

Products.Sessions: 4.9 → 4.12
-----------------------------
- Fix PY2 bug in ``BrowserIdManager.getNewBrowserId``
  (`#45 <https://github.com/zopefoundation/Products.Sessions/issues/45>`_)

- Improve out-of-the-box experience by instantiating a session data container
  if the session data manager uses the default configuration that points
  to a temporary folder

- Reinstate simple sessioning with ``Products.TemporaryFolder``
  (`#43 <https://github.com/zopefoundation/Products.Sessions/issues/43>`_)

- Reduce usage of deprecated ``tempstorage`` for testing and remove warnings
  (`#41 <https://github.com/zopefoundation/Products.Sessions/issues/41>`_)

Products.ZSQLMethods: 3.9 → 3.14
--------------------------------

z3c.zcmlhook: 1.0b1 → 1.1
-------------------------

collective.z3cform.datagridfield: 1.5.3 → 2.0.1
-----------------------------------------------

plone.app.relationfield: 2.0.3 → 3.0.0a1
----------------------------------------
Breaking changes:

- Update tests for Barceloneta LTS
  [petschki] (#32)

zc.relationship: 2.0.post1 → 2.1
--------------------------------

Products.PrintingMailHost: 1.1.5 → 1.1.6
----------------------------------------

plone.app.standardtiles: 2.3.2 → 2.4.0
--------------------------------------

plone.app.tiles: 3.2.0 → 3.2.1
------------------------------

plone.tiles: 2.3.0 → 2.3.1
--------------------------
Bug fixes:

- Fix incorrectly set condition for plone.protect.
  [thet] (#33)

argcomplete: 1.11.1 → 1.12.3
----------------------------

cached-property: 1.5.1 → 1.5.2
------------------------------

check-manifest: 0.41 → 0.46
---------------------------

Deprecated: 1.2.10 → 1.2.12
---------------------------

distro: 1.5.0 → 1.6.0
---------------------

html5lib: 1.0.1 → 1.1i
----------------------

httplib2: 0.18.1 → 0.19.1
-------------------------

lazr.uri: 1.0.3 → 1.0.5
-----------------------

oauthlib: 3.1.0 → 3.1.1
-----------------------

pdbpp: 0.10.2 → 0.10.3
----------------------

pep517: 0.9.1 → 0.11.0
----------------------

progress: 1.5 → 1.6
-------------------

PyGithub: 1.45 → 1.47
---------------------

pyroma: 2.6.1 → 3.2
-------------------

smmap: 3.0.1 → 3.0.4
--------------------

stdlib-list: 0.6.0 → 0.8.0
--------------------------

wadllib: 1.3.3 → 1.3.5
----------------------

wcwidth: 0.1.9 → 0.2.5
----------------------

wmctrl: 0.3 → 0.4
-----------------

0 blueprints and 0 bugs targeted

There are no feature specifications or bug tasks targeted to this milestone. The project's maintainer, driver, or bug supervisor can target specifications and bug tasks to this milestone to track the things that are expected to be completed for the release.

This milestone contains Public information
Everyone can see this information.