Skip to content

ci: upgrade default Python to 3.14#1599

Closed
wowi42 wants to merge 5 commits intopyinfra-dev:3.xfrom
KalvadTech:ci/upgrade-python-3.14
Closed

ci: upgrade default Python to 3.14#1599
wowi42 wants to merge 5 commits intopyinfra-dev:3.xfrom
KalvadTech:ci/upgrade-python-3.14

Conversation

@wowi42
Copy link
Copy Markdown
Collaborator

@wowi42 wowi42 commented Mar 13, 2026

Update lint, type-check, and unit-test matrix to use Python 3.14 as the default version. Add 3.13 as an explicit include entry so it remains tested.

  • Pull request is based on the default branch (3.x at this time)
  • Pull request includes tests for any new/updated operations/facts
  • Pull request includes documentation for any new/updated operations/facts
  • Tests pass (see scripts/dev-test.sh)
  • Type checking & code style passes (see scripts/dev-lint.sh)

Update lint, type-check, and unit-test matrix to use Python 3.14 as
the default version. Add 3.13 as an explicit include entry so it
remains tested. Remove coverage gevent concurrency setting as unit
tests don't need it, and it is incompatible with Python 3.14's
SysMonitor tracer.
@wowi42 wowi42 force-pushed the ci/upgrade-python-3.14 branch from 1a780dc to 767e360 Compare March 13, 2026 10:26
@Dexmachi
Copy link
Copy Markdown
Contributor

this could be really good, once py3.15 comes around, there will be significant performance upgrades, it could make Pyinfra even better

Copy link
Copy Markdown
Member

@Fizzadar Fizzadar left a comment

Choose a reason for hiding this comment

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

Couple of notes, otherwise good to go 👍

Comment thread pyproject.toml
]

[tool.coverage.run]
concurrency = ["gevent"]
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We need this?

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

incompatible with Python 3.14's SysMonitor tracer and not needed

Comment thread uv.lock
@@ -2,10 +2,9 @@ version = 1
revision = 3
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think we should drop this last commit - updating the lock file as part of PRs will never scale I think we have to keep that part of 3.x branch flow only?

@wowi42 wowi42 closed this Apr 14, 2026
wowi42 added a commit to KalvadTech/pyinfra that referenced this pull request Apr 14, 2026
Update lint, type-check and unit-test matrix to use Python 3.14 as the
default version. Add 3.13 as an explicit include entry so it remains
tested on ubuntu-24.04, alongside the already-present 3.12, 3.11 and
3.10 matrix entries. Flip the codecov upload condition to the new
default. Leave end-to-end-test and docs-build on 3.13 for now —
matches the narrow scope of the original change.

Also add the Python 3.14 trove classifier to pyproject.toml and drop
``concurrency = ["gevent"]`` from ``[tool.coverage.run]``; gevent's
coverage concurrency integration is incompatible with 3.14 and the
pytest-cov run does not need it.

This is PR pyinfra-dev#1599 re-applied on 3.x without the uv.lock bump.
@wowi42 wowi42 mentioned this pull request Apr 14, 2026
5 tasks
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