Picked: Zope = 4.0b5
Version and requirements information containing zope.pagetemplate:
[versions] constraint on zope.pagetemplate: 3.6.3
Requirement of Zope2>=2.12.1: zope.pagetemplate
Requirement of plone.app.caching: zope.pagetemplate
Requirement of Products.CMFPlone: zope.pagetemplate
Requirement of zope.ptresource: zope.pagetemplate
Requirement of zope.pagetemplate: zope.traversing
Requirement of zope.pagetemplate: zope.i18nmessageid
Requirement of zope.pagetemplate: zope.i18n
Requirement of zope.pagetemplate: zope.tal
Requirement of zope.pagetemplate: zope.tales
Requirement of zope.pagetemplate: zope.security[untrustedpython]
Requirement of zope.pagetemplate: zope.component
Requirement of zope.pagetemplate: zope.interface
Requirement of zope.pagetemplate: setuptools
Requirement of zope.browserpage: zope.pagetemplate
Requirement of zope.browsermenu: zope.pagetemplate>=3.5
Requirement of z3c.jbot: zope.pagetemplate
Requirement of z3c.form: zope.pagetemplate
Requirement of five.customerize: zope.pagetemplate
Requirement of grokcore.view>=2.2: zope.pagetemplate
Requirement of five.grok>=1.0b2: zope.pagetemplate
Requirement of Zope>=4.0b5: zope.pagetemplate>=4.0.2
Error: The requirement ('zope.pagetemplate>=4.0.2') is not allowed by your [versions] constraint (3.6.3)
In your buildout.cfg there's a line 'allow-picked-versions = true' This means that when buildout needs to download a dependent package, it can pick the latest version available.
It could be that one of those 'floating' package versions that were unpinned have now been upgraded to a newer version that depends on Zope 4 and this sets of the dependency-chain where Zope4 is pulling in other newer versions that collide with pinned listings.
First try to set allow-picked-versions = false and then see which packages are pulled in without a version. Also keep 'show-picked-verisions = true'. That can give you a hint which package is starting this.
Bingo! The errors you get after settings allow-picked-versions = false, are almost always actual problems with unpinned packages. I don't think the github issue you linked to is related, that was an actual programming error in zc.buildout 2.0 from a few years ago
If you use an egg cache for multiple projects (or else the 'eggs' directory in the buildout directory itself, it contains installed python packages), you can do a:
on unixy OS'es to quickly find which python package has a depend on this case Zope. What's in the requires.txt of an installed Python egg is distilled from the install_requires section in a setup.py. I guess this will no longer work when we move from eggs to wheels.