From f6342815ef19063d852aeab725561941c33a9c15 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 17 Jun 2026 13:35:35 +0300 Subject: [PATCH 1/3] Bump GitHub Actions --- .github/workflows/docs.yml | 8 ++++---- .github/workflows/release.yml | 8 ++++---- .github/workflows/tests.yml | 22 +++++++++++----------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index bc293c40a..1e68e4891 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -26,15 +26,15 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/setup-python@v5 + - uses: actions/setup-python@v6 with: python-version: '3.11' - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 with: ref: ${{ github.event.inputs.tag || github.ref }} - run: python -m pip install --group docs - run: python -m sphinx -W docs/ build/docs/ - - uses: actions/upload-pages-artifact@v3 + - uses: actions/upload-pages-artifact@v5 with: path: build/docs/ @@ -48,4 +48,4 @@ jobs: runs-on: ubuntu-latest if: ${{ github.ref == 'refs/heads/main' }} steps: - - uses: actions/deploy-pages@v4 + - uses: actions/deploy-pages@v5 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 09737f7bc..3b8d79ca6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,13 +17,13 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 + - uses: actions/checkout@v6 + - uses: actions/setup-python@v6 with: python-version: '3.14' - run: python -m pip install build - run: python -m build - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v7 with: path: dist/* @@ -37,7 +37,7 @@ jobs: permissions: id-token: write steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v8 with: merge-multiple: true path: dist diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 057c35b64..d017e58b8 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -108,10 +108,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up target Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python }} @@ -142,7 +142,7 @@ jobs: run: python -m pytest --showlocals -vv --cov --cov-report=xml - name: Upload coverage report - uses: codecov/codecov-action@v4 + uses: codecov/codecov-action@v7 if: ${{ always() }} env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} @@ -159,10 +159,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Set up target Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: ${{ matrix.python }} @@ -196,10 +196,10 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup Cygwin - uses: cygwin/cygwin-install-action@v2 + uses: cygwin/cygwin-install-action@v6 with: packages: >- python39 @@ -231,7 +231,7 @@ jobs: # Cygwin Python cannot use binary wheels from PyPI. Building # some dependencies takes considerable time. Caching the built # wheels speeds up the CI job quite a bit. - uses: actions/cache@v4 + uses: actions/cache@v5 with: path: ${{ steps.pip-cache-path.outputs.path }} key: cygwin-pip-${{ github.sha }} @@ -272,7 +272,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Install Homebrew Python run: | @@ -300,10 +300,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Setup Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: 3.9 From 7625962051bc4ea57a26351dfcc6624749958eec Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 17 Jun 2026 13:36:26 +0300 Subject: [PATCH 2/3] Test Python 3.15 --- .github/workflows/tests.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index d017e58b8..e08ed88d5 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -49,6 +49,7 @@ jobs: python: - '3.9' - '3.14' + - '3.15' meson: - dependencies: @@ -114,6 +115,7 @@ jobs: uses: actions/setup-python@v6 with: python-version: ${{ matrix.python }} + allow-prereleases: true - name: Install Ninja run: sudo apt-get install ninja-build From b063161e25f652ca9de0fc3ff8a45282a0ddda32 Mon Sep 17 00:00:00 2001 From: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Date: Wed, 17 Jun 2026 13:54:10 +0300 Subject: [PATCH 3/3] Fix Windows on Python 3.15 --- mesonpy/__init__.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mesonpy/__init__.py b/mesonpy/__init__.py index 7325d23f1..7f1013272 100644 --- a/mesonpy/__init__.py +++ b/mesonpy/__init__.py @@ -1038,7 +1038,15 @@ def sdist(self, directory: Path) -> pathlib.Path: # in all cases. while member.issym(): name = member.name - target = posixpath.normpath(posixpath.join(posixpath.dirname(member.name), member.linkname)) + # Normalize the link target to use forward slashes. On + # Windows on Python 3.15 rewrites slashes to backslashes in + # symbolic link targets when extracting tar archives (see + # CPython gh-57911), and Meson propagates these backslashed + # targets into the dist tarball. Without this normalization + # the ``posixpath`` resolution below would fail to match the + # link target, dropping links that point inside the archive. + linkname = member.linkname.replace('\\', '/') + target = posixpath.normpath(posixpath.join(posixpath.dirname(member.name), linkname)) try: # This can be implemented using the .replace() method # in Python 3.12 and later. The .replace() method was