]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
Renovate CI & tools (#1028)
authorAarni Koskela <akx@iki.fi>
Sun, 1 Oct 2023 11:15:51 +0000 (14:15 +0300)
committerGitHub <noreply@github.com>
Sun, 1 Oct 2023 11:15:51 +0000 (14:15 +0300)
* Update ruff, run autofix
* CI: Update action versions
* CI: Unify workflow files
* CI: Test on Python 3.12 too
* CI: use Ubuntu 22.04 instead of 20.04
* CI: add publish step for version tags

.github/workflows/build.yml [deleted file]
.github/workflows/ci.yml [new file with mode: 0644]
.github/workflows/test.yml [deleted file]
.pre-commit-config.yaml
scripts/generate_authors.py
tox.ini

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
deleted file mode 100644 (file)
index 0593507..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-name: CI
-"on":
-  push:
-    branches:
-      - master
-      - '*-maint'
-  pull_request:
-    branches:
-      - master
-      - '*-maint'
-jobs:
-  Build:
-    runs-on: ubuntu-20.04
-    steps:
-      - uses: actions/checkout@v3
-      - uses: actions/setup-python@v4
-        with:
-          python-version: "3.10"
-          cache: "pip"
-          cache-dependency-path: "**/setup.py"
-      - run: pip install build -e .
-      - run: make import-cldr
-      - run: python -m build
-      - uses: actions/upload-artifact@v3
-        with:
-          name: dist
-          path: dist
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644 (file)
index 0000000..2c0eaaf
--- /dev/null
@@ -0,0 +1,100 @@
+name: CI
+
+on:
+  push:
+    branches:
+      - master
+      - '*-maint'
+    tags:
+      - 'v*'
+  pull_request:
+    branches:
+      - master
+      - '*-maint'
+
+jobs:
+  lint:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v4
+      - uses: pre-commit/action@v3.0.0
+  test:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        os:
+          - "ubuntu-22.04"
+          - "windows-2022"
+          - "macos-11"
+        python-version:
+          - "3.7"
+          - "3.8"
+          - "3.9"
+          - "3.10"
+          - "3.11"
+          - "pypy-3.7"
+          - "3.12"
+    env:
+      BABEL_CLDR_NO_DOWNLOAD_PROGRESS: "1"
+      BABEL_CLDR_QUIET: "1"
+    steps:
+    - uses: actions/checkout@v4
+    - uses: actions/cache@v3
+      with:
+        path: cldr
+        key: cldr-${{ hashFiles('scripts/*cldr*') }}
+    - name: Set up Python ${{ matrix.python-version }}
+      uses: actions/setup-python@v4
+      with:
+        python-version: ${{ matrix.python-version }}
+        allow-prereleases: true  # For Python 3.12
+        cache: "pip"
+        cache-dependency-path: "**/setup.py"
+    - name: Install dependencies
+      run: |
+        python -m pip install --upgrade pip setuptools wheel
+        python -m pip install 'tox~=4.0' 'tox-gh-actions~=3.0'
+    - name: Run test via Tox
+      run: tox --skip-missing-interpreters
+      env:
+        COVERAGE_XML_PATH: ${{ runner.temp }}
+    - uses: codecov/codecov-action@v3
+      with:
+        directory: ${{ runner.temp }}
+  build:
+    runs-on: ubuntu-22.04
+    needs: lint
+    steps:
+      - uses: actions/checkout@v4
+      - uses: actions/setup-python@v4
+        with:
+          python-version: "3.11"
+          cache: "pip"
+          cache-dependency-path: "**/setup.py"
+      - run: pip install build -e .
+      - run: make import-cldr
+      - run: python -m build
+      - uses: actions/upload-artifact@v3
+        with:
+          name: dist
+          path: dist
+  publish:
+    if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags')
+    needs:
+      - build
+    runs-on: ubuntu-latest
+    environment:
+      name: release
+      url: https://pypi.org/p/babel/
+    permissions:
+      id-token: write
+    steps:
+      - uses: actions/download-artifact@v3
+        with:
+          name: dist
+          path: dist/
+      - name: Publish package distributions to PyPI
+        uses: pypa/gh-action-pypi-publish@release/v1
+        with:
+          verbose: true
+          print-hash: true
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
deleted file mode 100644 (file)
index a35a1b4..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-name: Test
-
-on:
-  push:
-    branches:
-      - master
-      - '*-maint'
-  pull_request:
-    branches:
-      - master
-      - '*-maint'
-
-jobs:
-  lint:
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v3
-      - uses: pre-commit/action@v3.0.0
-  test:
-    runs-on: ${{ matrix.os }}
-    strategy:
-      matrix:
-        os: ["ubuntu-20.04", "windows-2022", "macos-11"]
-        python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "pypy-3.7"]
-    env:
-      BABEL_CLDR_NO_DOWNLOAD_PROGRESS: "1"
-      BABEL_CLDR_QUIET: "1"
-    steps:
-    - uses: actions/checkout@v3
-    - uses: actions/cache@v3
-      with:
-        path: cldr
-        key: cldr-${{ hashFiles('scripts/*cldr*') }}
-    - name: Set up Python ${{ matrix.python-version }}
-      uses: actions/setup-python@v4
-      with:
-        python-version: ${{ matrix.python-version }}
-        cache: "pip"
-        cache-dependency-path: "**/setup.py"
-    - name: Install dependencies
-      run: |
-        python -m pip install --upgrade pip setuptools wheel
-        python -m pip install 'tox~=4.0' 'tox-gh-actions~=3.0'
-    - name: Run test via Tox
-      run: tox --skip-missing-interpreters
-      env:
-        COVERAGE_XML_PATH: ${{ runner.temp }}
-    - uses: codecov/codecov-action@v3
-      with:
-        directory: ${{ runner.temp }}
index 1b5cf5a0a6cb9ac6ba1caa0aed2a6d705bf8172a..a96908e9757b901384dda4bb6cd1cb8cbe7d5bfc 100644 (file)
@@ -1,6 +1,6 @@
 repos:
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.0.275
+    rev: v0.0.291
     hooks:
       - id: ruff
         args:
index 64c0af82edc3c9985c46bd8878e5b0fbf78ff920..a5443b91e3194fb1ba8614ce1d5bb63f9b944211 100644 (file)
@@ -14,7 +14,7 @@ def get_sorted_authors_list():
 def get_authors_file_content():
     author_list = "\n".join(f"- {a}" for a in get_sorted_authors_list())
 
-    return '''
+    return f'''
 Babel is written and maintained by the Babel team and various contributors:
 
 {author_list}
@@ -26,7 +26,7 @@ following copyright notice holds true for releases before 2013: "Copyright (c)
 In addition to the regular contributions Babel includes a fork of Lennart
 Regebro's tzlocal that originally was licensed under the CC0 license.  The
 original copyright of that project is "Copyright 2013 by Lennart Regebro".
-'''.format(author_list=author_list)
+'''
 
 
 def write_authors_file():
diff --git a/tox.ini b/tox.ini
index 11cca0c6e29c5d5fe78b381dd55575695327bd56..c2d235fb58fafc2cf936d10122ab6119b874efa4 100644 (file)
--- a/tox.ini
+++ b/tox.ini
@@ -1,6 +1,6 @@
 [tox]
 envlist =
-    py{37,38,39,310,311}
+    py{37,38,39,310,311,312}
     pypy3
     py{37,38}-pytz
 
@@ -8,6 +8,10 @@ envlist =
 extras =
     dev
 deps =
+    # including setuptools here for CI;
+    #   see https://github.com/python/cpython/issues/95299
+    #   see https://github.com/python-babel/babel/issues/1005#issuecomment-1728105742
+    setuptools;python_version>="3.12"
     backports.zoneinfo;python_version<"3.9"
     tzdata;sys_platform == 'win32'
     pytz: pytz
@@ -28,3 +32,4 @@ python =
     3.9: py39
     3.10: py310
     3.11: py311
+    3.12: py312