Upcoming tox rewrite needs some action


currently, tox gets completely rewritten - the new version 4 is announced for the begin of May 2021.

I have been running tox4-pre on my dev box for all the repositories I work on for quite some time already.

I reported already a bunch of issues, which all got fixed super quick.

On the weekend I took some time, and once again I used all-repos, but this time not to create mass pull requests, but to run tox4-pre on all active Zope and Plone repos (Plone only, I am not a member of Collective).

For Zope results, see here issues with the upcoming tox version · Issue #66 · zopefoundation/meta · GitHub

Plone does not make heavy use of tox (why?), but here we go...

tested repositories: 322
no tox usage: 296
successful tox 4-pre runs: 10
failed runs: 15

problems: 15 ['plone/plone.event', 'plone/plone.reload', 'plone/plone.app.standardtiles', 'plone/plone.behavior', 'plone/plone.recipe.zope2instance', 'plone/Products.ExtendedPathIndex', 'plone/diazo', 'plone/plone.app.testing', 'plone/plone.api', 'plone/plone.versioncheck', 'plone/ploneorg.addonlisting', 'plone/ploneorg.releasesecurityinfo', 'plone/plone.gallery', 'plone/Products.isurlinportal', 'plone/plone.autoinclude']

I had no chance to have a closer look what's broken. Possible some issues will overlap with the ones I found in Zope.

The most annoying error was the one in plone.memoize which caused memory exhaustion due to an endless setuptools update loop.

This is how I did it..


Obviously, as I am Zope user, I will first go through all errors I found for the Zope repositories, report and try to fix them, and maybe some of the problems for the Plone repositories will be automatically fixed by a new tox version.

Once all Zope issues are fixed, I will make a new tox test run on all Plone repos, too. There is still quite a lot of time until May.


Hmkay, as there only very few Plone repos which use tox, I decided to go through all broken tox builds.

Here we go:

  • plone/memoize -> report in repo itself
  • plone/plone.event -> report in tox4 repo
  • plone/plone.reload -> report in repo itself
  • plone/plone.app.standardtiles -> report in repo itself
  • plone/plone.behavior -> known tox4 problem
  • plone/plone.recipe.zope2instance -> report in tox4 repo
  • plone/Products.ExtendedPathIndex -> report in repo itself
  • plone/diazo -> report in repo itself
  • plone/plone.app.testing -> report in repo itself
  • plone/plone.api -> there was already an existing issue in repo
  • plone/plone.versioncheck -> known tox4 issue
  • plone/ploneorg.addonlisting -> Python 2.7 only
  • plone/ploneorg.releasesecurityinfo -> Python 2.7 only
  • plone/plone.gallery -> report in repo itself
  • plone/Products.isurlinportal -> report in tox4 repo
  • plone/plone.autoinclude -> report in tox4 repo

As noted in the list, I reported all issues, either in the repos itself if it was an issue of the package or on the tox issue tracker, if this was a new failure only on tox4.

1 Like