Skip to content

Commit 2ac8f89

Browse files
feat: Add support for Python 3.12 (googleapis#2288)
* chore(python): Add Python 3.12 Source-Link: googleapis/synthtool@af16e6d Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-python:latest@sha256:bacc3af03bff793a03add584537b36b5644342931ad989e3ba1171d3bd5399f5 * add trove classifier for python 3.12 * add constraints file for python 3.12; update owlbot.py to include python 3.12 * 🦉 Updates from OwlBot post-processor See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md * add python3.12 to noxfile, README and required checks * add necessary dependencies for creating wheels --------- Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com> Co-authored-by: Anthonios Partheniou <[email protected]>
1 parent 04f0649 commit 2ac8f89

15 files changed

+83
-20
lines changed

Diff for: .github/.OwlBot.lock.yaml

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@
1313
# limitations under the License.
1414
docker:
1515
image: gcr.io/cloud-devrel-public-resources/owlbot-python:latest
16-
digest: sha256:caffe0a9277daeccc4d1de5c9b55ebba0901b57c2f713ec9c876b0d4ec064f61
17-
# created: 2023-11-08T19:46:45.022803742Z
16+
digest: sha256:bacc3af03bff793a03add584537b36b5644342931ad989e3ba1171d3bd5399f5
17+
# created: 2023-11-23T18:17:28.105124211Z

Diff for: .github/sync-repo-settings.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ branchProtectionRules:
1515
- 'Samples - Python 3.8'
1616
- 'Samples - Python 3.9'
1717
- 'Samples - Python 3.10'
18+
- 'Samples - Python 3.11'
19+
- 'Samples - Python 3.12'
1820
permissionRules:
1921
- team: actools-python
2022
permission: admin

Diff for: .kokoro/samples/python3.12/common.cfg

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
3+
# Build logs will be here
4+
action {
5+
define_artifacts {
6+
regex: "**/*sponge_log.xml"
7+
}
8+
}
9+
10+
# Specify which tests to run
11+
env_vars: {
12+
key: "RUN_TESTS_SESSION"
13+
value: "py-3.12"
14+
}
15+
16+
# Declare build specific Cloud project.
17+
env_vars: {
18+
key: "BUILD_SPECIFIC_GCLOUD_PROJECT"
19+
value: "python-docs-samples-tests-312"
20+
}
21+
22+
env_vars: {
23+
key: "TRAMPOLINE_BUILD_FILE"
24+
value: "github/google-api-python-client/.kokoro/test-samples.sh"
25+
}
26+
27+
# Configure the docker image for kokoro-trampoline.
28+
env_vars: {
29+
key: "TRAMPOLINE_IMAGE"
30+
value: "gcr.io/cloud-devrel-kokoro-resources/python-samples-testing-docker"
31+
}
32+
33+
# Download secrets for samples
34+
gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/python-docs-samples"
35+
36+
# Download trampoline resources.
37+
gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline"
38+
39+
# Use the trampoline script to run in docker.
40+
build_file: "google-api-python-client/.kokoro/trampoline_v2.sh"

Diff for: .kokoro/samples/python3.12/continuous.cfg

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
3+
env_vars: {
4+
key: "INSTALL_LIBRARY_FROM_SOURCE"
5+
value: "True"
6+
}

Diff for: .kokoro/samples/python3.12/periodic-head.cfg

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
3+
env_vars: {
4+
key: "INSTALL_LIBRARY_FROM_SOURCE"
5+
value: "True"
6+
}
7+
8+
env_vars: {
9+
key: "TRAMPOLINE_BUILD_FILE"
10+
value: "github/google-api-python-client/.kokoro/test-samples-against-head.sh"
11+
}

Diff for: .kokoro/samples/python3.12/periodic.cfg

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
3+
env_vars: {
4+
key: "INSTALL_LIBRARY_FROM_SOURCE"
5+
value: "False"
6+
}

Diff for: .kokoro/samples/python3.12/presubmit.cfg

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Format: //devtools/kokoro/config/proto/build.proto
2+
3+
env_vars: {
4+
key: "INSTALL_LIBRARY_FROM_SOURCE"
5+
value: "True"
6+
}

Diff for: CONTRIBUTING.rst

+4-2
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ In order to add a feature:
2222
documentation.
2323

2424
- The feature must work fully on the following CPython versions:
25-
3.7, 3.8, 3.9, 3.10 and 3.11 on both UNIX and Windows.
25+
3.7, 3.8, 3.9, 3.10, 3.11 and 3.12 on both UNIX and Windows.
2626

2727
- The feature must not add unnecessary dependencies (where
2828
"unnecessary" is of course subjective, but new dependencies should
@@ -72,7 +72,7 @@ We use `nox <https://nox.readthedocs.io/en/latest/>`__ to instrument our tests.
7272

7373
- To run a single unit test::
7474

75-
$ nox -s unit-3.11 -- -k <name of test>
75+
$ nox -s unit-3.12 -- -k <name of test>
7676

7777

7878
.. note::
@@ -226,12 +226,14 @@ We support:
226226
- `Python 3.9`_
227227
- `Python 3.10`_
228228
- `Python 3.11`_
229+
- `Python 3.12`_
229230

230231
.. _Python 3.7: https://docs.python.org/3.7/
231232
.. _Python 3.8: https://docs.python.org/3.8/
232233
.. _Python 3.9: https://docs.python.org/3.9/
233234
.. _Python 3.10: https://docs.python.org/3.10/
234235
.. _Python 3.11: https://docs.python.org/3.11/
236+
.. _Python 3.12: https://docs.python.org/3.12/
235237

236238

237239
Supported versions can be found in our ``noxfile.py`` `config`_.

Diff for: README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ virtualenv <your-env>
9797

9898
## Supported Python Versions
9999

100-
Python 3.7, 3.8, 3.9, 3.10 and 3.11 are fully supported and tested. This library may work on later versions of 3, but we do not currently run tests against those versions.
100+
Python 3.7, 3.8, 3.9, 3.10, 3.11 and 3.12 are fully supported and tested. This library may work on later versions of 3, but we do not currently run tests against those versions.
101101

102102
## Unsupported Python Versions
103103

Diff for: noxfile.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ def format(session):
8080
)
8181

8282

83-
@nox.session(python=["3.7", "3.8", "3.9", "3.10", "3.11"])
83+
@nox.session(python=["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"])
8484
@nox.parametrize(
8585
"oauth2client",
8686
[
@@ -101,6 +101,7 @@ def unit(session, oauth2client):
101101
session.install(oauth2client)
102102

103103
# Create and install wheels
104+
session.install("setuptools", "wheel")
104105
session.run("python3", "setup.py", "bdist_wheel")
105106
session.install(os.path.join("dist", os.listdir("dist").pop()))
106107

Diff for: owlbot.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
# Add templated files
2525
# ----------------------------------------------------------------------------
2626
templated_files = common.py_library(
27-
unit_test_python_versions=["3.7", "3.8", "3.9", "3.10", "3.11"],
27+
unit_test_python_versions=["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"],
2828
)
2929

3030
# Copy kokoro configs.

Diff for: samples/compute/noxfile.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def get_pytest_env_vars() -> Dict[str, str]:
8888

8989
# DO NOT EDIT - automatically generated.
9090
# All versions used to test samples.
91-
ALL_VERSIONS = ["3.7", "3.8", "3.9", "3.10", "3.11"]
91+
ALL_VERSIONS = ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
9292

9393
# Any default versions that should be ignored.
9494
IGNORED_VERSIONS = TEST_CONFIG["ignored_versions"]

Diff for: setup.py

+1
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@
8181
"Programming Language :: Python :: 3.9",
8282
"Programming Language :: Python :: 3.10",
8383
"Programming Language :: Python :: 3.11",
84+
"Programming Language :: Python :: 3.12",
8485
"Development Status :: 5 - Production/Stable",
8586
"Intended Audience :: Developers",
8687
"License :: OSI Approved :: Apache Software License",

Diff for: testing/constraints-3.12.txt

Whitespace-only changes.

Diff for: testing/constraints-3.6.txt

-12
This file was deleted.

0 commit comments

Comments
 (0)