Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop Python 3.7 support and update meta templates #1214

Merged
merged 15 commits into from
May 30, 2024

Conversation

dataflake
Copy link
Member

Creating as draft because of the macOS issues.

@dataflake
Copy link
Member Author

Possibly related: zopefoundation/meta#247

@dataflake
Copy link
Member Author

The errors are all a re-manifestation of buildout/buildout#609 and zopefoundation/meta#181. zc.buildout is broken when using it from a Python that has been compiled to use universal2 architecture on macOS because it has a really dumb algorithm to match the system architecture.

In the past we have worked around it by just excluding GHA tests for Python versions we know wouldn't work anymore. At this point, with newer macOS runners that are all using universal2, this isn't enough anymore. Unless we stop testing on macOS altogether.

Nothing is broken for Python installs that are built for the native x86_64 or arm64 architecture. Just universal2.

Not sure what to do right now.

@d-maurer
Copy link
Contributor

d-maurer commented May 28, 2024 via email

@dataflake
Copy link
Member Author

Yes, fixing zc.buildout would be great. And making it not use easy_install. I wish someone would do that, I do not want to become a zc.buildout and/or setuptools maintainer myself.

My latest thought was to try and switch the tox template to use pip and straight zope.testrunner instead of installing dependencies and building the convenience test script with buildout. Some of the configuration templates already do it that way.

@dataflake dataflake marked this pull request as ready for review May 29, 2024 06:26
@dataflake
Copy link
Member Author

This PR uses changed meta templates from zopefoundation/meta#248 to work around the macOS issues. Local tox runs are not affected unless you manually add -universal2 to the end of a tox environment name.

@dataflake dataflake enabled auto-merge (squash) May 29, 2024 10:57
@dataflake dataflake requested review from tseaver, icemac and d-maurer May 29, 2024 10:57
icemac
icemac previously approved these changes May 29, 2024
Copy link
Member

@icemac icemac left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

.meta.toml Show resolved Hide resolved
.meta.toml Show resolved Hide resolved
src/Zope2/utilities/mkwsgiinstance.py Outdated Show resolved Hide resolved
versions-prod.cfg Outdated Show resolved Hide resolved
@d-maurer
Copy link
Contributor

d-maurer commented May 29, 2024 via email

@dataflake
Copy link
Member Author

zope.testrunner already has the option require-unique. This means that it maintains a structure able to detect (apparent) test "duplicate"s. It would be easy to use this structure to implement the option skip-test-duplicates to not run a test with a test id already known.

The problem is not duplicate tests. The problem is that it tries to test everything in the virtual environment's site-packages, which doesn't work and is not the desired outcome.

@d-maurer
Copy link
Contributor

d-maurer commented May 29, 2024 via email

@dataflake
Copy link
Member Author

If you want to specify folders to ignore there's the problem that you would need to synthesize what folders to ignore in the tox configuration. This is not a fixed value. It's the site-packages folder of the Python version that is being used to run the tests.

Before spending too much time on this please consider what we're testing. The alltests script tests Zope plus an arbitrary selection of other packages. There's no real rhyme or reason to that selection of additional packages. And obviously those packages are all tested with Zope in their own package test configurations already. And the alltest script would only be replaced by the standard test script for macOS runners. So there's no real loss. The other runners will have tested this already.

.meta.toml Show resolved Hide resolved
.meta.toml Show resolved Hide resolved
constraints.txt Show resolved Hide resolved
requirements-full.txt Show resolved Hide resolved
@dataflake dataflake disabled auto-merge May 30, 2024 06:38
@d-maurer d-maurer self-requested a review May 30, 2024 07:08
d-maurer
d-maurer previously approved these changes May 30, 2024
@dataflake dataflake merged commit cb1a4fb into master May 30, 2024
25 checks passed
@dataflake dataflake deleted the config-with-zope-product-template-857123fa branch May 30, 2024 14:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants