diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e6d1213d..0fc60628 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,6 +2,7 @@ name: CI on: pull_request: push: + workflow_dispatch: schedule: # Run at 17:29 every Saturday - cron: '29 17 * * 6' @@ -114,10 +115,11 @@ jobs: - "3.10" - "3.11" - "3.12" + - "3.13" - "pypy-3.11" wlroots-version: ["0.17.4"] include: - - python-version: "3.12" + - python-version: "3.13" wlroots-version: master steps: - name: Download wayland libraries @@ -187,7 +189,7 @@ jobs: name: ruff tests runs-on: ubuntu-24.04 env: - python-version: "3.12" + python-version: "3.13" steps: - name: Checkout repo uses: actions/checkout@v4 @@ -200,14 +202,22 @@ jobs: mypy-test: name: mypy tests runs-on: ubuntu-24.04 + needs: build-wayland env: - python-version: "3.12" + python-version: "3.13" + wlroots-version: "0.17.4" steps: - name: Install dependencies run: | sudo apt update sudo apt-get install -y --no-install-recommends \ libxkbcommon-dev \ + - name: Download wayland libraries + uses: actions/download-artifact@v4 + with: + name: wlroots-${{ env.wlroots-version }} + - name: Unpack wayland artifact + run: sudo tar xf wayland.tar.gz -C / - name: Checkout repo uses: actions/checkout@v4 - name: Setup Python @@ -228,7 +238,7 @@ jobs: name: black tests runs-on: ubuntu-24.04 env: - python-version: "3.12" + python-version: "3.13" steps: - name: Checkout repo uses: actions/checkout@v4 @@ -246,7 +256,7 @@ jobs: runs-on: ubuntu-24.04 needs: build-wayland env: - python-version: "3.12" + python-version: "3.13" wlroots-version: "0.17.4" steps: - name: Download wayland libraries @@ -282,7 +292,7 @@ jobs: runs-on: ubuntu-24.04 needs: build-wayland env: - python-version: "3.12" + python-version: "3.13" wlroots-version: "0.17.4" steps: - name: Download wayland libraries diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 35050874..40c829b9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,6 +2,7 @@ name: Publish to PyPI on: pull_request: push: + workflow_dispatch: release: types: [published] jobs: @@ -167,7 +168,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.9", "3.10", "3.11", "3.12"] + python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"] steps: - name: Download wayland libraries uses: actions/download-artifact@v4 @@ -177,7 +178,7 @@ jobs: run: tar xf wayland.tar.gz -C / - name: Set python version run: | - PYTHON_ROOT=$(find /opt/python -name cp${PYTHON_VERSION/./}-*) + PYTHON_ROOT=$(find /opt/python -name "cp${PYTHON_VERSION/./}-*" -not -name "*t") echo "${PYTHON_ROOT}/bin" >> $GITHUB_PATH shell: bash env: @@ -232,7 +233,7 @@ jobs: - name: Set python version run: | ls /opt/python/ - PYTHON_ROOT=$(find /opt/python -name pp${PYTHON_VERSION/./}-*_pp${PP_VERSION/./}) + PYTHON_ROOT=$(find /opt/python -name "pp${PYTHON_VERSION/./}-*_pp${PP_VERSION/./}" -not -name "*t") echo "${PYTHON_ROOT}" echo "${PYTHON_ROOT}/bin" >> $GITHUB_PATH shell: bash @@ -281,6 +282,7 @@ jobs: - "3.10" - "3.11" - "3.12" + - "3.13" - "pypy-3.11" steps: - name: Install dependencies @@ -288,6 +290,12 @@ jobs: sudo apt update sudo apt-get install -y --no-install-recommends \ libxkbcommon-dev + - name: Download wayland libraries + uses: actions/download-artifact@v4 + with: + name: wayland + - name: Unpack wayland artifact + run: sudo tar xf wayland.tar.gz -C / - name: Download wheels uses: actions/download-artifact@v4 with: @@ -315,7 +323,7 @@ jobs: container: quay.io/pypa/manylinux_2_34_x86_64 needs: build-wayland env: - python-version: "3.12" + python-version: "3.13" steps: - name: Download wayland libraries uses: actions/download-artifact@v4 @@ -325,7 +333,7 @@ jobs: run: tar xf wayland.tar.gz -C / - name: Set python version run: | - PYTHON_ROOT=$(find /opt/python -name cp${PYTHON_VERSION/./}-*) + PYTHON_ROOT=$(find /opt/python -name "cp${PYTHON_VERSION/./}-*" -not -name "*t") echo "${PYTHON_ROOT}/bin" >> $GITHUB_PATH shell: bash env: diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index aeba80d1..30e9dc93 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -4,7 +4,7 @@ repos: hooks: - id: black # Use the latest supported version here - language_version: python3.12 + language_version: python3.13 - repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.1.14 hooks: diff --git a/pyproject.toml b/pyproject.toml index 194537d5..0fae7a19 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -22,6 +22,7 @@ classifiers = [ "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Desktop Environment :: Window Managers",