Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: tox-dev/filelock
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 3.29.2
Choose a base ref
...
head repository: tox-dev/filelock
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 3.29.3
Choose a head ref
  • 6 commits
  • 5 files changed
  • 4 contributors

Commits on Jun 10, 2026

  1. build(deps): bump astral-sh/setup-uv from 8.1.0 to 8.2.0 (#558)

    Bumps [astral-sh/setup-uv](https://github.com/astral-sh/setup-uv) from
    8.1.0 to 8.2.0.
    <details>
    <summary>Release notes</summary>
    <p><em>Sourced from <a
    href="https://github.com/astral-sh/setup-uv/releases">astral-sh/setup-uv's
    releases</a>.</em></p>
    <blockquote>
    <h2>v8.2.0 🌈 New inputs <code>quiet</code> and
    <code>download-from-astral-mirror</code></h2>
    <h2>Changes</h2>
    <p>This release brings two new inputs and a few bug fixes.</p>
    <h3>New inputs</h3>
    <p>Lets talk about the new inputs first.</p>
    <h4>quiet</h4>
    <p>Pretty simple. It turns of all <code>info</code> loggings. Useful if
    you use this in a composite action and are not interested in all the
    details.
    In the upcoming releases we will add log groups to fully implement
    support for &quot;less noise&quot;</p>
    <blockquote>
    <p>[!NOTE]<br />
    Warnings and errors are always logged.</p>
    </blockquote>
    <h4>download-from-astral-mirror</h4>
    <p>In some cases you may want to directly use the fallback of checking
    for available versions and downloading releases from GitHub instead of
    using the astral.sh mirror. Setting <code>download-from-astral-mirror:
    false</code> allows you to do that.</p>
    <h3>Bugfixes</h3>
    <p>When using the astral.sh mirror to query available versions and
    download releases (done by default) we now stop sending the GitHub token
    in the header. The mirror never looked at it but we shouldn't be handing
    out that data even if it is just a short lived token.
    All other bugfixes try to limit the impact of failed GitHub queries due
    to retries and other faults.</p>
    <p>We couldn't pinpoint all rootcauses yet but added more logging for
    error cases to track them down.</p>
    <h2>🐛 Bug fixes</h2>
    <ul>
    <li>fix: report unexpected cache save failures <a
    href="https://github.com/eifinger"><code>@​eifinger</code></a> (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/896">#896</a>)</li>
    <li>fix: report unexpected setup failures <a
    href="https://github.com/eifinger"><code>@​eifinger</code></a> (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/895">#895</a>)</li>
    <li>fix: add timeout to fetch to prevent silent hangs <a
    href="https://github.com/eifinger-bot"><code>@​eifinger-bot</code></a>
    (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/883">#883</a>)</li>
    <li>Limit GitHub tokens to github.com download URLs <a
    href="https://github.com/zsol"><code>@​zsol</code></a> (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/878">#878</a>)</li>
    <li>increase libuv-workaround timeout to 100ms <a
    href="https://github.com/eifinger"><code>@​eifinger</code></a> (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/880">#880</a>)</li>
    </ul>
    <h2>🚀 Enhancements</h2>
    <ul>
    <li>Add quiet input to suppress info-level log output <a
    href="https://github.com/eifinger"><code>@​eifinger</code></a> (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/898">#898</a>)</li>
    <li>feat: add <code>download-from-astral-mirror</code> input <a
    href="https://github.com/eifinger"><code>@​eifinger</code></a> (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/897">#897</a>)</li>
    </ul>
    <h2>🧰 Maintenance</h2>
    <ul>
    <li>docs: update dependabot rollup biome guidance <a
    href="https://github.com/eifinger"><code>@​eifinger</code></a> (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/902">#902</a>)</li>
    <li>chore: update known checksums for 0.11.18 @<a
    href="https://github.com/apps/github-actions">github-actions[bot]</a>
    (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/899">#899</a>)</li>
    <li>chore: update known checksums for 0.11.17 @<a
    href="https://github.com/apps/github-actions">github-actions[bot]</a>
    (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/892">#892</a>)</li>
    <li>chore: update known checksums for 0.11.16 @<a
    href="https://github.com/apps/github-actions">github-actions[bot]</a>
    (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/889">#889</a>)</li>
    <li>chore: update known checksums for 0.11.15 @<a
    href="https://github.com/apps/github-actions">github-actions[bot]</a>
    (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/885">#885</a>)</li>
    <li>chore: update known checksums for 0.11.14 @<a
    href="https://github.com/apps/github-actions">github-actions[bot]</a>
    (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/879">#879</a>)</li>
    <li>chore: update known checksums for 0.11.13 @<a
    href="https://github.com/apps/github-actions">github-actions[bot]</a>
    (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/877">#877</a>)</li>
    </ul>
    <!-- raw HTML omitted -->
    </blockquote>
    <p>... (truncated)</p>
    </details>
    <details>
    <summary>Commits</summary>
    <ul>
    <li><a
    href="https://github.com/astral-sh/setup-uv/commit/fac544c07dec837d0ccb6301d7b5580bf5edae39"><code>fac544c</code></a>
    chore(deps): roll up dependabot updates (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/903">#903</a>)</li>
    <li><a
    href="https://github.com/astral-sh/setup-uv/commit/7390f777b051d6c47c9cb905ff80e7d5d85a7068"><code>7390f77</code></a>
    docs: update dependabot rollup biome guidance (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/902">#902</a>)</li>
    <li><a
    href="https://github.com/astral-sh/setup-uv/commit/363c64a728451954156ddb9e3f368b879eeee5da"><code>363c64a</code></a>
    chore(deps): roll up dependabot updates (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/901">#901</a>)</li>
    <li><a
    href="https://github.com/astral-sh/setup-uv/commit/c4fcbafce4f941a09e04c45c42db7a2e3ba5cd91"><code>c4fcbaf</code></a>
    chore(deps): bump release-drafter/release-drafter from 7.3.0 to 7.3.1
    (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/900">#900</a>)</li>
    <li><a
    href="https://github.com/astral-sh/setup-uv/commit/8e642c5e623b521f8b6b15bbc2ba54bae583fe45"><code>8e642c5</code></a>
    chore: update known checksums for 0.11.18 (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/899">#899</a>)</li>
    <li><a
    href="https://github.com/astral-sh/setup-uv/commit/a92cb430984b4b2b34c9c47e020cf035089958fa"><code>a92cb43</code></a>
    Add quiet input to suppress info-level log output (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/898">#898</a>)</li>
    <li><a
    href="https://github.com/astral-sh/setup-uv/commit/e07f2ac4b796a5fa8dc51ebf0a5187d0463eb4d6"><code>e07f2ac</code></a>
    chore(deps): bump eifinger/actionlint-action from 1.10.1 to 1.10.2 (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/842">#842</a>)</li>
    <li><a
    href="https://github.com/astral-sh/setup-uv/commit/bc4034eedf3a6f77238660a28089c6b201eae39f"><code>bc4034e</code></a>
    chore(deps): bump github/codeql-action from 4.35.4 to 4.36.0 (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/893">#893</a>)</li>
    <li><a
    href="https://github.com/astral-sh/setup-uv/commit/df42d4f6ba41cdcf6eda832c32439db37cc28b39"><code>df42d4f</code></a>
    chore(deps): bump zizmorcore/zizmor-action from 0.5.5 to 0.5.6 (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/891">#891</a>)</li>
    <li><a
    href="https://github.com/astral-sh/setup-uv/commit/b9c8c4c7baf912cbda30843477d08b3f63b0f660"><code>b9c8c4c</code></a>
    feat: add <code>download-from-astral-mirror</code> input (<a
    href="https://redirect.github.com/astral-sh/setup-uv/issues/897">#897</a>)</li>
    <li>Additional commits viewable in <a
    href="https://github.com/astral-sh/setup-uv/compare/08807647e7069bb48b6ef5acd8ec9567f424441b...fac544c07dec837d0ccb6301d7b5580bf5edae39">compare
    view</a></li>
    </ul>
    </details>
    <br />
    
    
    [![Dependabot compatibility
    score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=astral-sh/setup-uv&package-manager=github_actions&previous-version=8.1.0&new-version=8.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
    
    Dependabot will resolve any conflicts with this PR as long as you don't
    alter it yourself. You can also trigger a rebase manually by commenting
    `@dependabot rebase`.
    
    [//]: # (dependabot-automerge-start)
    [//]: # (dependabot-automerge-end)
    
    ---
    
    <details>
    <summary>Dependabot commands and options</summary>
    <br />
    
    You can trigger Dependabot actions by commenting on this PR:
    - `@dependabot rebase` will rebase this PR
    - `@dependabot recreate` will recreate this PR, overwriting any edits
    that have been made to it
    - `@dependabot show <dependency name> ignore conditions` will show all
    of the ignore conditions of the specified dependency
    - `@dependabot ignore this major version` will close this PR and stop
    Dependabot creating any more for this major version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this minor version` will close this PR and stop
    Dependabot creating any more for this minor version (unless you reopen
    the PR or upgrade to it yourself)
    - `@dependabot ignore this dependency` will close this PR and stop
    Dependabot creating any more for this dependency (unless you reopen the
    PR or upgrade to it yourself)
    
    
    </details>
    
    Signed-off-by: dependabot[bot] <[email protected]>
    Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
    dependabot[bot] authored Jun 10, 2026
    Configuration menu
    Copy the full SHA
    b37e162 View commit details
    Browse the repository at this point in the history
  2. 🔧 ci(release): publish to PyPI on tag push (#557)

    Closes #552.
    
    The release job uploaded to PyPI only inside a `workflow_dispatch` run,
    so a tag created any other way (for example pushed by hand) produced a
    git tag and a GitHub release but never reached PyPI. 📦 That is exactly
    how `3.29.2` and `3.29.3` ended up tagged and GitHub-released yet
    missing from PyPI, which broke downstreams like pkgsrc that fetch
    distfiles from there.
    
    Publishing moves into a new `publish.yaml` triggered on tag push: it
    builds at the tag and uploads to PyPI with `skip-existing`, then creates
    the GitHub release if one is absent. The dispatch job now only writes
    the changelog and pushes the tag, and because it pushes with
    `RELEASE_TOKEN` (a PAT rather than `GITHUB_TOKEN`) that push triggers
    `publish.yaml`. The tag becomes the single source of truth for a
    release, so any tag always reaches PyPI instead of silently skipping it.
    
    The canonical way to cut a release is unchanged: run the 🚀 Release
    workflow with a `patch`/`minor`/`major` bump. The only behavioral change
    is that the upload happens in the tag-triggered run rather than in the
    dispatch run itself.
    gaborbernat authored Jun 10, 2026
    Configuration menu
    Copy the full SHA
    d1d49a0 View commit details
    Browse the repository at this point in the history
  3. validate pid range in _parse_lock_holder (#556)

    a soft lock file lives in a shared directory that a same-uid or
    cross-host peer can write, and _parse_lock_holder turns its first line
    into a pid with int() but never checks the range, unlike
    _parse_marker_bytes which already rejects anything outside 1..2**31-1. a
    holder line of 0 or -1 parses fine, so _is_process_alive ends up calling
    os.kill(0, 0) or os.kill(-1, 0), and those probe the caller's own
    process group rather than a real holder and report success, so a
    long-dead lock reads as still held and is never reclaimed. a pid too
    large for the C pid_t is worse: os.kill raises OverflowError, which is
    neither OSError nor ValueError, so it slips past the suppress() guard
    and aborts acquire() instead of letting the malformed lock self-heal.
    
    the fix range-checks the parsed pid against the same window the marker
    parser uses, so an out-of-range value is treated as an unparseable
    holder and self-heals after the age threshold like any other malformed
    file. added a regression covering 0, -1 and an oversized pid.
    
    ---------
    
    Co-authored-by: Bernát Gábor <[email protected]>
    dxbjavid and gaborbernat authored Jun 10, 2026
    Configuration menu
    Copy the full SHA
    7a8f74a View commit details
    Browse the repository at this point in the history
  4. 🐛 fix(ci): restore release environment on tag job (#559)

    The first dispatch release after #557 failed at checkout with `Input
    required and not supplied: token` (run
    https://github.com/tox-dev/filelock/actions/runs/27292630778).
    
    `RELEASE_TOKEN` is an environment-scoped secret on the `release`
    environment. #557 moved publishing into `publish.yaml` and, in trimming
    the tag job down to just commit-changelog-and-push, dropped its
    `environment: release`. Without selecting the environment the secret
    resolves empty, so the `actions/checkout` `token` input is blank and the
    job dies before tagging anything (nothing partial was released).
    
    Re-selecting `environment: release` on the tag job restores
    `RELEASE_TOKEN` access. The environment has no protection rules, so this
    adds no approval step, and `publish.yaml` already selects the same
    environment for the PyPI upload.
    gaborbernat authored Jun 10, 2026
    Configuration menu
    Copy the full SHA
    643bdbe View commit details
    Browse the repository at this point in the history
  5. Release 3.29.3

    gaborbernat committed Jun 10, 2026
    Configuration menu
    Copy the full SHA
    f86dcb1 View commit details
    Browse the repository at this point in the history
  6. 🐛 fix(ci): publish from release.yaml on tag push (#560)

    Follow-up to #557/#559. The first real release on the new flow (3.29.3)
    tagged and committed the changelog but failed to publish: PyPI trusted
    publishing is bound to the workflow *filename*, and the project trusts
    `release.yaml`, so the OIDC token minted from the new `publish.yaml` was
    rejected with `invalid-publisher`.
    
    This folds the publish job back into `release.yaml`, gated on a tag
    push, and adds a `tags` trigger. The tag job (dispatch only) still
    prepares the changelog and pushes the tag; that push re-enters this
    workflow on the tag ref, where the `publish` job uploads to PyPI and
    creates the GitHub release. Publishing keys off the tag rather than the
    dispatch event, so a hand-pushed tag still reaches PyPI — but the OIDC
    claim's `workflow_ref` is now `release.yaml`, matching the registered
    publisher.
    
    `publish.yaml` is removed. The build job's uv cache is disabled because
    it now builds the artifact that gets published, so a poisoned cache must
    not be a release vector (zizmor `cache-poisoning`).
    
    Recovers the stuck 3.29.3 once merged (re-tag at the fixed commit
    triggers the publish job).
    gaborbernat authored Jun 10, 2026
    Configuration menu
    Copy the full SHA
    85e73d7 View commit details
    Browse the repository at this point in the history
Loading