Plone 5.2.2 soft released

Vincent Fretin has released 5.1.23 and I have included it.

I thought updates to versions.cfg could take a day to come through because they are cached, but I see the change already.

Woot! Hm, Zope 4.4.4 has just been released :smile: Zope 4.4.4 released

I will start reloading my neurons to update the unified installer and vagrant...

I may have missed it. Eric also emails the installers group to let them know this is coming and so they can prep. “they”, yeah. :wink: Though I think @avoinea should be on it now too

5.2.2-pending breaks our site (running on 5.2.1 right now)..something related to resources...requires further investigations this week.

Tried update our migration sandbox in a different project from 5.2.1 to 5.2.2 and then this:

Traceback (most recent call last):
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/ZODB-5.5.1-py3.7.egg/ZODB/", line 795, in setstate
    self._reader.setGhostState(obj, p)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/ZODB-5.5.1-py3.7.egg/ZODB/", line 633, in setGhostState
    state = self.getState(pickle)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/ZODB-5.5.1-py3.7.egg/ZODB/", line 626, in getState
    return unpickler.load()
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-5.0.2-py3.7-linux-x86_64.egg/zope/interface/", line 733, in Provides
    spec = ProvidesClass(*interfaces)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-5.0.2-py3.7-linux-x86_64.egg/zope/interface/", line 694, in __init__
    Declaration.__init__(self, *(interfaces + (implementedBy(cls), )))
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-5.0.2-py3.7-linux-x86_64.egg/zope/interface/", line 86, in __init__
    Specification.__init__(self, _normalizeargs(bases))
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-5.0.2-py3.7-linux-x86_64.egg/zope/interface/", line 1112, in _normalizeargs
    _normalizeargs(v, output)
  File "/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/zope.interface-5.0.2-py3.7-linux-x86_64.egg/zope/interface/", line 1111, in _normalizeargs
    for v in sequence:
TypeError: 'ExtensionClass.ExtensionClass' object is not iterable
2020-06-29 08:13:17,995 ERROR   [Zope.SiteErrorLog:252][waitress-0] 1593411197.99214940.5191176579851793
Traceback (innermost last):
  Module ZPublisher.WSGIPublisher, line 162, in transaction_pubevents
  Module ZPublisher.WSGIPublisher, line 359, in publish_module
  Module ZPublisher.WSGIPublisher, line 262, in publish
  Module ZPublisher.mapply, line 85, in mapply
  Module ZPublisher.WSGIPublisher, line 63, in call_object
  Module zope.browserpage.simpleviewclass, line 41, in __call__
  Module Products.Five.browser.pagetemplatefile, line 126, in __call__
  Module Products.Five.browser.pagetemplatefile, line 61, in __call__
  Module zope.pagetemplate.pagetemplate, line 135, in pt_render
  Module Products.PageTemplates.engine, line 322, in __call__
  Module, line 176, in render
  Module chameleon.zpt.template, line 299, in render
  Module chameleon.template, line 214, in render
  Module chameleon.utils, line 75, in raise_with_traceback
  Module chameleon.template, line 192, in render
  Module ff8193f279dbb7640ccd339642a2399c, line 223, in render
  Module zope.tales.expressions, line 241, in __call__
  Module Products.PageTemplates.Expressions, line 160, in _eval
  Module Products.PageTemplates.Expressions, line 122, in render
  Module Products.CMFPlone.browser.admin, line 60, in sites
  Module ZODB.Connection, line 795, in setstate
  Module ZODB.serialize, line 633, in setGhostState
  Module ZODB.serialize, line 626, in getState
  Module zope.interface.declarations, line 733, in Provides
  Module zope.interface.declarations, line 694, in __init__
  Module zope.interface.declarations, line 86, in __init__
  Module zope.interface.declarations, line 1112, in _normalizeargs
  Module zope.interface.declarations, line 1111, in _normalizeargs
TypeError: 'ExtensionClass.ExtensionClass' object is not iterable

 - Expression: "view/sites"
 - Filename:   ... gg/Products/CMFPlone/browser/templates/
 - Location:   (line 21: col 24)
 - Source:     <body tal:define="sites view/sites">
 - Arguments:  template: <Products.Five.browser.pagetemplatefile.ViewPageTemplateFile object at 0x7fefce6054d0>
               options: {}
               args: ()
               nothing: None
               modules: <Products.PageTemplates.ZRPythonExpr._SecureModuleImporter object at 0x7fefdb07ff50>
               request: <WSGIRequest, URL=>
               view: <Products.Five.browser.metaconfigure.SimpleViewClass from /home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Products.CMFPlone-5.2.2rc1-py3.7.egg/Products/CMFPlone/browser/templates/ object at 0x7fefceb85450>
               context: <Application at >
               views: <Products.Five.browser.pagetemplatefile.ViewMapper object at 0x7fefd46de610>
               here: <Application at >
               container: <Application at >
               root: <Application at >
               traverse_subpath: []
               user: <PropertiedUser 'admin'>
               default: <module 'chameleon.tales' from '/home/ajung/sandboxes/ugent-portaal-plone-4x/eggs/Chameleon-3.8.0-py3.7.egg/chameleon/'>
               repeat: <Products.PageTemplates.engine.RepeatDictWrapper object at 0x7fefd5a3f640>
               loop: {}
               target_language: None
               translate: <function BaseTemplate.render.<locals>.translate at 0x7fefd705e4d0>

This issue now showed up in another migration sandbox after upgrading from 5.2.1 to 5.2.2-pending

SOLVED with:

In case your forms use Chameleon and have any boolean attributes (checked, selected, readonly, etc.), there has been a breaking change in Chameleon 3.8.0 released on 2020-06-25 that is not obvious until you actually use a web interface or if you do any automated functional tests. See

1 Like

Congratulations for the hard work!

Sorry about that! I do have "Send links to installers list" in the release checklist, but it is a few lines further down, and I thought this should be done after the release is final.
I haven't chatted with Eric yet about how to do the release, so I am going by the checklist currently (adapted from a doc in coredev), which can obviously be improved.

Can you try with zope.interface 5.0.1?

I tested 5.2.2 with a client project and everything went well.
We should include though.

I have another potential blocker, probably related to the latest chameleon or zope.tales.
Code like this:

<div foo="bar"
     tal:attributes="foo string:${attrs/foo} baz"

was meant to render:

<div foo="bar baz"></div>

See attrs in

But now it fails like:

  File "/home/ale/.buildout/eggs/Chameleon-3.8.0-py3.8.egg/chameleon/", line 192, in render
    self._render(stream, econtext, rcontext)
  File "", line 1617, in render
  File "/home/ale/.buildout/eggs/zope.tales-5.0.2-py3.8.egg/zope/tales/", line 73, in __call__
    return eval(self._code, vars)
   - __traceback_info__: (chv.safe_member_and_group_prefill(context, attrs['name']))
  File "<string>", line 1, in <module>
NameError: name 'attrs' is not defined

I am still investigating.

I just kicked the old migrated I am unable to check..

Some Minor stuff here.
buildout is still trying to update itself and getting stuck in a loop.
pip install zc.buildout==2.13.3 solves it. (or installing requirements.txt, of course)

One of our templates had <p tal:condition="True" > and it threw an error
KeyError: 'True'
Chameleon doesn't know what 'True' is anymore.

replace with <p tal:condition="python: True" > and moved on.

Why do we have this code? ¯\_(ツ)_/¯ But a git blame will most likely show my name anyway. TALES expressions in conditionals are dangerous anyway.

Indeed, why? Please see my earlier comment for how we fixed this issue in Deform and (soon) pyramid_chameleon.

I tried to fix the Norwegian, but ended up with conflicts.
Can anyone help me sort this out? I am already the only one translating to Norwegian (in my spare time) so I REALLY dont wanna do all the work again :disappointed_relieved:

We've just updated to 5.2.2-pending and our mosaic pages don't work anymore.


2020-06-30 10:51:14,818 ERROR   [plone.transformchain:70][waitress-3] Unexpected error whilst trying to apply transform chain
Traceback (most recent call last):
  File "/Volumes/WORKSPACE/.buildout/eggs/plone.transformchain-2.0.2-py3.7.egg/plone/transformchain/", line 59, in __call__
    newResult = handler.transformIterable(result, encoding)
  File "/Volumes/WORKSPACE/.buildout/eggs/", line 92, in transformIterable
    iterable, pretty_print=self.pretty_print, encoding=encoding)
  File "/Volumes/WORKSPACE/.buildout/eggs/repoze.xmliter-0.6-py3.7.egg/repoze/xmliter/", line 32, in getHTMLSerializer
  File "/Volumes/WORKSPACE/.buildout/eggs/repoze.xmliter-0.6-py3.7.egg/repoze/xmliter/", line 16, in getXMLSerializer
  File "src/lxml/parser.pxi", line 1242, in lxml.etree._FeedParser.feed
  File "src/lxml/parser.pxi", line 1277, in lxml.etree._FeedParser.feed
lxml.etree.ParserError: Unicode parsing is not supported on this platform

The lxml==4.4.2 version pin was removed from versions.cfg and now we get lxml==4.5.1 ... pinning back to 4.4.2 solves the transform error ... Not sure if this is platform specific (I've tested it on a Mac)

hm ... after brew upgrade libxml2 on my mac and rebuilding lxml==4.5.1 everything worked again ...

==> Upgrading 1 outdated package:
libxml2 2.9.9_2 -> 2.9.10_1
==> Upgrading libxml2 2.9.9_2 -> 2.9.10_1 
1 Like

For those who have tested a Plone 5.2.1 to 5.2.2 migration, can you verify in portal_setup Upgrade tab for plone.staticresources if you have the upgrade step 8 that was done?
I'm not sure if those upgrades are done automatically with the upgrade-plone view or if there is something we need to add in

Looks good here. I'm at 8

Side note: has an upgrade step that was not run.

Plone Foundation Code of Conduct