Plone 5.2.1 released — Plo ne: Enterprise Level CMS - Free and OpenSource - Community Dr iven - Secure

"Announcement of Plone releases and security-related notifications. Recommended subscription for all Plone developers and site admins." <[email protected]> Thu, 16 Jan 2020 10:09:52 -0600
Newsgroups gmane.comp.web.zope.plone.announce
Message-ID <mailman.32187.1579191065.1370.plone-announce@lists.sourceforge.net>
--===============0049493889145922925==
Content-Type: multipart/alternative;
	boundary="Apple-Mail=_1196FDD1-4E34-4BA0-A125-A4AAE96D788B"


--Apple-Mail=_1196FDD1-4E34-4BA0-A125-A4AAE96D788B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=utf-8


>=20
> https://plone.org/download/releases/5.2.1 =
<https://plone.org/download/releases/5.2.1>
>=20
> Plone 5.2.1
>=20
> There may be hotfixes applicable to this release. Always check the =
Plone Hotfix page <https://plone.org/security/hotfixes/> before =
production deployment.
>=20
> Release notes
>=20
> License	GPL <http://creativecommons.org/licenses/GPL/2.0/>
> Date released	2020-01-13
> Release manager	Eric Steele <https://plone.org/profile/esteele>
> Plone 5.2.1 is a bug fix release of Plone 5.2 =
<../../../resolveuid/be45977ba24744d2bbd2a6d1f1f4cfe6>
> Linux/BSD/Unix users: Use the Unified Installer. It is a configuration =
and setup kit with build scripts.
>=20
> Windows 10 users: use the Unified Installer. See Windows-specific =
installation instructions =
<https://github.com/plone/Installers-UnifiedInstaller/blob/windows_install=
/docs/windows.rst>. Consider using the unified installer within the =
Windows Subsystem for Linux (WSL).
>=20
> OS X users: use the Vagrant kit or install XCode command-line tools =
and use the Unified Installer.
>=20
> Automated provisioning: See Plone's Ansible Playbook =
<http://docs.plone.org/external/ansible-playbook/docs> for a full-stack =
installation kit.
>=20
> Cross-platform Docker: install Docker <https://www.docker.com/> and =
use the Plone Docker image <https://github.com/plone/plone.docker>.
>=20
> For the Plone 5.2 upgrade guide, see =
https://docs.plone.org/manage/upgrading/ =
<https://docs.plone.org/manage/upgrading/index.html?highlight=3Dupgrade%20=
guide>
> Downloads
>=20
> Unified Installer
> all platforms (4.2MB) =
<https://launchpad.net/plone/5.2/5.2.1/+download/Plone-5.2.1-UnifiedInstal=
ler-r1.tgz>
> Vagrant / VirtualBox Kit
>  <https://github.com/plone/plonedev.vagrant/tree/5.2.1-3.7>
> Changes
>=20
> Zope 4.1.1 -> 4.1.3
>=20
> setuptools: 41.0.1 =E2=86=92 42.0.2
>=20
> plone.recipe.zope2instance: 6.3.0 =E2=86=92 6.5.1
>=20
> New features:
>=20
> added wsgi-ini-template option for specifying a custom template for =
the generation of the wsgi.ini configuration file [ajung] (119-1)
>=20
> advanced WSGI logging configuration options for specifying arbitrary =
logging handlers for event and access log [ajung] (119-2)
>=20
> added documentation and examples for advanced WSGI logger =
configuration [ajung] (119-3)
>=20
> Add Sentry support by adding a new filter to the WSGI pipeline. (#124)
>=20
> Bug fixes:
>=20
> for initialization option, string format works for instance console =
script not for the others
> [mamico] (#130)
>=20
> Add documentation for threads option. (#126)
>=20
> Fix documentation for http-address option. (#127)
>=20
> Fixed a deprecation warning when importing makerequest from =
Testing.ZopeTestCase.utils.
> This also fixes a side effect which can bite you if you rely on the =
ZOPETESTCASE environment variable, only being set to 1 during test runs. =
(#122)
>=20
> plone.releaser: 1.7.2 =E2=86=92 1.8.0
>=20
> New features:
>=20
> Handle coredev branch 6.0 when releasing packages.
> [maurits] (#27)
> Bug fixes:
>=20
> Fixed adding some package versions twice when releasing.
> [maurits] (#24)
>=20
> Fixed Python 3 compatibility. [maurits] (#25)
>=20
> tqdm: 4.32.2 =E2=86=92 4.40.0
>=20
> twine: 1.13.0 =E2=86=92 1.15.0
>=20
> zest.releaser: 6.19.0 =E2=86=92 6.19.1
>=20
> plone.app.robotframework: 1.5.2 =E2=86=92 1.5.3
>=20
> Bug fixes:
>=20
> Fix the Debug keyword (#114)
>=20
> Remove deprecation warnings [ale-rt] (#116)
>=20
> i18ndude: 5.3.0 =E2=86=92 5.3.1
>=20
> Bug fixes:
>=20
> Disallow non-word characters (but do allow dashes) in i18n:name
> attributes when running find-untranslated code analysis. [gyst] (#71)
> msgpack: 0.6.1 =E2=86=92 0.6.2
>=20
> Products.PythonScripts: 4.7 =E2=86=92 4.9
>=20
> prevent ResourceWarning/Error by closing default contents file
> (#39 =
<https://github.com/zopefoundation/Products.PythonScripts/issues/39>_)
>=20
> Show proper error message for not allowed identifiers.
> (#33 =
<https://github.com/zopefoundation/Products.PythonScripts/issues/33>_)
>=20
> Restore History ZMI tab as Zope is supporting it again.
> (#38 =
<https://github.com/zopefoundation/Products.PythonScripts/issues/38>_)
>=20
> Products.StandardCacheManagers: 4.0.2 =E2=86=92 4.0.3
>=20
> tempstorage: 5.0 =E2=86=92 5.1
>=20
> zope.app.locales: 4.0.1 =E2=86=92 4.1
>=20
> attrs: 19.1.0 =E2=86=92 19.3.0
>=20
> calmjs.parse: 1.1.3 =E2=86=92 1.2.1
>=20
> cssselect: 1.0.3 =E2=86=92 1.1.0
>=20
> decorator: 4.4.0 =E2=86=92 4.4.1
>=20
> future: 0.17.1 =E2=86=92 0.18.2
>=20
> futures: 3.2.0 =E2=86=92 3.3.0
>=20
> jsonschema: 3.0.1 =E2=86=92 3.2.0
>=20
> lxml: 4.3.4 =E2=86=92 4.4.2
>=20
> piexif: 1.1.2 =E2=86=92 1.1.3
>=20
> pillow: 6.1.0 =E2=86=92 6.2.1
>=20
> pyrsistent: 0.15.2 =E2=86=92 0.15.6
>=20
> python-dateutil: 2.8.0 =E2=86=92 2.8.1
>=20
> pytz: 2019.1 =E2=86=92 2019.3
>=20
> simplejson: 3.16.0 =E2=86=92 3.17.0
>=20
> urllib3: 1.25.3 =E2=86=92 1.25.7
>=20
> five.intid: 1.2.3 =E2=86=92 1.2.4
>=20
> Bug fixes:
>=20
> Also catch KeyError when traversing to fix creating relations during =
Copy&Paste in Zope 4.
> Fixes https://github.com/plone/Products.CMFPlone/issues/2866
> [pbauer] (#12)
>=20
> When looking up back-references the lookup using unrestrictedTraverse =
was way to slow.
> A simplified traverse speeds up the lookup by up 80x. [jensens, =
2silver] (#14)
>=20
> icalendar: 4.0.3 =E2=86=92 4.0.4
>=20
> Bug fixes:
>=20
> Reduce Hypothesis iterations to speed up testing, allowing PRs to pass
> [UniversalSuperBox]
> mockup: 3.0.2 =E2=86=92 3.1.1
>=20
> New features:
>=20
> Upgrade testing dependencies: Karma (from ~3.0.0 to ~4.1.0) and Mocha =
(from ~3.5.3 to ~6.1.4) (#913)
>=20
> Upgrade jQuery from version 1.11.3 to 1.12.4
> [davilima6] (#915)
>=20
> Upgrade jQuery-related dependencies:
>=20
> jqtree: from version 1.4.1 to 1.4.10
> jquery-form: from 3.5.1 to 4.2.2
> bootstrap: from 3.3.6 to 3.4.1
> pickadate: from 3.5.6 to 3.6.4 (#916)
> jqtree: from version 1.4.1 to 1.4.10
>=20
> jquery-form: from 3.5.1 to 4.2.2
>=20
> bootstrap: from 3.3.6 to 3.4.1
>=20
> pickadate: from 3.5.6 to 3.6.4 (#916)
>=20
> Bug fixes:
>=20
> tinymce: Fix tab labels for insert links and images
> [frapell] (#923)
>=20
> tinymce link popup external translation (#926)
>=20
> tinyimce link popup upload tab shows up even if upload is false in pat =
data (#927)
>=20
> pat-inlinevalidation: Avoid submitting files
> [frapell] (#903)
>=20
> Fix marking of navigation parents as inPath
> [agitator] (#906)
>=20
> Absolute positioning of default page objects in the structure pattern =
(take 2 on issue #895) (#908)
>=20
> Move toolbar to be above structure pattern, by increasing its z-index =
from 3 to 20 (fixes Products.CMFPlone#2490)
> [fulv] (#909)
>=20
> tinymce pattern: Add some lost i18n translations.
> [adam139] (#910)
>=20
> Fix SyntaxError caused by duplicate translation keys
> [davilima6] (#918)
>=20
> Fixed drag problem on click on sortable items in folder contents.
> [giuliaghisini] (#919)
>=20
> Fix Tinymce pattern: Link popup looses tab selection on active =
linktype
> [mamico]
> Fix autotoc pattern: activate the element link with active class =
during initialization
> [mamico] (#922)
>=20
> Plone: 5.2.0 =E2=86=92 5.2.1
>=20
> New features:
>=20
> Release Plone 5.2.1 final
> [esteele]
> plone.app.caching: 2.0.2 =E2=86=92 2.0.3
>=20
> Bug fixes:
>=20
> Fix python3 related encoding error on manual purge page.
> [agitator] (#51)
> plone.app.content: 3.7.0 =E2=86=92 3.7.4
>=20
> Bug fixes:
>=20
> Reversed the order of the translations list in plonejsi18n so custom =
ones come before defaults one (#187)
>=20
> Follow default_page_types setting when showing the items that can be =
selected as default page [erral] (#182)
>=20
> Description duplicated in object_rename form
> [mamico] (#186)
>=20
> Support plone.app.multilingual.RootCatalog.
> [jaroel] (#1)
>=20
> self.errors is a list, so .append() should be used.
> [frapell] (#2)
>=20
> plone.app.contentrules: 4.1.1 =E2=86=92 4.1.3
>=20
> Bug fixes:
>=20
> fix genericsetup export of properties of rules that have more complex =
fields such as IDict. (#50)
>=20
> Fix file extension condition. [mtrebron] (#48)
>=20
> plone.app.contenttypes: 2.1.2 =E2=86=92 2.1.5
>=20
> Bug fixes:
>=20
> for migration tests uninstall plone.app.contenttypes if previously =
installed
> [ericof] (#535)
>=20
> Fix richtext getText view to use the correct schema interface.
> [thet]
>=20
> Robot tests: split big content listing scenario, fix deprecations.
> [maurits] (#533)
>=20
> Clear schema cache after migration step migrate_to_pa_event. [jensens] =
(#531)
>=20
> Explicitly load zcml of dependencies, instead of using =
includeDependencies
> [maurits] (#2952)
>=20
> plone.app.dexterity: 2.6.3 =E2=86=92 2.6.4
>=20
> Bug fixes:
>=20
> Use https links to documentation. [vincentfretin] (#299)
>=20
> Update documentation introduction w/r/t archetypes (#301) (#302)
>=20
> Fix mr.bob command in documentation (#305)
>=20
> plone.app.discussion: 3.2.1 =E2=86=92 3.3.2
>=20
> New features:
>=20
> Notification for moderator: show email address of commentator. (#163)
>=20
> Link to the commented page for editing, approving, deleting comment =
instead of linking to /@@moderate-publish-comment and =
@@moderate-delete-comment.
> [ksuess] (#163)
>=20
> Additional view for approved comments
> [ksuess] (#159)
>=20
> Bug fixes:
>=20
> /@@moderate-publish-comment: publish only pending comment, else show =
status message "comment already approved".
> [ksuess] (#163)
>=20
> Use the shared 'Plone test setup' and 'Plone test teardown' keywords =
in Robot tests.
> [Rotonen] (#155)
>=20
> Load zcml of plone.resource for our use of the plone:static directive.
> [maurits] (#2952)
>=20
> plone.app.event: 3.2.4 =E2=86=92 3.2.6
>=20
> Bug fixes:
>=20
> Fix Python2 vs. Python3 text and bytes handling in the calendar =
portlet. (#308)
>=20
> Load zcml of plone.resource for our use of the plone:static directive.
> [maurits] (#2952)
>=20
> plone.app.iterate: 3.3.12 =E2=86=92 3.3.13
>=20
> Bug fixes:
>=20
> Explicitly load zcml of dependencies, instead of using =
includeDependencies.
> [maurits] (#2952)
> plone.app.layout: 3.2.1 =E2=86=92 3.4.0
>=20
> New features:
>=20
> Add is_navigation_root check in plone_context_state view
> [erral] (#225)
>=20
> Add a sorrounding div to the webstats js. Fixes #157
> [erral] (#157)
>=20
> Bug fixes:
>=20
> Fix Home tab localization [vincentfretin] (#222)
>=20
> Fix memory leak on getUserInfo [avoinea] (#204) (#210)
>=20
> Fix Unicode Error in folders with special chars. See #215 [erral] =
(#215)
>=20
> Add missing translation for screen readers
> [laulaz]
>=20
> Memory leak on getUserInfo [avoinea] (#204)
>=20
> plone.app.linkintegrity: 3.3.11 =E2=86=92 3.3.12
>=20
> Bug fixes:
>=20
> Explicitly load zcml of dependencies, instead of using =
includeDependencies.
> [maurits] (#2952)
> plone.app.locales: 5.1.18 =E2=86=92 5.1.21
>=20
> Megaupdate plone.po RU locale.
> [Serge73]
>=20
> Fix French translation.
> [laulaz]
>=20
> Update Japanese translations.
>=20
> Update Portuguese-BR translations.
>=20
> Update French translations.
>=20
> Update Slovenian translations, sync from POT files.
> [balavec]
>=20
> Update German: Inhalte werden "Erstellt" nicht "Erzeugt".
> [jensens]
>=20
> Minor fixes in Basque
> [erral]
>=20
> Update Spanish translation.
> [erral]
>=20
> Update basque translation
> [erral]
>=20
> Update Slovenian translations.
> [balavec]
>=20
> plone.app.multilingual: 5.3.5 =E2=86=92 5.5.0
>=20
> New features:
>=20
> Remove the 'set_language' parameter when 'always_set_cookie' is =
enabled in language control panel. See #362
> [erral] (#362)
>=20
> Add low level events and notifies:
> on register, update and remove of a translation to a translation =
groups.
> [jensens] (#256)
>=20
> Bug fixes:
>=20
> Use the shared 'Plone test setup' and 'Plone test teardown' keywords =
in Robot tests.
> [Rotonen] (#349)
>=20
> fix adding new language when Language Independent Folder has content
> [petschki] (#358)
>=20
> add/update translation forms doesn't show error return from z3c form =
validation
> [mamico] (#360)
>=20
> Remove deprecation warnings in tests.
> Increase readability
> Add code comments.
> Remove superfluos reindex of "Language" in manager.
> [jensens] (#256)
>=20
> wrong check for default addview in addtranslation traverser
> [mauro] (#355)
>=20
> Remove any dependency to archetypes.multilingual, since this is a =
indirection.
> Remove all dependencies that are already part of Products.CMFPlone.
> All version specifications were reduced to use a recent =
Products.CMFPlone.
> The decorator dependency is no longer used.
> [jensens] (#357)
>=20
> plone.app.portlets: 4.4.2 =E2=86=92 4.4.4
>=20
> Bug fixes:
>=20
> Remove role=3D"navigation" from Navigation portlet.
> [ericof] (#128) (#128)
> Remove role=3D"navigation" from Navigation portlet.
> [ericof] (#128) (#128)
>=20
> Fix review portlet when show on the portal-root (#130)
>=20
> Fix default value for label_msgid
> [erral] (#133)
>=20
> plone.app.querystring: 1.4.11 =E2=86=92 1.4.12
>=20
> Bug fixes:
>=20
> Integer criterions: try to convert all input to integers.
> Most notably this did not happen for unicode on Python 2.
> So a u"42" was passed as value to the catalog query, and this matched =
either all or nothing.
> [maurits] (#93)
> plone.app.redirector: 2.1.0 =E2=86=92 2.1.1
>=20
> Bug fixes:
>=20
> Allow performance tests to take more time.
> This seems needed on the Plone Jenkins test server when jobs are run =
in parallel.
> [maurits] (#20)
> plone.app.textfield: 1.3.1 =E2=86=92 1.3.2
>=20
> Bug fixes:
>=20
> Check if transform output is actual string on Python 2.
> [agitator] (#37)
> plone.app.theming: 4.0.1 =E2=86=92 4.0.4
>=20
> Bug fixes:
>=20
> Fix creating a new theme ttw in py2 with Zope 4.1.3.
> [pbauer] (#166)
>=20
> Load zcml of plone.resource for our use of the plone:static directive.
> [maurits] (#2952)
>=20
> Fixed Python3 TypeError: 'filter' object is not subscriptable.
> This happened when overriding a filesystem theme with a TTW version
> [fredvd] (#160)
>=20
> plone.app.upgrade: 2.0.27 =E2=86=92 2.0.31
>=20
> Bug fixes:
>=20
> Make sure plone.staticresources is installed to fix issues with site =
migrated from 5.0 or 5.1 to 5.2.1.
> Fixes https://github.com/plone/Products.CMFPlone/issues/2996
> [pbauer] (#223)
>=20
> Fixed error when upgrading relations.
> [maurits] (#220)
>=20
> Add Collection to the default_page_types setting
> [erral] (#216)
>=20
> Add empty upgrade step for Plone 5.1.6
> [esteele] (#214)
>=20
> plone.app.users: 2.6.0 =E2=86=92 2.6.2
>=20
> Bug fixes:
>=20
> Error happening during user add notification is logged. (#85)
>=20
> User feedback if error happens during user add notification. (#86)
>=20
> Fix default value for label_msgid. (#88)
> [erral]
>=20
> Fix many_groups usage in AddUserForm
> [tmassman] (#83)
>=20
> plone.app.vocabularies: 4.1.0 =E2=86=92 4.1.1
>=20
> Bug fixes:
>=20
> Principals vocabularies: Fixed handling of results from multiple PAS =
plugins (like pasldap and mutable_properties). (#60)
> plone.app.widgets: 3.0.2 =E2=86=92 3.0.3
>=20
> Bug fixes:
>=20
> Run robot tests as Member since the widget will move to the =
logged-in-bundle.
> [agitator] (#201)
> plone.app.z3cform: 3.1.1 =E2=86=92 3.1.3
>=20
> Bug fixes:
>=20
> Fix LinkWidget selected tab on edit #108
> [mamico] (#108)
> Fix LinkWidget selected tab on edit #108
> [mamico] (#108)
>=20
> Fix wrong default for method attribute in pt
> [mamico] (#107)
>=20
> plone.dexterity: 2.9.1 =E2=86=92 2.9.5
>=20
> Bug fixes:
>=20
> Speedup (~1.6x) parallel thread execution by removing superfluos =
synchronization [jensens] (#123)
>=20
> Invalidate cached FTIs on request to allow complex/long running =
auto-installations. [jensens]
>=20
> Fix thread safe recursion detection. This fixes an issue in =
plone.restapi: https://github.com/plone/plone.dexterity/issues/120. =
[jensens] (#120)
>=20
> The debug messages issued when a non existent behavior is recorded in =
an FTI have been improved [ale-rt] (#109)
>=20
> Avoid looking up behaviors with an empty name [ale-rt] (#110)
>=20
> Performance enhancement in schema cache by factor ~1.5.
> [jensens] (#113)
>=20
> Performance enhancement in schema cache and assignable.
> [jensens] (#115)
>=20
> Performance enhancement:
> Refine pre-filtering of attributes on content __getattr__.
> Filter out all permissions (ending with _Permission) and some =
portal-tools.
> Also often called aquired functions are skipped.
> [jensens] (#116)
>=20
> Performance enhancement: avoid a providedBy in _default_from_schema.
> [jensens] (#117)
>=20
> plone.folder: 3.0.0 =E2=86=92 3.0.1
>=20
> Bug fixes:
>=20
> Fixes slow lookup of documentToKeyMap in GopipIndex.
> About up to 66x speedup in some cases.
> This may add up to seconds less on large navtree renderings.
> [jensens] (#14)
> Fixes slow lookup of documentToKeyMap in GopipIndex.
> About up to 66x speedup in some cases.
> This may add up to seconds less on large navtree renderings.
> [jensens] (#14)
>=20
> plone.formwidget.namedfile: 2.0.9 =E2=86=92 2.0.10
>=20
> Bug fixes:
>=20
> set widget value to z3c.form.interfaces.NOT_CHANGED when the user =
selects 'Keep Existing File' in the widget, so z3c.form understands the =
field has not changed [flipmcf] (#41)
> plone.namedfile: 5.0.4 =E2=86=92 5.2.1
>=20
> New features:
>=20
> Load SVG files.
> [balavec] (#63)
>=20
> Add new interface =
plone.namedfile.interfaces.IPluggableFileFieldValidation and =
plone.namedfile.interfaces.IPluggableImageFieldValidation.
> Refactored: the fields validation now looks for adapters with this =
interfaces adapting field and value.
> All found adapters are called.
> The image content type checker (existed before) is by now the only =
adapter implemented and registered so far.
> Other adapters can be registered in related or custom code.
> [jensens] (#81)
>=20
> Bug fixes:
>=20
> Fix tiff support. Remove process_tiff and let the PIL do the work.
> [mamico] (#85)
>=20
> Fix content_type in getImageInfo when using PIL.
> [mamicp] (#85)
>=20
> fix ResourceWarnings for unclosed files
> [mamico] (#80)
>=20
> plone.portlet.collection: 3.3.1 =E2=86=92 3.3.2
>=20
> Bug fixes:
>=20
> Fix deprecated import isDefaultPage.
> [jensens]
> plone.protect: 4.1.2 =E2=86=92 4.1.3
>=20
> Bug fixes:
>=20
> When marking an OOBTree as safe, also mark its buckets as safe. Fixes =
issues with objects that have many annotations. (#88)
> plone.rest: 1.4.0 =E2=86=92 1.6.0
>=20
> New features:
>=20
> Remove CMFPlone and make plone.app.redirector dependency optional =
[timo] (#81)
>=20
> Brown bag release.
>=20
> Brown bag release.
>=20
> plone.restapi: 4.3.1 =E2=86=92 6.1.0
>=20
> Breaking changes:
>=20
> Remove IAPIRequest marker interface from plone.restapi. The correct =
interface should be imported from plone.rest.interfaces instead. If =
anybody was using this marker Interface, it didn't do anything. (#819)
>=20
> Rename tiles behavior and fields to blocks, migration step.
> [timo, sneridagh] (#821)
>=20
> New features:
>=20
> Add SearchableText indexing for text in blocks
> [luca-bellenghi] (#844)
>=20
> Add Python 3.8 support @timo (#829)
>=20
> Add @sources and @querysources endpoints, and link to them from JSON =
schema in @types response.
> [lgraf] (#790)
>=20
> Add @querystring-search endpoint that returns the results of a search =
using a p.a.querystring query.
> [sneridagh] (#789)
>=20
> Use Plone 5.2 and Python 3 as default to generate documentation. =
[timo] (#800)
>=20
> Add @querystring endpoint that dumps p.a.querystring config.
> [lgraf] (#754)
>=20
> Bug fixes:
>=20
> Prevent converting bytestring ids to unicode ids when reordering (see =
upgrade guide for potential migration).
> [deiferni] (#827)
>=20
> Change to use the short name for the Blocks behavior instead of using =
the interface one. It fixes #838.
> [sneridagh] (#838)
>=20
> Fix filtering vocabs and sources by title with non-ASCII characters.
> [lgraf] (#825)
>=20
> Fix serialization of vocabulary items for fields that need hashable =
items (e.g. sets).
> [buchi] (#788)
>=20
> Fixed startup error when Archetypes is there, but plone.app.blob or =
plone.app.collection not.
> [maurits] (#690)
>=20
> Explicitly load zcml of dependencies, instead of using =
includeDependencies
> [maurits] (#2952)
>=20
> Fire ModifiedEvent when field is set to null in a PATCH request.
> [phgross] (#802)
>=20
> Testing: Drop freezegun and instead selectively patch some timestamp =
accessors.
> [lgraf] (#803)
>=20
> Make group serializer results predictable by returning sorted item =
results. [timo] (#798)
>=20
> Fix typo in the tiles_layout field title name.
> [sneridagh] (#785)
>=20
> plone.schemaeditor: 2.0.20 =E2=86=92 2.1.0
>=20
> New features:
>=20
> Deleting fieldsets is now possible through the UI. (#69)
> Bug fixes:
>=20
> Don't show an error when a "required" field doesn't have a default. =
Also added a "Done" button. (#71)
> plone.staticresources: 1.1.0 =E2=86=92 1.2.1
>=20
> New features:
>=20
> Update jQuery from version 1.11.3 to 1.12.4
> [davilima6] (#34)
>=20
> Recompile 'plone' bundle after updating jQuery-related packages (#40)
>=20
> Update all components and recompile bundles. (#44)
>=20
> Split up bundles for more flexibility and optimized resource loading.
> Move select2 and datepicker to logged-in bundle.
> Move toolbar, portletmanager, querystring and structure pattern to =
editor bundle.
> Move tinymce to it's own bundle.
> Single out moment.js to reduce plone bundle size and allow async =
loading.
> Add optional datatables bundle.
> [agitator] (#46)
>=20
> Bug fixes:
>=20
> Fixed drag problem on click on sortable items in folder contents. =
(#56)
>=20
> Fix problem with TTW compilation of bundles. (#58)
>=20
> Fix autotoc pattern: activate the element link with active class =
during initialization
> [mamico] (#37)
>=20
> Fix Tinymce pattern: Link popup looses tab selection on active =
linktype
> [mamico] (#37)
>=20
> build js/css for mockup changes plone/mockup#922
> [mamico] (#37)
>=20
> When compiling a bundle and including a resource from a request, open =
the
> temporary file in binary mode.
> [frapell] (#38)
>=20
> Bring fix for https://github.com/plone/mockup/issues/923
> [frapell] (#41)
>=20
> Fix "TTW Bundle compilation broken".
> Refs: https://github.com/plone/Products.CMFPlone/issues/2969
> [thet] (#43)
>=20
> plone.supermodel: 1.4.0 =E2=86=92 1.5.0
>=20
> New features:
>=20
> Add support for choices of integers for improved registry.xml export.
> [jone] (#32)
> Bug fixes:
>=20
> tests to ensure schema.Set is serialized consistently (#30)
> plone.testing: 7.0.2 =E2=86=92 7.0.3
>=20
> Bug fixes:
>=20
> Fix issue with test-setup when using ZServer 4.0.2.
> [pbauer] (#69)
> plone.z3cform: 1.1.0 =E2=86=92 1.1.1
>=20
> Bug fixes:
>=20
> Fix edit/delete in paginated crud-forms [fRiSi]
> plonetheme.barceloneta: 2.1.4 =E2=86=92 2.1.6
>=20
> Bug fixes:
>=20
> Revert "Fix the different width of Hide and Show button in action =
control panel" [vincentfretin] (#187)
>=20
> Load zcml of plone.resource for our use of the plone:static directive.
> [maurits] (#2952)
>=20
> Products.CMFCore: 2.4.0 =E2=86=92 2.4.2
>=20
> Resolve docutils dependency conflict with Zope.
> (#83 <https://github.com/zopefoundation/Products.CMFCore/issues/83>_)
>=20
> Make sure FSFile.__str__ returns correct native strings under Python =
3.
> (#76 <https://github.com/zopefoundation/Products.CMFCore/issues/76>_)
>=20
> Add a __bytes__ method to FSFile.
>=20
> Add more files types to the FSFile registrations.
>=20
> Products.CMFEditions: 3.3.2 =E2=86=92 3.3.3
>=20
> Bug fixes:
>=20
> Fix DeprecationWarning [jensens] (#71)
> Products.CMFPlone: 5.2.0 =E2=86=92 5.2.1
>=20
> New features:
>=20
> Add plone.staticresources to list of addons which are automatically =
upgraded if upgrade steps are available.
> [thet] (#2976)
> Bug fixes:
>=20
> fix creation of Plone site not adding default Dexterity content types =
if example content not explicitily selected by user.
> [ericof] (#1318)
>=20
> fix default value for email msgid
> [erral] (#2790)
>=20
> Fix: PasswordResetView::getErrors is called, this ensures password is =
validated through RegistrationTool before attempting to reset password.
> [nazrulword] (#2917)
>=20
> Breadcrumbs: consider hidden folders when creating urls [ksuess] =
(#2935)
>=20
> Add Collection to the default_page_types list
> [erral] (#2956)
>=20
> Fix localization of "Site setup" in some control panels =
[vincentfretin] (#2958)
>=20
> Fix TTW Bundle compilation broken.
> [thet] (#2969)
>=20
> Do not save type settings in "content-controlpanel" when switching =
between types.
> [cekk] (#2986)
>=20
> Correctly fire events when user autologin after the password has been =
reset.
> [ericof] (#2993)
>=20
> Products.DateRecurringIndex: 3.0.0 =E2=86=92 3.0.1
>=20
> remove unicode char from CONTRIBUTORS.rst
> [tkimnguyen]
> Products.GenericSetup: 2.0 =E2=86=92 2.0.1
>=20
> Fix the sorting of upgrade steps. [vanderbauwhede]
> Products.PlonePAS: 6.0.2 =E2=86=92 6.0.5
>=20
> Bug fixes:
>=20
> Notify CredentialsUpdated event when password is changed
> [ezvirtual] (#33)
> Notify CredentialsUpdated event when password is changed
> [ezvirtual] (#33)
>=20
> Notify PropertiesUpdated event when member properties are changed
> [ezvirtual]
> Add simple test for PropertiesUpdated event
> [ezvirtual] (#27)
>=20
> Notify PropertiesUpdated event when member properties are changed
> [ezvirtual]
>=20
> Add simple test for PropertiesUpdated event
> [ezvirtual] (#27)
>=20
> Log exception from PAS logout() instead of swallowing them
> [ajung] (#50)
>=20
> Fix deprecated imports.
> Fix buildout infrastructure for Plone 5.2.
> [thet] (#51)
>=20
> Create the MemberData object from an adapter instead of directly =
instantiating it, as intended in Products.CMFCore.MemberDataTool.
> This allows for better extensibility.
> [thet] (#52)
>=20
> Products.PluggableAuthService: 2.0 =E2=86=92 2.2.1
>=20
> Fix broken ICredentialsUpdatedEvent event handler call to =
updateCredentials.
> (#59 =
<https://github.com/zopefoundation/Products.PluggableAuthService/issues/59=
>_)
>=20
> Add new events to be able to notify when a principal is added to
> or removed from a group. Notify these events when principals are
> added or removed to a group in ZODBGroupManager
> (#17 =
<https://github.com/zopefoundation/Products.PluggableAuthService/issues/17=
>_)
>=20
> Fix bug in getRolesForPrincipal for non PAS user.
>=20
> Fix formatting in "Plugin Types" documentation.
>=20
> Fixed error assigning roles in manage_roles page in ZMI.
> See issues #43 =
<https://github.com/zopefoundation/Products.PluggableAuthService/issues/43=
>
> and #51 =
<https://github.com/zopefoundation/Products.PluggableAuthService/issues/51=
>.
>=20
> Products.PluginRegistry: 1.7 =E2=86=92 1.8
>=20
> Rely on Zope 4 branch for unit tests to retain Python 2 compatibility
>=20
> Add movePluginsTop method to registry.
>=20
> Fix linting.
>=20
> Products.Sessions: 4.5 =E2=86=92 4.6
>=20
> Banish dependency on Products.TemporaryFolder into a tests extra
> and point out its issues under Zope 4 in the README.
> (#26 <https://github.com/zopefoundation/Products.Sessions/issues/26>_)
>=20
> Switch tests dependencies to Zope 4.x branch to retain Python 2 =
compatibility
>=20
> Fix access permissions for meta_type and zmi_icon properties so
> they don't raise when accessed in the admin interface.
> (#24 <https://github.com/zopefoundation/Products.Sessions/pull/24>_)
>=20
> Fix Python 3 compatibility of _p_resolveConflict.
> (#25 <https://github.com/zopefoundation/Products.Sessions/pull/25>_)
>=20
> Products.ZSQLMethods: 3.0.7 =E2=86=92 3.0.9
>=20
> z3c.caching: 2.1 =E2=86=92 2.2
>=20
> Fix DeprecationWarnings: import moves from zope.component to =
zope.interface.
> Depend on zope.interface >=3D 3.8.0.
> [jensens]
>=20
> Add support for Python 3.8a3.
> [icemac]
>=20
> zodbverify: 1.0.1 =E2=86=92 1.0.2
>=20
> Bug fixes:
>=20
> Open Data.fs in read only mode. (#2)
> collective.z3cform.datagridfield: 1.5.1 =E2=86=92 1.5.2
>=20
> plone.formwidget.datetime: 1.3.4 =E2=86=92 1.3.5
>=20
> z3c.relationfield: 0.8.0 =E2=86=92 0.9.0
>=20
> New features:
>=20
> Provide IRelationBrokenEvent to be able to distinguish the event when
> subscribing to IObjectModifiedEvent
> [vangheem]
> plone.app.blocks: 4.3.1 =E2=86=92 4.3.2
>=20
> plone.app.standardtiles: 2.3.1 =E2=86=92 2.3.2
>=20
> trollius: 2.2 =E2=86=92 2.2.post1
>=20
> plone.app.imaging: 2.1.0 =E2=86=92 2.1.1
>=20
> Bug fixes:
>=20
> Fix IOError: cannot write mode RGBA as JPEG on ImageField scale
> [avoinea]
> archetypes.multilingual: 3.0.6 =E2=86=92 3.0.8
>=20
> Bug fixes:
>=20
> Fix export of components by adding a __name__ property to the handler.
> [maurits] (#27)
>=20
> Fix test dependency for Plone 5.2
> [jensens] (#28)
>=20
> Project resources
>=20
> Security <https://plone.org/security>
> Issue tracker <https://github.com/plone/Products.CMFPlone/issues/new>
> Support <https://plone.org/support>
> Learn about Plone
>=20
> Installing Plone <http://docs.plone.org/manage/installing/index.html>
> Plone quickstart guide <http://docs.plone.org/quickstart/index.html>
> Working with content =
<http://docs.plone.org/working-with-content/index.html>
> Adapting and extending Plone =
<http://docs.plone.org/adapt-and-extend/index.html>=

--Apple-Mail=_1196FDD1-4E34-4BA0-A125-A4AAE96D788B
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=utf-8

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html; =
charset=3Dutf-8"><base></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; line-break: after-white-space;" class=3D""><base=
 class=3D""><div class=3D"Apple-Mail-URLShareUserContentTopClass"><br =
class=3D""></div><div =
class=3D"Apple-Mail-URLShareWrapperClass"><blockquote type=3D"cite" =
style=3D"border-left-style: none; color: inherit; padding: inherit; =
margin: inherit;" class=3D""><div class=3D""><div =
class=3D"original-url"><br class=3D""><a =
href=3D"https://plone.org/download/releases/5.2.1" =
class=3D"">https://plone.org/download/releases/5.2.1</a><br class=3D""><br=
 class=3D""></div><div id=3D"article" role=3D"article" =
style=3D"text-rendering: optimizeLegibility; font-family: =
-apple-system-font; font-size: 1.2em; line-height: 1.5em; margin: 0px; =
padding: 0px;" class=3D"system exported">
        <!-- This node will contain a number of div.page. -->
    <div class=3D"page" style=3D"word-wrap: break-word; max-width: =
100%;"><h1 class=3D"title" style=3D"font-size: 1.95552em; line-height: =
1.2141em; margin-top: 0px; margin-bottom: 0.5em; max-width: 100%;">Plone =
5.2.1</h1>

         =20
   =20

    <div style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: =
100%;" class=3D"">There may be hotfixes applicable to this release. =
Always check the <a href=3D"https://plone.org/security/hotfixes/" =
style=3D"color: rgb(65, 110, 210); max-width: 100%;" class=3D"">Plone =
Hotfix page</a> before production deployment.</p>
    </div>

  <h3 style=3D"font-size: 1.25em; max-width: 100%;" class=3D"">Release =
notes</h3>
    <div class=3D"scrollable" style=3D"max-width: 100%; overflow-x: =
scroll; word-wrap: normal;"><table style=3D"max-width: none; font-size: =
0.9em; word-wrap: break-word; border-collapse: collapse;" class=3D"">
      <tbody style=3D"max-width: 100%;" class=3D"">
        <tr style=3D"max-width: 100%;" class=3D""><th style=3D"max-width: =
100%; padding: 0.25em 0.5em; border: 1px solid rgb(216, 216, 216); =
background-color: rgba(0, 0, 0, 0.0235294);" class=3D"">License</th><td =
style=3D"max-width: 100%; padding: 0.25em 0.5em; border: 1px solid =
rgb(216, 216, 216);" class=3D""><a =
href=3D"http://creativecommons.org/licenses/GPL/2.0/" style=3D"color: =
rgb(65, 110, 210); max-width: 100%;" class=3D"">GPL</a></td></tr>
        <tr style=3D"max-width: 100%;" class=3D""><th style=3D"max-width: =
100%; padding: 0.25em 0.5em; border: 1px solid rgb(216, 216, 216); =
background-color: rgba(0, 0, 0, 0.0235294);" class=3D"">Date =
released</th><td style=3D"max-width: 100%; padding: 0.25em 0.5em; =
border: 1px solid rgb(216, 216, 216);" class=3D"">2020-01-13</td></tr>
        <tr style=3D"max-width: 100%;" class=3D""><th style=3D"max-width: =
100%; padding: 0.25em 0.5em; border: 1px solid rgb(216, 216, 216); =
background-color: rgba(0, 0, 0, 0.0235294);" class=3D"">Release =
manager</th><td style=3D"max-width: 100%; padding: 0.25em 0.5em; border: =
1px solid rgb(216, 216, 216);" class=3D""><a =
href=3D"https://plone.org/profile/esteele" style=3D"color: rgb(65, 110, =
210); max-width: 100%;" class=3D"">Eric Steele</a></td></tr>
      </tbody>
    </table></div>
    <div style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: =
100%;" class=3D"">Plone 5.2.1 is a bug fix release of <a =
href=3D"../../../resolveuid/be45977ba24744d2bbd2a6d1f1f4cfe6" =
data-linktype=3D"internal" data-val=3D"be45977ba24744d2bbd2a6d1f1f4cfe6" =
style=3D"color: rgb(65, 110, 210); max-width: 100%;" class=3D"">Plone =
5.2</a></p><p style=3D"max-width: 100%;" class=3D""><strong =
style=3D"max-width: 100%;" class=3D"">Linux/BSD/Unix =
users:</strong>&nbsp;Use the&nbsp;<em style=3D"max-width: 100%;" =
class=3D"">Unified Installer</em>. It is a&nbsp;configuration and setup =
kit with build scripts.</p><p style=3D"max-width: 100%;" =
class=3D""><strong style=3D"max-width: 100%;" class=3D"">Windows 10 =
users:</strong>&nbsp;use the Unified Installer. See&nbsp;<a =
href=3D"https://github.com/plone/Installers-UnifiedInstaller/blob/windows_=
install/docs/windows.rst" style=3D"color: rgb(65, 110, 210); max-width: =
100%;" class=3D"">Windows-specific installation instructions</a>. =
Consider using the unified installer within the Windows Subsystem for =
Linux (WSL).</p><p style=3D"max-width: 100%;" class=3D""><strong =
style=3D"max-width: 100%;" class=3D"">OS X users:</strong>&nbsp;use the =
Vagrant kit or install XCode command-line tools and use the Unified =
Installer.</p><p style=3D"max-width: 100%;" class=3D""><strong =
style=3D"max-width: 100%;" class=3D"">Automated =
provisioning:</strong>&nbsp;See&nbsp;<a =
href=3D"http://docs.plone.org/external/ansible-playbook/docs" =
style=3D"color: rgb(65, 110, 210); max-width: 100%;" class=3D"">Plone's =
Ansible Playbook</a>&nbsp;for a full-stack installation kit.</p><p =
style=3D"max-width: 100%;" class=3D""><strong style=3D"max-width: 100%;" =
class=3D"">Cross-platform Docker:</strong> install <a =
href=3D"https://www.docker.com/" data-linktype=3D"external" =
data-val=3D"https://www.docker.com/" style=3D"color: rgb(65, 110, 210); =
max-width: 100%;" class=3D"">Docker</a> and use the <a =
href=3D"https://github.com/plone/plone.docker" data-linktype=3D"external" =
data-val=3D"https://github.com/plone/plone.docker" style=3D"color: =
rgb(65, 110, 210); max-width: 100%;" class=3D"">Plone Docker =
image</a>.</p><p style=3D"max-width: 100%;" class=3D"">For the Plone 5.2 =
upgrade guide, see <a =
href=3D"https://docs.plone.org/manage/upgrading/index.html?highlight=3Dupg=
rade%20guide" style=3D"color: rgb(65, 110, 210); max-width: 100%;" =
class=3D"">https://docs.plone.org/manage/upgrading/</a></p>


</div>

  <h3 style=3D"font-size: 1.25em; max-width: 100%;" =
class=3D"">Downloads</h3>
  <ul style=3D"max-width: 100%;" class=3D"">
    <li style=3D"max-width: 100%;" class=3D"">
      <a =
href=3D"https://launchpad.net/plone/5.2/5.2.1/+download/Plone-5.2.1-Unifie=
dInstaller-r1.tgz" style=3D"color: rgb(65, 110, 210); max-width: 100%;" =
class=3D"">
        Unified Installer<br style=3D"max-width: 100%;" class=3D"">
        <small style=3D"max-width: 100%;" class=3D"">all platforms =
(4.2MB)</small>
      </a>
    </li>
    <li style=3D"max-width: 100%;" class=3D"">
      <a href=3D"https://github.com/plone/plonedev.vagrant/tree/5.2.1-3.7"=
 style=3D"color: rgb(65, 110, 210); max-width: 100%;" class=3D"">
        Vagrant / VirtualBox Kit<br style=3D"max-width: 100%;" class=3D"">=

        <small style=3D"max-width: 100%;" class=3D""> </small>
      </a>
    </li>
  </ul>
 =20
    <h3 style=3D"font-size: 1.25em; max-width: 100%;" =
class=3D"">Changes</h3>
    <div style=3D"max-width: 100%;" class=3D""><h4 style=3D"font-size: =
1em; margin: 1em 0px; max-width: 100%;" class=3D"">Zope 4.1.1 -&gt; =
4.1.3</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">setuptools: 41.0.1 =E2=86=92 42.0.2</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.recipe.zope2instance: 6.3.0 =E2=86=92 6.5.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">added <code style=3D"max-width: 100%;" =
class=3D"">wsgi-ini-template</code> option for specifying a custom =
template for the generation of the <code style=3D"max-width: 100%;" =
class=3D"">wsgi.ini</code> configuration file [ajung] (119-1)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">advanced WSGI logging configuration options for specifying =
arbitrary logging handlers for event and access log [ajung] (119-2)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">added documentation and examples for advanced WSGI logger =
configuration [ajung] (119-3)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add Sentry support by adding a new filter to the WSGI =
pipeline. (#124)</p>
</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">for initialization option, string format works for instance =
console script not for the others<br style=3D"max-width: 100%;" =
class=3D"">
  [mamico] (#130)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add documentation for <code style=3D"max-width: 100%;" =
class=3D"">threads</code> option. (#126)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix documentation for http-address option. (#127)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fixed a deprecation warning when importing <code =
style=3D"max-width: 100%;" class=3D"">makerequest</code> from <code =
style=3D"max-width: 100%;" =
class=3D"">Testing.ZopeTestCase.utils</code>.<br style=3D"max-width: =
100%;" class=3D"">
  This also fixes a side effect which can bite you if you rely on the =
<code style=3D"max-width: 100%;" class=3D"">ZOPETESTCASE</code> =
environment variable, only being set to <code style=3D"max-width: 100%;" =
class=3D"">1</code> during test runs. (#122)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.releaser: 1.7.2 =E2=86=92 1.8.0</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Handle coredev branch 6.0 when =
releasing packages.<br style=3D"max-width: 100%;" class=3D"">
  [maurits] (#27)</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fixed adding some package versions twice when releasing.<br =
style=3D"max-width: 100%;" class=3D"">
  [maurits] (#24)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fixed Python 3 compatibility.  [maurits] (#25)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">tqdm: 4.32.2 =E2=86=92 4.40.0</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">twine: 1.13.0 =E2=86=92 1.15.0</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">zest.releaser: 6.19.0 =E2=86=92 6.19.1</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.robotframework: 1.5.2 =E2=86=92 1.5.3</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix the Debug keyword (#114)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Remove deprecation warnings [ale-rt] (#116)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">i18ndude: 5.3.0 =E2=86=92 5.3.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Disallow non-word characters =
(but do allow dashes) in <code style=3D"max-width: 100%;" =
class=3D"">i18n:name</code><br style=3D"max-width: 100%;" class=3D"">
  attributes when running <code style=3D"max-width: 100%;" =
class=3D"">find-untranslated</code> code analysis. [gyst] (#71)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">msgpack: 0.6.1 =E2=86=92 0.6.2</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.PythonScripts: 4.7 =E2=86=92 4.9</h4>
<ul class=3D"code-block" style=3D"max-width: 100%;">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">prevent ResourceWarning/Error by closing default contents =
file<br style=3D"max-width: 100%;" class=3D"">
  (<code style=3D"max-width: 100%;" class=3D"">#39 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.PythonScripts/issues/39=
" =
class=3D"">https://github.com/zopefoundation/Products.PythonScripts/issues=
/39</a>&gt;</code>_)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Show proper error message for not allowed identifiers.<br =
style=3D"max-width: 100%;" class=3D"">
  (<code style=3D"max-width: 100%;" class=3D"">#33 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.PythonScripts/issues/33=
" =
class=3D"">https://github.com/zopefoundation/Products.PythonScripts/issues=
/33</a>&gt;</code>_)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Restore History ZMI tab as Zope is supporting it again.<br =
style=3D"max-width: 100%;" class=3D"">
  (<code style=3D"max-width: 100%;" class=3D"">#38 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.PythonScripts/issues/38=
" =
class=3D"">https://github.com/zopefoundation/Products.PythonScripts/issues=
/38</a>&gt;</code>_)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.StandardCacheManagers: 4.0.2 =E2=86=92 4.0.3</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">tempstorage: 5.0 =E2=86=92 5.1</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">zope.app.locales: 4.0.1 =E2=86=92 4.1</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">attrs: 19.1.0 =E2=86=92 19.3.0</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">calmjs.parse: 1.1.3 =E2=86=92 1.2.1</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">cssselect: 1.0.3 =E2=86=92 1.1.0</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">decorator: 4.4.0 =E2=86=92 4.4.1</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">future: 0.17.1 =E2=86=92 0.18.2</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">futures: 3.2.0 =E2=86=92 3.3.0</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">jsonschema: 3.0.1 =E2=86=92 3.2.0</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">lxml: 4.3.4 =E2=86=92 4.4.2</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">piexif: 1.1.2 =E2=86=92 1.1.3</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">pillow: 6.1.0 =E2=86=92 6.2.1</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">pyrsistent: 0.15.2 =E2=86=92 0.15.6</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">python-dateutil: 2.8.0 =E2=86=92 2.8.1</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">pytz: 2019.1 =E2=86=92 2019.3</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">simplejson: 3.16.0 =E2=86=92 3.17.0</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">urllib3: 1.25.3 =E2=86=92 1.25.7</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">five.intid: 1.2.3 =E2=86=92 1.2.4</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Also catch KeyError when traversing to fix creating relations =
during Copy&amp;Paste in Zope 4.<br style=3D"max-width: 100%;" class=3D"">=

  Fixes <a href=3D"https://github.com/plone/Products.CMFPlone/issues/2866"=
 class=3D"">https://github.com/plone/Products.CMFPlone/issues/2866</a><br =
style=3D"max-width: 100%;" class=3D"">
  [pbauer] (#12)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">When looking up back-references the lookup using =
unrestrictedTraverse was way to slow.<br style=3D"max-width: 100%;" =
class=3D"">
  A simplified traverse speeds up the lookup by up 80x. [jensens, =
2silver] (#14)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">icalendar: 4.0.3 =E2=86=92 4.0.4</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Reduce Hypothesis iterations =
to speed up testing, allowing PRs to pass<br style=3D"max-width: 100%;" =
class=3D"">
  [UniversalSuperBox]</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">mockup: 3.0.2 =E2=86=92 3.1.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Upgrade testing dependencies: Karma (from ~3.0.0 to ~4.1.0) =
and Mocha (from ~3.5.3 to ~6.1.4) (#913)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Upgrade jQuery from version 1.11.3 to 1.12.4<br =
style=3D"max-width: 100%;" class=3D"">
  [davilima6] (#915)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Upgrade jQuery-related dependencies:</p>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">jqtree: from version 1.4.1 to =
1.4.10</li>
<li style=3D"max-width: 100%;" class=3D"">jquery-form: from 3.5.1 to =
4.2.2</li>
<li style=3D"max-width: 100%;" class=3D"">bootstrap: from 3.3.6 to =
3.4.1</li>
<li style=3D"max-width: 100%;" class=3D"">pickadate: from 3.5.6 to 3.6.4 =
(#916)</li>
</ul>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">jqtree: from version 1.4.1 to 1.4.10</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">jquery-form: from 3.5.1 to 4.2.2</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">bootstrap: from 3.3.6 to 3.4.1</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">pickadate: from 3.5.6 to 3.6.4 (#916)</p>
</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">tinymce: Fix tab labels for insert links and images<br =
style=3D"max-width: 100%;" class=3D"">
  [frapell] (#923)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">tinymce link popup external translation (#926)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">tinyimce link popup upload tab shows up even if upload is =
false in pat data (#927)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">pat-inlinevalidation: Avoid submitting files<br =
style=3D"max-width: 100%;" class=3D"">
  [frapell] (#903)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix marking of navigation parents as inPath<br =
style=3D"max-width: 100%;" class=3D"">
  [agitator] (#906)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Absolute positioning of default page objects in the structure =
pattern (take 2 on issue #895) (#908)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Move toolbar to be above structure pattern, by increasing its =
z-index from 3 to 20 (fixes Products.CMFPlone#2490)<br style=3D"max-width:=
 100%;" class=3D"">
  [fulv] (#909)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">tinymce pattern: Add some lost i18n translations.<br =
style=3D"max-width: 100%;" class=3D"">
  [adam139] (#910)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix SyntaxError caused by duplicate translation keys<br =
style=3D"max-width: 100%;" class=3D"">
  [davilima6] (#918)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fixed drag problem on click on sortable items in folder =
contents.<br style=3D"max-width: 100%;" class=3D"">
  [giuliaghisini] (#919)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix Tinymce pattern: Link popup looses tab selection on =
active linktype<br style=3D"max-width: 100%;" class=3D"">
  [mamico]<br style=3D"max-width: 100%;" class=3D"">
  Fix autotoc pattern: activate the element link with active class =
during initialization<br style=3D"max-width: 100%;" class=3D"">
  [mamico] (#922)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Plone: 5.2.0 =E2=86=92 5.2.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Release Plone 5.2.1 final<br =
style=3D"max-width: 100%;" class=3D"">
  [esteele]</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.caching: 2.0.2 =E2=86=92 2.0.3</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Fix python3 related encoding =
error on manual purge page.<br style=3D"max-width: 100%;" class=3D"">
  [agitator] (#51)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.content: 3.7.0 =E2=86=92 3.7.4</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Reversed the order of the translations list in plonejsi18n so =
custom ones come before defaults one (#187)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Follow default_page_types setting when showing the items that =
can be selected as default page [erral] (#182)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Description duplicated in object_rename form<br =
style=3D"max-width: 100%;" class=3D"">
  [mamico] (#186)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Support plone.app.multilingual.RootCatalog.<br =
style=3D"max-width: 100%;" class=3D"">
  [jaroel] (#1)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D""><code style=3D"max-width: 100%;" class=3D"">self.errors</code> =
is a list, so <code style=3D"max-width: 100%;" class=3D"">.append()</code>=
 should be used.<br style=3D"max-width: 100%;" class=3D"">
  [frapell] (#2)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.contentrules: 4.1.1 =E2=86=92 4.1.3</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">fix genericsetup export of properties of rules that have more =
complex fields such as IDict. (#50)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix file extension condition. [mtrebron] (#48)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.contenttypes: 2.1.2 =E2=86=92 2.1.5</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">for migration tests uninstall plone.app.contenttypes if =
previously installed<br style=3D"max-width: 100%;" class=3D"">
  [ericof] (#535)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix richtext <code style=3D"max-width: 100%;" =
class=3D"">getText</code> view to use the correct schema interface.<br =
style=3D"max-width: 100%;" class=3D"">
  [thet]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Robot tests: split big content listing scenario, fix =
deprecations.<br style=3D"max-width: 100%;" class=3D"">
  [maurits] (#533)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Clear schema cache after migration step <code =
style=3D"max-width: 100%;" class=3D"">migrate_to_pa_event</code>. =
[jensens] (#531)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Explicitly load zcml of dependencies, instead of using <code =
style=3D"max-width: 100%;" class=3D"">includeDependencies</code><br =
style=3D"max-width: 100%;" class=3D"">
  [maurits] (#2952)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.dexterity: 2.6.3 =E2=86=92 2.6.4</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Use https links to documentation. [vincentfretin] (#299)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Update documentation introduction w/r/t archetypes (#301) =
(#302)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix mr.bob command in documentation (#305)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.discussion: 3.2.1 =E2=86=92 3.3.2</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Notification for moderator: show email address of =
commentator. (#163)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Link to the commented page for editing, approving, deleting =
comment instead of linking to <code style=3D"max-width: 100%;" =
class=3D"">/@@moderate-publish-comment</code> and <code =
style=3D"max-width: 100%;" class=3D"">@@moderate-delete-comment</code>.<br=
 style=3D"max-width: 100%;" class=3D"">
  [ksuess] (#163)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Additional view for approved comments<br style=3D"max-width: =
100%;" class=3D"">
  [ksuess] (#159)</p>
</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D""><code style=3D"max-width: 100%;" =
class=3D"">/@@moderate-publish-comment</code>: publish only pending =
comment, else show status message "comment already approved".<br =
style=3D"max-width: 100%;" class=3D"">
  [ksuess] (#163)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Use the shared 'Plone test setup' and 'Plone test teardown' =
keywords in Robot tests.<br style=3D"max-width: 100%;" class=3D"">
  [Rotonen] (#155)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Load zcml of <code style=3D"max-width: 100%;" =
class=3D"">plone.resource</code> for our use of the <code =
style=3D"max-width: 100%;" class=3D"">plone:static</code> directive.<br =
style=3D"max-width: 100%;" class=3D"">
  [maurits] (#2952)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.event: 3.2.4 =E2=86=92 3.2.6</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix Python2 vs. Python3 text and bytes handling in the =
calendar portlet. (#308)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Load zcml of <code style=3D"max-width: 100%;" =
class=3D"">plone.resource</code> for our use of the <code =
style=3D"max-width: 100%;" class=3D"">plone:static</code> directive.<br =
style=3D"max-width: 100%;" class=3D"">
  [maurits] (#2952)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.iterate: 3.3.12 =E2=86=92 3.3.13</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Explicitly load zcml of =
dependencies, instead of using <code style=3D"max-width: 100%;" =
class=3D"">includeDependencies</code>.<br style=3D"max-width: 100%;" =
class=3D"">
  [maurits] (#2952)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.layout: 3.2.1 =E2=86=92 3.4.0</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add is_navigation_root check in plone_context_state view<br =
style=3D"max-width: 100%;" class=3D"">
  [erral] (#225)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add a sorrounding div to the webstats js. Fixes #157<br =
style=3D"max-width: 100%;" class=3D"">
  [erral] (#157)</p>
</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix Home tab localization [vincentfretin] (#222)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix memory leak on getUserInfo [avoinea] (#204) (#210)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix Unicode Error in folders with special chars. See #215 =
[erral] (#215)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add missing translation for screen readers<br =
style=3D"max-width: 100%;" class=3D"">
  [laulaz]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Memory leak on getUserInfo [avoinea] (#204)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.linkintegrity: 3.3.11 =E2=86=92 3.3.12</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Explicitly load zcml of =
dependencies, instead of using <code style=3D"max-width: 100%;" =
class=3D"">includeDependencies</code>.<br style=3D"max-width: 100%;" =
class=3D"">
  [maurits] (#2952)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.locales: 5.1.18 =E2=86=92 5.1.21</h4>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Megaupdate plone.po RU locale.<br style=3D"max-width: 100%;" =
class=3D"">
  [Serge73]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix French translation.<br style=3D"max-width: 100%;" =
class=3D"">
  [laulaz]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Update Japanese translations.</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Update Portuguese-BR translations.</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Update French translations.</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Update Slovenian translations, sync from POT files.<br =
style=3D"max-width: 100%;" class=3D"">
  [balavec]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Update German: Inhalte werden "Erstellt" nicht "Erzeugt".<br =
style=3D"max-width: 100%;" class=3D"">
  [jensens]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Minor fixes in Basque<br style=3D"max-width: 100%;" class=3D"">=

  [erral]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Update Spanish translation.<br style=3D"max-width: 100%;" =
class=3D"">
  [erral]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Update basque translation<br style=3D"max-width: 100%;" =
class=3D"">
  [erral]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Update Slovenian translations.<br style=3D"max-width: 100%;" =
class=3D"">
  [balavec]</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.multilingual: 5.3.5 =E2=86=92 5.5.0</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Remove the 'set_language' parameter when 'always_set_cookie' =
is enabled in language control panel. See #362<br style=3D"max-width: =
100%;" class=3D"">
  [erral] (#362)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add low level events and notifies:<br style=3D"max-width: =
100%;" class=3D"">
  on register, update and remove of a translation to a translation =
groups.<br style=3D"max-width: 100%;" class=3D"">
  [jensens] (#256)</p>
</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Use the shared 'Plone test setup' and 'Plone test teardown' =
keywords in Robot tests.<br style=3D"max-width: 100%;" class=3D"">
  [Rotonen] (#349)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">fix adding new language when Language Independent Folder has =
content<br style=3D"max-width: 100%;" class=3D"">
  [petschki] (#358)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">add/update translation forms doesn't show error return from =
z3c form validation<br style=3D"max-width: 100%;" class=3D"">
  [mamico] (#360)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Remove deprecation warnings in tests.<br style=3D"max-width: =
100%;" class=3D"">
  Increase readability<br style=3D"max-width: 100%;" class=3D"">
  Add code comments.<br style=3D"max-width: 100%;" class=3D"">
  Remove superfluos reindex of "Language" in manager.<br =
style=3D"max-width: 100%;" class=3D"">
  [jensens] (#256)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">wrong check for default addview in addtranslation =
traverser<br style=3D"max-width: 100%;" class=3D"">
  [mauro] (#355)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Remove any dependency to <code style=3D"max-width: 100%;" =
class=3D"">archetypes.multilingual</code>, since this is a =
indirection.<br style=3D"max-width: 100%;" class=3D"">
  Remove all dependencies that are already part of <code =
style=3D"max-width: 100%;" class=3D"">Products.CMFPlone</code>.<br =
style=3D"max-width: 100%;" class=3D"">
  All version specifications were reduced to use a recent <code =
style=3D"max-width: 100%;" class=3D"">Products.CMFPlone</code>.<br =
style=3D"max-width: 100%;" class=3D"">
  The <code style=3D"max-width: 100%;" class=3D"">decorator</code> =
dependency is no longer used.<br style=3D"max-width: 100%;" class=3D"">
  [jensens] (#357)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.portlets: 4.4.2 =E2=86=92 4.4.4</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Remove role=3D"navigation" =
from Navigation portlet.<br style=3D"max-width: 100%;" class=3D"">
    [ericof] (#128) (#128)</li>
</ul>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Remove role=3D"navigation" from Navigation portlet.<br =
style=3D"max-width: 100%;" class=3D"">
  [ericof] (#128) (#128)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix review portlet when show on the portal-root (#130)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix default value for label_msgid<br style=3D"max-width: =
100%;" class=3D"">
  [erral] (#133)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.querystring: 1.4.11 =E2=86=92 1.4.12</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Integer criterions: try to =
convert all input to integers.<br style=3D"max-width: 100%;" class=3D"">
  Most notably this did not happen for unicode on Python 2.<br =
style=3D"max-width: 100%;" class=3D"">
  So a <code style=3D"max-width: 100%;" class=3D"">u"42"</code> was =
passed as value to the catalog query, and this matched either all or =
nothing.<br style=3D"max-width: 100%;" class=3D"">
  [maurits] (#93)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.redirector: 2.1.0 =E2=86=92 2.1.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Allow performance tests to =
take more time.<br style=3D"max-width: 100%;" class=3D"">
  This seems needed on the Plone Jenkins test server when jobs are run =
in parallel.<br style=3D"max-width: 100%;" class=3D"">
  [maurits] (#20)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.textfield: 1.3.1 =E2=86=92 1.3.2</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Check if transform output is =
actual string on Python 2.<br style=3D"max-width: 100%;" class=3D"">
  [agitator] (#37)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.theming: 4.0.1 =E2=86=92 4.0.4</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix creating a new theme ttw in py2 with Zope 4.1.3.<br =
style=3D"max-width: 100%;" class=3D"">
  [pbauer] (#166)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Load zcml of <code style=3D"max-width: 100%;" =
class=3D"">plone.resource</code> for our use of the <code =
style=3D"max-width: 100%;" class=3D"">plone:static</code> directive.<br =
style=3D"max-width: 100%;" class=3D"">
  [maurits] (#2952)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fixed Python3 TypeError: 'filter' object is not =
subscriptable.<br style=3D"max-width: 100%;" class=3D"">
  This happened when overriding a filesystem theme with a TTW version<br =
style=3D"max-width: 100%;" class=3D"">
  [fredvd] (#160)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.upgrade: 2.0.27 =E2=86=92 2.0.31</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Make sure plone.staticresources is installed to fix issues =
with site migrated from 5.0 or 5.1 to 5.2.1.<br style=3D"max-width: =
100%;" class=3D"">
  Fixes <a href=3D"https://github.com/plone/Products.CMFPlone/issues/2996"=
 class=3D"">https://github.com/plone/Products.CMFPlone/issues/2996</a><br =
style=3D"max-width: 100%;" class=3D"">
  [pbauer] (#223)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fixed error when upgrading relations.<br style=3D"max-width: =
100%;" class=3D"">
  [maurits] (#220)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add Collection to the default_page_types setting<br =
style=3D"max-width: 100%;" class=3D"">
  [erral] (#216)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add empty upgrade step for Plone 5.1.6<br style=3D"max-width: =
100%;" class=3D"">
  [esteele] (#214)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.users: 2.6.0 =E2=86=92 2.6.2</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Error happening during user add notification is logged. =
(#85)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">User feedback if error happens during user add notification. =
(#86)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix default value for label_msgid. (#88)<br style=3D"max-width:=
 100%;" class=3D"">
  [erral]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix many_groups usage in AddUserForm<br style=3D"max-width: =
100%;" class=3D"">
  [tmassman] (#83)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.vocabularies: 4.1.0 =E2=86=92 4.1.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Principals vocabularies: Fixed =
handling of results from multiple PAS plugins (like pasldap and =
mutable_properties). (#60)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.widgets: 3.0.2 =E2=86=92 3.0.3</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Run robot tests as Member =
since the widget will move to the logged-in-bundle.<br style=3D"max-width:=
 100%;" class=3D"">
  [agitator] (#201)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.z3cform: 3.1.1 =E2=86=92 3.1.3</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Fix LinkWidget selected tab on =
edit #108<br style=3D"max-width: 100%;" class=3D"">
    [mamico] (#108)</li>
</ul>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix LinkWidget selected tab on edit #108<br style=3D"max-width:=
 100%;" class=3D"">
  [mamico] (#108)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix wrong default for method attribute in pt<br =
style=3D"max-width: 100%;" class=3D"">
  [mamico] (#107)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.dexterity: 2.9.1 =E2=86=92 2.9.5</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Speedup (~1.6x) parallel thread execution by removing =
superfluos synchronization [jensens] (#123)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Invalidate cached FTIs on request to allow complex/long =
running auto-installations. [jensens]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix thread safe recursion detection. This fixes an issue in =
plone.restapi: <a =
href=3D"https://github.com/plone/plone.dexterity/issues/120" =
class=3D"">https://github.com/plone/plone.dexterity/issues/120</a>. =
[jensens] (#120)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">The debug messages issued when a non existent behavior is =
recorded in an FTI have been improved [ale-rt] (#109)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Avoid looking up behaviors with an empty name [ale-rt] =
(#110)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Performance enhancement in schema cache by factor ~1.5.<br =
style=3D"max-width: 100%;" class=3D"">
  [jensens] (#113)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Performance enhancement in schema cache and assignable.<br =
style=3D"max-width: 100%;" class=3D"">
  [jensens] (#115)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Performance enhancement:<br style=3D"max-width: 100%;" =
class=3D"">
  Refine pre-filtering of attributes on content <code style=3D"max-width: =
100%;" class=3D"">__getattr__</code>.<br style=3D"max-width: 100%;" =
class=3D"">
  Filter out all permissions (ending with <code style=3D"max-width: =
100%;" class=3D"">_Permission</code>) and some portal-tools.<br =
style=3D"max-width: 100%;" class=3D"">
  Also often called aquired functions are skipped.<br style=3D"max-width: =
100%;" class=3D"">
  [jensens] (#116)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Performance enhancement: avoid a providedBy in <code =
style=3D"max-width: 100%;" class=3D"">_default_from_schema</code>.<br =
style=3D"max-width: 100%;" class=3D"">
  [jensens] (#117)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.folder: 3.0.0 =E2=86=92 3.0.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Fixes slow lookup of <code =
style=3D"max-width: 100%;" class=3D"">documentToKeyMap</code> in =
GopipIndex.<br style=3D"max-width: 100%;" class=3D"">
    About up to 66x speedup in some cases.<br style=3D"max-width: 100%;" =
class=3D"">
    This may add up to seconds less on large navtree renderings.<br =
style=3D"max-width: 100%;" class=3D"">
    [jensens] (#14)</li>
</ul>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fixes slow lookup of <code style=3D"max-width: 100%;" =
class=3D"">documentToKeyMap</code> in GopipIndex.<br style=3D"max-width: =
100%;" class=3D"">
  About up to 66x speedup in some cases.<br style=3D"max-width: 100%;" =
class=3D"">
  This may add up to seconds less on large navtree renderings.<br =
style=3D"max-width: 100%;" class=3D"">
  [jensens] (#14)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.formwidget.namedfile: 2.0.9 =E2=86=92 2.0.10</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">set widget value to =
z3c.form.interfaces.NOT_CHANGED when the user selects 'Keep Existing =
File' in the widget, so z3c.form understands the field has not changed =
[flipmcf] (#41)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.namedfile: 5.0.4 =E2=86=92 5.2.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Load SVG files.<br style=3D"max-width: 100%;" class=3D"">
  [balavec] (#63)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add new interface <code style=3D"max-width: 100%;" =
class=3D"">plone.namedfile.interfaces.IPluggableFileFieldValidation</code>=
 and <code style=3D"max-width: 100%;" =
class=3D"">plone.namedfile.interfaces.IPluggableImageFieldValidation</code=
>.<br style=3D"max-width: 100%;" class=3D"">
  Refactored: the fields validation now looks for adapters with this =
interfaces adapting field and value.<br style=3D"max-width: 100%;" =
class=3D"">
  All found adapters are called.<br style=3D"max-width: 100%;" class=3D"">=

  The image content type checker (existed before) is by now the only =
adapter implemented and registered so far.<br style=3D"max-width: 100%;" =
class=3D"">
  Other adapters can be registered in related or custom code.<br =
style=3D"max-width: 100%;" class=3D"">
  [jensens] (#81)</p>
</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix tiff support. Remove process_tiff and let the PIL do the =
work.<br style=3D"max-width: 100%;" class=3D"">
  [mamico] (#85)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix content_type in getImageInfo when using PIL.<br =
style=3D"max-width: 100%;" class=3D"">
  [mamicp] (#85)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">fix ResourceWarnings for unclosed files<br style=3D"max-width: =
100%;" class=3D"">
  [mamico] (#80)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.portlet.collection: 3.3.1 =E2=86=92 3.3.2</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Fix deprecated import <code =
style=3D"max-width: 100%;" class=3D"">isDefaultPage</code>.<br =
style=3D"max-width: 100%;" class=3D"">
  [jensens]</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.protect: 4.1.2 =E2=86=92 4.1.3</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">When marking an OOBTree as =
safe, also mark its buckets as safe. Fixes issues with objects that have =
many annotations. (#88)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.rest: 1.4.0 =E2=86=92 1.6.0</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Remove CMFPlone and make plone.app.redirector dependency =
optional [timo] (#81)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Brown bag release.</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Brown bag release.</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.restapi: 4.3.1 =E2=86=92 6.1.0</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Breaking changes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Remove IAPIRequest marker interface from plone.restapi. The =
correct interface should be imported from plone.rest.interfaces instead. =
If anybody was using this marker Interface, it didn't do anything. =
(#819)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Rename tiles behavior and fields to blocks, migration =
step.<br style=3D"max-width: 100%;" class=3D"">
  [timo, sneridagh] (#821)</p>
</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add SearchableText indexing for text in blocks<br =
style=3D"max-width: 100%;" class=3D"">
  [luca-bellenghi] (#844)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add Python 3.8 support @timo (#829)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add @sources and @querysources endpoints, and link to them =
from JSON schema in @types response.<br style=3D"max-width: 100%;" =
class=3D"">
  [lgraf] (#790)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add @querystring-search endpoint that returns the results of =
a search using a p.a.querystring query.<br style=3D"max-width: 100%;" =
class=3D"">
  [sneridagh] (#789)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Use Plone 5.2 and Python 3 as default to generate =
documentation. [timo] (#800)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add @querystring endpoint that dumps p.a.querystring =
config.<br style=3D"max-width: 100%;" class=3D"">
  [lgraf] (#754)</p>
</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Prevent converting bytestring ids to unicode ids when =
reordering (see upgrade guide for potential migration).<br =
style=3D"max-width: 100%;" class=3D"">
  [deiferni] (#827)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Change to use the short name for the Blocks behavior instead =
of using the interface one. It fixes #838.<br style=3D"max-width: 100%;" =
class=3D"">
  [sneridagh] (#838)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix filtering vocabs and sources by title with non-ASCII =
characters.<br style=3D"max-width: 100%;" class=3D"">
  [lgraf] (#825)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix serialization of vocabulary items for fields that need =
hashable items (e.g. sets).<br style=3D"max-width: 100%;" class=3D"">
  [buchi] (#788)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fixed startup error when Archetypes is there, but <code =
style=3D"max-width: 100%;" class=3D"">plone.app.blob</code> or <code =
style=3D"max-width: 100%;" class=3D"">plone.app.collection</code> =
not.<br style=3D"max-width: 100%;" class=3D"">
  [maurits] (#690)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Explicitly load zcml of dependencies, instead of using <code =
style=3D"max-width: 100%;" class=3D"">includeDependencies</code><br =
style=3D"max-width: 100%;" class=3D"">
  [maurits] (#2952)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fire ModifiedEvent when field is set to null in a PATCH =
request.<br style=3D"max-width: 100%;" class=3D"">
  [phgross] (#802)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Testing: Drop freezegun and instead selectively patch some =
timestamp accessors.<br style=3D"max-width: 100%;" class=3D"">
  [lgraf] (#803)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Make group serializer results predictable by returning sorted =
item results. [timo] (#798)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix typo in the <code style=3D"max-width: 100%;" =
class=3D"">tiles_layout</code> field title name.<br style=3D"max-width: =
100%;" class=3D"">
  [sneridagh] (#785)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.schemaeditor: 2.0.20 =E2=86=92 2.1.0</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Deleting fieldsets is now =
possible through the UI. (#69)</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Don't show an error when a =
"required" field doesn't have a default. Also added a "Done" button. =
(#71)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.staticresources: 1.1.0 =E2=86=92 1.2.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Update jQuery from version 1.11.3 to 1.12.4<br =
style=3D"max-width: 100%;" class=3D"">
  [davilima6] (#34)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Recompile 'plone' bundle after updating jQuery-related =
packages (#40)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Update all components and recompile bundles. (#44)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Split up bundles for more flexibility and optimized resource =
loading.<br style=3D"max-width: 100%;" class=3D"">
  Move select2 and datepicker to logged-in bundle.<br style=3D"max-width: =
100%;" class=3D"">
  Move toolbar, portletmanager, querystring and structure pattern to =
editor bundle.<br style=3D"max-width: 100%;" class=3D"">
  Move tinymce to it's own bundle.<br style=3D"max-width: 100%;" =
class=3D"">
  Single out moment.js to reduce plone bundle size and allow async =
loading.<br style=3D"max-width: 100%;" class=3D"">
  Add optional datatables bundle.<br style=3D"max-width: 100%;" =
class=3D"">
  [agitator] (#46)</p>
</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fixed drag problem on click on sortable items in folder =
contents. (#56)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix problem with TTW compilation of bundles. (#58)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix autotoc pattern: activate the element link with active =
class during initialization<br style=3D"max-width: 100%;" class=3D"">
  [mamico] (#37)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix Tinymce pattern: Link popup looses tab selection on =
active linktype<br style=3D"max-width: 100%;" class=3D"">
  [mamico] (#37)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">build js/css for mockup changes plone/mockup#922<br =
style=3D"max-width: 100%;" class=3D"">
  [mamico] (#37)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">When compiling a bundle and including a resource from a =
request, open the<br style=3D"max-width: 100%;" class=3D"">
  temporary file in binary mode.<br style=3D"max-width: 100%;" class=3D"">=

  [frapell] (#38)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Bring fix for <a =
href=3D"https://github.com/plone/mockup/issues/923" =
class=3D"">https://github.com/plone/mockup/issues/923</a><br =
style=3D"max-width: 100%;" class=3D"">
  [frapell] (#41)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix "TTW Bundle compilation broken".<br style=3D"max-width: =
100%;" class=3D"">
  Refs: <a href=3D"https://github.com/plone/Products.CMFPlone/issues/2969"=
 class=3D"">https://github.com/plone/Products.CMFPlone/issues/2969</a><br =
style=3D"max-width: 100%;" class=3D"">
  [thet] (#43)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.supermodel: 1.4.0 =E2=86=92 1.5.0</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Add support for choices of =
integers for improved registry.xml export.<br style=3D"max-width: 100%;" =
class=3D"">
  [jone] (#32)</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">tests to ensure schema.Set is =
serialized consistently (#30)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.testing: 7.0.2 =E2=86=92 7.0.3</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Fix issue with test-setup when =
using ZServer 4.0.2.<br style=3D"max-width: 100%;" class=3D"">
  [pbauer] (#69)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.z3cform: 1.1.0 =E2=86=92 1.1.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Fix edit/delete in paginated =
crud-forms [fRiSi]</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plonetheme.barceloneta: 2.1.4 =E2=86=92 2.1.6</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Revert "Fix the different width of Hide and Show button in =
action control panel" [vincentfretin] (#187)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Load zcml of <code style=3D"max-width: 100%;" =
class=3D"">plone.resource</code> for our use of the <code =
style=3D"max-width: 100%;" class=3D"">plone:static</code> directive.<br =
style=3D"max-width: 100%;" class=3D"">
  [maurits] (#2952)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.CMFCore: 2.4.0 =E2=86=92 2.4.2</h4>
<ul class=3D"code-block" style=3D"max-width: 100%;">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Resolve <code style=3D"max-width: 100%;" =
class=3D"">docutils</code> dependency conflict with <code =
style=3D"max-width: 100%;" class=3D"">Zope</code>.<br style=3D"max-width: =
100%;" class=3D"">
  (<code style=3D"max-width: 100%;" class=3D"">#83 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.CMFCore/issues/83" =
class=3D"">https://github.com/zopefoundation/Products.CMFCore/issues/83</a=
>&gt;</code>_)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Make sure <code style=3D"max-width: 100%;" =
class=3D"">FSFile.__str__</code> returns correct native strings under =
Python 3.<br style=3D"max-width: 100%;" class=3D"">
  (<code style=3D"max-width: 100%;" class=3D"">#76 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.CMFCore/issues/76" =
class=3D"">https://github.com/zopefoundation/Products.CMFCore/issues/76</a=
>&gt;</code>_)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add a <code style=3D"max-width: 100%;" =
class=3D"">__bytes__</code> method to <code style=3D"max-width: 100%;" =
class=3D"">FSFile</code>.</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add more files types to the FSFile registrations.</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.CMFEditions: 3.3.2 =E2=86=92 3.3.3</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Fix DeprecationWarning =
[jensens] (#71)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.CMFPlone: 5.2.0 =E2=86=92 5.2.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Add plone.staticresources to =
list of addons which are automatically upgraded if upgrade steps are =
available.<br style=3D"max-width: 100%;" class=3D"">
  [thet] (#2976)</li>
</ul>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">fix creation of Plone site not adding default Dexterity =
content types if example content not explicitily selected by user.<br =
style=3D"max-width: 100%;" class=3D"">
  [ericof] (#1318)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">fix default value for email msgid<br style=3D"max-width: =
100%;" class=3D"">
  [erral] (#2790)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix: PasswordResetView::getErrors is called, this ensures =
password is validated through RegistrationTool before attempting to =
reset password.<br style=3D"max-width: 100%;" class=3D"">
  [nazrulword] (#2917)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Breadcrumbs: consider hidden folders when creating urls =
[ksuess] (#2935)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add Collection to the default_page_types list<br =
style=3D"max-width: 100%;" class=3D"">
  [erral] (#2956)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix localization of "Site setup" in some control panels =
[vincentfretin] (#2958)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix TTW Bundle compilation broken.<br style=3D"max-width: =
100%;" class=3D"">
  [thet] (#2969)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Do not save type settings in "content-controlpanel" when =
switching between types.<br style=3D"max-width: 100%;" class=3D"">
  [cekk] (#2986)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Correctly fire events when user autologin after the password =
has been reset.<br style=3D"max-width: 100%;" class=3D"">
  [ericof] (#2993)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.DateRecurringIndex: 3.0.0 =E2=86=92 3.0.1</h4>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">remove unicode char from =
CONTRIBUTORS.rst<br style=3D"max-width: 100%;" class=3D"">
  [tkimnguyen]</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.GenericSetup: 2.0 =E2=86=92 2.0.1</h4>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Fix the sorting of upgrade =
steps.  [vanderbauwhede]</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.PlonePAS: 6.0.2 =E2=86=92 6.0.5</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Notify CredentialsUpdated =
event when password is changed<br style=3D"max-width: 100%;" class=3D"">
    [ezvirtual] (#33)</li>
</ul>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Notify CredentialsUpdated event when password is changed<br =
style=3D"max-width: 100%;" class=3D"">
  [ezvirtual] (#33)</p>
</li>
<li style=3D"max-width: 100%;" class=3D"">
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Notify PropertiesUpdated event =
when member properties are changed<br style=3D"max-width: 100%;" =
class=3D"">
    [ezvirtual]</li>
</ul>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add simple test for PropertiesUpdated event<br =
style=3D"max-width: 100%;" class=3D"">
    [ezvirtual] (#27)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Notify PropertiesUpdated event when member properties are =
changed<br style=3D"max-width: 100%;" class=3D"">
  [ezvirtual]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add simple test for PropertiesUpdated event<br =
style=3D"max-width: 100%;" class=3D"">
  [ezvirtual] (#27)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Log exception from PAS logout() instead of swallowing them<br =
style=3D"max-width: 100%;" class=3D"">
  [ajung] (#50)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix deprecated imports.<br style=3D"max-width: 100%;" =
class=3D"">
  Fix buildout infrastructure for Plone 5.2.<br style=3D"max-width: =
100%;" class=3D"">
  [thet] (#51)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Create the MemberData object from an adapter instead of =
directly instantiating it, as intended in =
Products.CMFCore.MemberDataTool.<br style=3D"max-width: 100%;" class=3D"">=

  This allows for better extensibility.<br style=3D"max-width: 100%;" =
class=3D"">
  [thet] (#52)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.PluggableAuthService: 2.0 =E2=86=92 2.2.1</h4>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix broken ICredentialsUpdatedEvent event handler call to =
updateCredentials.<br style=3D"max-width: 100%;" class=3D"">
  (<code style=3D"max-width: 100%;" class=3D"">#59 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.PluggableAuthService/is=
sues/59" =
class=3D"">https://github.com/zopefoundation/Products.PluggableAuthService=
/issues/59</a>&gt;</code>_)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add new events to be able to notify when a principal is added =
to<br style=3D"max-width: 100%;" class=3D"">
  or removed from a group. Notify these events when principals are<br =
style=3D"max-width: 100%;" class=3D"">
  added or removed to a group in ZODBGroupManager<br style=3D"max-width: =
100%;" class=3D"">
  (<code style=3D"max-width: 100%;" class=3D"">#17 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.PluggableAuthService/is=
sues/17" =
class=3D"">https://github.com/zopefoundation/Products.PluggableAuthService=
/issues/17</a>&gt;</code>_)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix bug in <code style=3D"max-width: 100%;" =
class=3D"">getRolesForPrincipal</code> for non PAS user.</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix formatting in "Plugin Types" documentation.</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fixed error assigning roles in <code style=3D"max-width: =
100%;" class=3D"">manage_roles</code> page in ZMI.<br style=3D"max-width: =
100%;" class=3D"">
  See issues <code style=3D"max-width: 100%;" class=3D"">#43 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.PluggableAuthService/is=
sues/43" =
class=3D"">https://github.com/zopefoundation/Products.PluggableAuthService=
/issues/43</a>&gt;</code><em style=3D"max-width: 100%;" class=3D""><br =
style=3D"max-width: 100%;" class=3D"">
  and <code style=3D"max-width: 100%;" class=3D"">#51 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.PluggableAuthService/is=
sues/51" =
class=3D"">https://github.com/zopefoundation/Products.PluggableAuthService=
/issues/51</a>&gt;</code></em>.</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.PluginRegistry: 1.7 =E2=86=92 1.8</h4>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Rely on Zope 4 branch for unit tests to retain Python 2 =
compatibility</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add <code style=3D"max-width: 100%;" =
class=3D"">movePluginsTop</code> method to registry.</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix linting.</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.Sessions: 4.5 =E2=86=92 4.6</h4>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Banish dependency on <code style=3D"max-width: 100%;" =
class=3D"">Products.TemporaryFolder</code> into a tests extra<br =
style=3D"max-width: 100%;" class=3D"">
  and point out its issues under Zope 4 in the README.<br =
style=3D"max-width: 100%;" class=3D"">
  (<code style=3D"max-width: 100%;" class=3D"">#26 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.Sessions/issues/26" =
class=3D"">https://github.com/zopefoundation/Products.Sessions/issues/26</=
a>&gt;</code>_)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Switch tests dependencies to Zope 4.x branch to retain Python =
2 compatibility</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix access permissions for <code style=3D"max-width: 100%;" =
class=3D"">meta_type</code> and <code style=3D"max-width: 100%;" =
class=3D"">zmi_icon</code> properties so<br style=3D"max-width: 100%;" =
class=3D"">
  they don't raise when accessed in the admin interface.<br =
style=3D"max-width: 100%;" class=3D"">
  (<code style=3D"max-width: 100%;" class=3D"">#24 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.Sessions/pull/24" =
class=3D"">https://github.com/zopefoundation/Products.Sessions/pull/24</a>=
&gt;</code>_)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix Python 3 compatibility of <code style=3D"max-width: =
100%;" class=3D"">_p_resolveConflict</code>.<br style=3D"max-width: =
100%;" class=3D"">
  (<code style=3D"max-width: 100%;" class=3D"">#25 &lt;<a =
href=3D"https://github.com/zopefoundation/Products.Sessions/pull/25" =
class=3D"">https://github.com/zopefoundation/Products.Sessions/pull/25</a>=
&gt;</code>_)</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Products.ZSQLMethods: 3.0.7 =E2=86=92 3.0.9</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">z3c.caching: 2.1 =E2=86=92 2.2</h4>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix DeprecationWarnings: import moves from <code =
style=3D"max-width: 100%;" class=3D"">zope.component</code> to <code =
style=3D"max-width: 100%;" class=3D"">zope.interface</code>.<br =
style=3D"max-width: 100%;" class=3D"">
  Depend on zope.interface &gt;=3D 3.8.0.<br style=3D"max-width: 100%;" =
class=3D"">
  [jensens]</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Add support for Python 3.8a3.<br style=3D"max-width: 100%;" =
class=3D"">
  [icemac]</p>
</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">zodbverify: 1.0.1 =E2=86=92 1.0.2</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Open Data.fs in read only =
mode. (#2)</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">collective.z3cform.datagridfield: 1.5.1 =E2=86=92 1.5.2</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.formwidget.datetime: 1.3.4 =E2=86=92 1.3.5</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">z3c.relationfield: 0.8.0 =E2=86=92 0.9.0</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">New features:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Provide IRelationBrokenEvent =
to be able to distinguish the event when<br style=3D"max-width: 100%;" =
class=3D"">
  subscribing to IObjectModifiedEvent<br style=3D"max-width: 100%;" =
class=3D"">
  [vangheem]</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.blocks: 4.3.1 =E2=86=92 4.3.2</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.standardtiles: 2.3.1 =E2=86=92 2.3.2</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">trollius: 2.2 =E2=86=92 2.2.post1</h4>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">plone.app.imaging: 2.1.0 =E2=86=92 2.1.1</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D"">Fix IOError: cannot write mode =
RGBA as JPEG on ImageField scale<br style=3D"max-width: 100%;" class=3D"">=

  [avoinea]</li>
</ul>
<h4 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">archetypes.multilingual: 3.0.6 =E2=86=92 3.0.8</h4>
<h5 style=3D"font-size: 1em; margin: 1em 0px; max-width: 100%;" =
class=3D"">Bug fixes:</h5>
<ul style=3D"max-width: 100%;" class=3D"">
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix export of components by adding a <code style=3D"max-width: =
100%;" class=3D"">__name__</code> property to the handler.<br =
style=3D"max-width: 100%;" class=3D"">
  [maurits] (#27)</p>
</li>
<li style=3D"max-width: 100%;" class=3D""><p style=3D"max-width: 100%;" =
class=3D"">Fix test dependency for Plone 5.2<br style=3D"max-width: =
100%;" class=3D"">
  [jensens] (#28)</p>
</li>
</ul></div>
 =20


  <h3 style=3D"font-size: 1.25em; max-width: 100%;" class=3D"">Project =
resources</h3>
  <ul style=3D"max-width: 100%;" class=3D"">
    <li style=3D"max-width: 100%;" class=3D""><a =
href=3D"https://plone.org/security" style=3D"color: rgb(65, 110, 210); =
max-width: 100%;" class=3D"">Security</a></li>
    <li style=3D"max-width: 100%;" class=3D""><a =
href=3D"https://github.com/plone/Products.CMFPlone/issues/new" =
style=3D"color: rgb(65, 110, 210); max-width: 100%;" class=3D"">Issue =
tracker</a></li>
    <li style=3D"max-width: 100%;" class=3D""><a =
href=3D"https://plone.org/support" style=3D"color: rgb(65, 110, 210); =
max-width: 100%;" class=3D"">Support</a></li>
  </ul>

  <h3 style=3D"font-size: 1.25em; max-width: 100%;" class=3D"">Learn =
about Plone</h3>
  <ul style=3D"max-width: 100%;" class=3D"">
    <li style=3D"max-width: 100%;" class=3D""><a =
href=3D"http://docs.plone.org/manage/installing/index.html" =
style=3D"color: rgb(65, 110, 210); max-width: 100%;" class=3D"">Installing=
 Plone</a></li>
    <li style=3D"max-width: 100%;" class=3D""><a =
href=3D"http://docs.plone.org/quickstart/index.html" style=3D"color: =
rgb(65, 110, 210); max-width: 100%;" class=3D"">Plone quickstart =
guide</a></li>
    <li style=3D"max-width: 100%;" class=3D""><a =
href=3D"http://docs.plone.org/working-with-content/index.html" =
style=3D"color: rgb(65, 110, 210); max-width: 100%;" class=3D"">Working =
with content</a></li>
    <li style=3D"max-width: 100%;" class=3D""><a =
href=3D"http://docs.plone.org/adapt-and-extend/index.html" style=3D"color:=
 rgb(65, 110, 210); max-width: 100%;" class=3D"">Adapting and extending =
Plone</a></li>
  </ul></div></div></div></blockquote></div></body></html>=

--Apple-Mail=_1196FDD1-4E34-4BA0-A125-A4AAE96D788B--


--===============0049493889145922925==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============0049493889145922925==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Want community news? Subscribe to our newsletter http://eepurl.com/S4wfL

Plone-Announce mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/plone-announce
--===============0049493889145922925==--