For those who haven't run across soft-releases before, this is the last step before the final release. Because things haven't been finalized yet, some packages may change between now and the release. It is not recommended to use soft-releases in production.
I'm running into errors trying to build buildout.coredev on Python 3. It seems to be pulling in the Archetypes pins when building the [test] section. Has anyone else run across this?
Nope and as far as I can see jenkins is also able to properly run the coredev buildout.
Did you try rebuilding your bin/buildout executable (try with ./bin/pip install -IUr requirements.txt, it will force bin/buildout to be rewritten).
Sometimes it happens that bin/buildout is rewritten by buildout itself and will contain some spurious path that cause weird failures.
Switching between python versions in one buildout resulted in some weird problems (I do not remember the details). I then created https://github.com/collective/coredev52multipy to have one sources tree and one buildout.coredev but two separate buildouts and never ran into problems.
It's not specifically a version issue. When I'm building the releases, I use a cfg file that ignores all of the checkouts and dumps all of the dist files in a separate directory. For some reason, under Python 3, that's trying to pull in plone.app.collections and since that's only pinned for 2.7, buildout throws an error.
There's nothing new in that package since the 1.7.0 release, so I'm not sure what the difference is. @tisto any idea what may be happening? We may just need a new release.
I currently don't see how this could be related with plone.restapi. I see the p.a.collection issue but plone.restapi has no dependency on p.a.collection. If you have another pointer I am more than happy to look into this. We can also just downgrade to plone.restapi 3.6.0.
I can reproduce the issue in coredev. In python 3 no AT-dependencies are pulled for [test] when I have plone.restapi as a checkout (like it is right now). When I remove plone.restapi from checkouts with auto-checkout -= plone.restapi I get all AT-dependencies.
I can reproduce that as well. Somehow, the egg that gets built has a wrong sys.version_info and then when running setup.py it adds all AT dependencies:
Trying to pin different versions of plone.restapi give the same error for me:
3.7.0
3.6.0
3.5.2
The previous release, 3.5.1, is the first one that works for me on python 3.7 and without pulling plone.app.collection.
But a universal wheel for plone.restapi is not possible as on setup.py there is a check to see which python version is being used to install it.
Since, I guess, @tisto is making the releases on python 2, you get a wheel built supposedly for both py2 and py3 but that in fact is only py2 compatible, as it pulls all the AT dependencies.
Ah, you are right. My bad. When setting up to release universal eggs, I was only checking for packages with C code, as those cannot be universal AFAIK. But when the requirements are different between Python 2 and 3, it cannot be a universal wheel either.
A quick grep on setup.py files with a complete checkout (i.e. change checkouts.cfg to have auto-checkout = *) shows only 3 setup.py files that have a sys.version_info check: plone.restapi, ZODB3 and plone.app.robotframework.
I'm removing the universal wheel on p.a.robotframework right now
With universal wheels explicitly disabled like this:
[bdist_wheel]
universal = 0
the side effect would be that zest.releaser no longer creates wheels at all, only the standard source release that it always creates. To counter this, we would need another setting in setup.cfg:
[zest.releaser]
create-wheel = yes
I could change zest.releaser to create a wheel even when universal is false: when there is a bdist_wheel setting, it seems logical that the developer wants a wheel. Relevant code is here.