Anyone else experiencing CI test failures on Mac? ...
# development
a
Anyone else experiencing CI test failures on Mac? (Failing to fetch pex) https://github.com/pantsbuild/pants/actions/runs/3379486204/jobs/5612411094
asking because I’ve made changes to
pex_binary
in this PR, but the fact that it’s passing on Linux is giving me pause)
h
Hm, no, I don't think I've seen this one before. But something that seems relevant is it's using Python 3.11. Maybe the macOS worker changed on us?
a
oh huh. That’s very new 🙂
https://github.com/actions/runner-images/blob/main/images/macos/macos-12-Readme.md <--- system python on the Mac os 12 image is 3.11.0. That was fast 🙃
I don’t see anything in the Pants/CI config that would make things want to use Python 3.11 😕
e
Copy code
$ git grep ",<4" | grep ">="
3rdparty/python/user_reqs.lock:          "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,<4,>=2.7",
docs/markdown/Python/python-goals/python-test-goal.md:  "pytest-django>=3.9.0,<4",
docs/markdown/Python/python/python-interpreter-compatibility.md:| `['CPython>=3.6,<4']`                | CPython 3.6+, but not CPython 4 or later |
pants.toml:  "flake8-comprehensions>=3.10.0,<4.0",
src/python/pants/backend/cc/lint/clangformat/subsystem.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/codegen/protobuf/python/python_protobuf_subsystem.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/docker/subsystems/dockerfile_parser.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/helm/subsystems/k8s_parser.lock:          "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,<4,>=2.7",
src/python/pants/backend/python/goals/coverage_py.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/goals/pytest_runner_integration_test.py:        "--pytest-version=pytest>=4.6.6,<4.7",
src/python/pants/backend/python/lint/add_trailing_comma/subsystem.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/lint/autoflake/subsystem.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/lint/black/subsystem.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/lint/docformatter/subsystem.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/lint/isort/subsystem.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/lint/pylint/rules_integration_test.py:        "--pylint-extra-requirements=['setuptools<45', 'isort>=4.3.21,<4.4']",
src/python/pants/backend/python/lint/pyupgrade/subsystem.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/lint/yapf/subsystem.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/macros/poetry_requirements_test.py:        PipRequirement.parse("anotherwildcard>=44.0,<45.0.0"),
src/python/pants/backend/python/packaging/pyoxidizer/subsystem.py:    default_interpreter_constraints = ["CPython>=3.8,<4"]
src/python/pants/backend/python/subsystems/setup.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/subsystems/setuptools_scm.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/subsystems/twine.lock:          "requires_python": "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,<4,>=2.7",
src/python/pants/backend/python/subsystems/twine.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/target_types.py:        `CPython>=3.6,<4`. You can leave off `CPython` as a shorthand, e.g. `>=2.7` will be expanded
src/python/pants/backend/python/typecheck/mypy/subsystem.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
src/python/pants/backend/python/util_rules/interpreter_constraints_test.py:        inp=[["CPython==3.7.*", "PyPy>=43.0"], ["PyPy<44.0"]], expected=["PyPy>=43.0,<44.0"]
src/python/pants/backend/python/util_rules/interpreter_constraints_test.py:        expected=["PyPy>=43.0,<44.0", "Jython>=1.2,<1.3"],
src/python/pants/backend/python/util_rules/interpreter_constraints_test.py:    # #12578: This list itself is out of order, and `CPython>=3.6,<4,!=3.7.*` is specified with
src/python/pants/backend/python/util_rules/interpreter_constraints_test.py:    inputs = ["CPython==2.7.*", "PyPy", "CPython>=3.6,<4,!=3.7.*"]
src/python/pants/backend/python/util_rules/lockfile_metadata_test.py:            ["CPython==2.7.*", "PyPy", "CPython>=3.6,<4,!=3.7.*"]
src/python/pants/backend/terraform/dependency_inference.py:    default_interpreter_constraints = ["CPython>=3.7,<4"]
That
<4
is killing you in a test that uses old enough Pex that Pex's Requires-Python are still just ~
>=2,7,<3.11
.
a
Aha!
thanks John, looks like updating those tests to the latest pex versions have fixed the Mac OS tests.
❤️ 1
w
looks like this fix needs a cherry-pick to 2.14.x: https://github.com/pantsbuild/pants/actions/runs/3386387835/jobs/5632336823
a
ack
w
thank you
a
w
er, sorry: just the PEX portion of the fix probably, not the environment field. 2.14.x doesn’t have environments
a
SIGH 🙂
ONE MOMENT
❤️ 1
facepalm I clicked the “merge when CI is done” button and then there was the 10 second slow-moving train wreck of realising it was actually the merge now button because release branch
I really need to find some time to figure out branch protection for the release branches 🤦
w
thanks!