]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
Add support for Python 3.15 (#1296) master
authorAarni Koskela <akx@iki.fi>
Wed, 29 Jul 2026 14:36:25 +0000 (17:36 +0300)
committerGitHub <noreply@github.com>
Wed, 29 Jul 2026 14:36:25 +0000 (17:36 +0300)
* Test on and declare support for Python 3.15

* Upgrade CI tools

.github/workflows/ci.yml
.github/workflows/security.yml
setup.py
tox.ini

index ac831e7f3aa0d6c94f0a2ab4e2c5577f4d29f73c..630fcdffaa85ef35f02d6f688a1ae39cc1408e28 100644 (file)
@@ -27,15 +27,15 @@ jobs:
       contents: read
     runs-on: ubuntu-latest
     steps:
       contents: read
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
         with:
           persist-credentials: false
         with:
           persist-credentials: false
-      - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
+      - uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0
         with:
           cache-dependency-glob: ".github/workflows/*.yml"
           cache-suffix: pre-commit-uv
       - run: uv tool install pre-commit --with pre-commit-uv --force-reinstall
         with:
           cache-dependency-glob: ".github/workflows/*.yml"
           cache-suffix: pre-commit-uv
       - run: uv tool install pre-commit --with pre-commit-uv --force-reinstall
-      - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
+      - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
         with:
           path: ~/.cache/pre-commit
           key: pre-commit-uv-v1-${{ hashFiles('.pre-commit-config.yaml') }}
         with:
           path: ~/.cache/pre-commit
           key: pre-commit-uv-v1-${{ hashFiles('.pre-commit-config.yaml') }}
@@ -61,21 +61,22 @@ jobs:
           - "3.12"
           - "3.13"
           - "3.14"
           - "3.12"
           - "3.13"
           - "3.14"
+          - "3.15"
           - "pypy3.10"
     env:
       BABEL_CLDR_NO_DOWNLOAD_PROGRESS: "1"
       BABEL_CLDR_QUIET: "1"
       PIP_DISABLE_PIP_VERSION_CHECK: "1"
     steps:
           - "pypy3.10"
     env:
       BABEL_CLDR_NO_DOWNLOAD_PROGRESS: "1"
       BABEL_CLDR_QUIET: "1"
       PIP_DISABLE_PIP_VERSION_CHECK: "1"
     steps:
-    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+    - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
       with:
         persist-credentials: false
       with:
         persist-credentials: false
-    - uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5
+    - uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
       with:
         path: cldr
         key: cldr-${{ hashFiles('scripts/*cldr*') }}
     - name: Set up Python ${{ matrix.python-version }}
       with:
         path: cldr
         key: cldr-${{ hashFiles('scripts/*cldr*') }}
     - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
+      uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
       with:
         python-version: ${{ matrix.python-version }}
         allow-prereleases: true
       with:
         python-version: ${{ matrix.python-version }}
         allow-prereleases: true
@@ -90,7 +91,7 @@ jobs:
       env:
         COVERAGE_XML_PATH: ${{ runner.temp }}
         BABEL_TOX_EXTRA_DEPS: pytest-github-actions-annotate-failures
       env:
         COVERAGE_XML_PATH: ${{ runner.temp }}
         BABEL_TOX_EXTRA_DEPS: pytest-github-actions-annotate-failures
-    - uses: codecov/codecov-action@57e3a136b779b570ffcdbf80b3bdc90e7fab3de2 # v6.0.0
+    - uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f # v7.0.0
       with:
         directory: ${{ runner.temp }}
         flags: ${{ matrix.os }}-${{ matrix.python-version }}
       with:
         directory: ${{ runner.temp }}
         flags: ${{ matrix.os }}-${{ matrix.python-version }}
@@ -103,10 +104,10 @@ jobs:
     runs-on: ubuntu-24.04
     needs: lint
     steps:
     runs-on: ubuntu-24.04
     needs: lint
     steps:
-      - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+      - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
         with:
           persist-credentials: false
         with:
           persist-credentials: false
-      - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
+      - uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
         with:
           python-version: "3.14"
           cache: "pip"
         with:
           python-version: "3.14"
           cache: "pip"
@@ -114,7 +115,7 @@ jobs:
       - run: pip install build -e .
       - run: make import-cldr
       - run: python -m build
       - run: pip install build -e .
       - run: make import-cldr
       - run: python -m build
-      - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
+      - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
         with:
           name: dist
           path: dist
         with:
           name: dist
           path: dist
@@ -130,12 +131,12 @@ jobs:
     permissions:
       id-token: write # Required for Trusted Publishing action
     steps:
     permissions:
       id-token: write # Required for Trusted Publishing action
     steps:
-      - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
+      - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
         with:
           name: dist
           path: dist/
       - name: Publish package distributions to PyPI
         with:
           name: dist
           path: dist/
       - name: Publish package distributions to PyPI
-        uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0
+        uses: pypa/gh-action-pypi-publish@ba38be9e461d3875417946c167d0b5f3d385a247 # v1.14.1
         with:
           verbose: true
           print-hash: true
         with:
           verbose: true
           print-hash: true
index 83ae82929a2b831218b280c8f0d53ca4575d38f8..109c8931e99b2959ed63962f06376bdb9dd77a58 100644 (file)
@@ -22,8 +22,8 @@ jobs:
       security-events: write # via Zizmor example
     steps:
       - name: Checkout repository
       security-events: write # via Zizmor example
     steps:
       - name: Checkout repository
-        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+        uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
         with:
           persist-credentials: false
       - name: Run zizmor
         with:
           persist-credentials: false
       - name: Run zizmor
-        uses: zizmorcore/zizmor-action@b1d7e1fb5de872772f31590499237e7cce841e8e # v0.5.3
+        uses: zizmorcore/zizmor-action@6fc4b006235f201fdab3722e17240ab420d580e5 # v0.6.1
index a8ac577541e536c676c6efb1cb243ae971484cc9..162369165ce62880efc4b0dfed2886cce5759d86 100755 (executable)
--- a/setup.py
+++ b/setup.py
@@ -54,6 +54,7 @@ setup(
         'Programming Language :: Python :: 3.12',
         'Programming Language :: Python :: 3.13',
         'Programming Language :: Python :: 3.14',
         'Programming Language :: Python :: 3.12',
         'Programming Language :: Python :: 3.13',
         'Programming Language :: Python :: 3.14',
+        'Programming Language :: Python :: 3.15',
         'Programming Language :: Python :: Implementation :: CPython',
         'Programming Language :: Python :: Implementation :: PyPy',
         'Topic :: Software Development :: Internationalization',
         'Programming Language :: Python :: Implementation :: CPython',
         'Programming Language :: Python :: Implementation :: PyPy',
         'Topic :: Software Development :: Internationalization',
diff --git a/tox.ini b/tox.ini
index d5f3e326bba8a9c44abb598bd59192a5dc285944..6d034cfd60162a3c06f64bbe1e6f128128dc4d54 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -1,11 +1,11 @@
 [tox]
 isolated_build = true
 envlist =
 [tox]
 isolated_build = true
 envlist =
-    py{38,39,310,311,312,313}
+    py{38,39,310,311,312,313,314,315}
     pypy3
     py{38}-pytz
     pypy3
     py{38}-pytz
-    py{311,312,313}-setuptools
-    py{312,313}-jinja
+    py{311,312,313,314,315}-setuptools
+    py{312,313,314,315}-jinja
 
 [testenv]
 extras =
 
 [testenv]
 extras =
@@ -37,3 +37,4 @@ python =
     3.12: py312
     3.13: py313
     3.14: py314
     3.12: py312
     3.13: py313
     3.14: py314
+    3.15: py315