Skip to content

Commit

Permalink
feat: add python 3.12 support
Browse files Browse the repository at this point in the history
Update the build scripts to test and target Python 3.12 released on 2
October 2023. As the dependency on distutils has been removed already,
there are no other changes required.

Signed-off-by: JP-Ellis <josh@jpellis.me>
  • Loading branch information
JP-Ellis committed Nov 22, 2023
1 parent 636cc35 commit 38e1138
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 9 deletions.
2 changes: 2 additions & 0 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ linux_arm64_task:
- IMAGE: "python:3.9-slim"
- IMAGE: "python:3.10-slim"
- IMAGE: "python:3.11-slim"
- IMAGE: "python:3.12-slim"
arm_container:
image: $IMAGE
install_script:
Expand All @@ -37,6 +38,7 @@ macosx_arm64_task:
- PYTHON: "3.9"
- PYTHON: "3.10"
- PYTHON: "3.11"
- PYTHON: "3.12"
install_script:
- brew update
- brew install pyenv
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ concurrency:
cancel-in-progress: true

env:
STABLE_PYTHON_VERSION: "3.11"
STABLE_PYTHON_VERSION: "3.12"
CIBW_BUILD_FRONTEND: build

jobs:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ concurrency:
cancel-in-progress: true

env:
STABLE_PYTHON_VERSION: "3.11"
STABLE_PYTHON_VERSION: "3.12"
PYTEST_ADDOPTS: --color=yes

jobs:
Expand All @@ -28,12 +28,12 @@ jobs:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
python-version: ["3.8", "3.9", "3.10", "3.11"]
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
experimental: [false]
include:
- # Run tests against the next Python version, but no need for the full list of OSes.
os: ubuntu-latest
python-version: "3.12-dev"
python-version: "3.13.0-alpha.0 - 3.13"
experimental: true

steps:
Expand Down
23 changes: 18 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,12 @@ classifiers = [
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3 :: Only",
"Topic :: Software Development :: Testing",
]

requires-python = ">=3.8, <3.12"
requires-python = ">=3.8"

# Dependencies of Pact Python should be specified using the broadest range
# compatible version unless:
Expand Down Expand Up @@ -87,7 +88,13 @@ dev = [
################################################################################

[build-system]
requires = ["hatchling", "packaging", "requests", "cffi"]
requires = [
"hatchling",
"packaging",
"requests",
"cffi",
"setuptools ; python_version >= '3.12'",
]
build-backend = "hatchling.build"

[tool.hatch.version]
Expand All @@ -110,8 +117,14 @@ artifacts = ["pact/bin/*", "pact/lib/*", "pact/v3/_ffi.*"]
# Install dev dependencies in the default environment to simplify the developer
# workflow.
[tool.hatch.envs.default]
features = ["dev"]
extra-dependencies = ["hatchling", "packaging", "requests", "cffi"]
features = ["dev"]
extra-dependencies = [
"hatchling",
"packaging",
"requests",
"cffi",
"setuptools ; python_version >= '3.12'",
]

[tool.hatch.envs.default.scripts]
lint = ["black --check --diff {args:.}", "ruff {args:.}", "mypy {args:.}"]
Expand All @@ -125,7 +138,7 @@ all = ["lint", "test", "example"]
features = ["test"]

[[tool.hatch.envs.test.matrix]]
python = ["3.8", "3.9", "3.10", "3.11"]
python = ["3.8", "3.9", "3.10", "3.11", "3.12"]

[tool.hatch.envs.test.scripts]
test = "pytest {args:tests/}"
Expand Down

0 comments on commit 38e1138

Please sign in to comment.