Repository navigation
Comparing changes
Open a pull request
base repository: tox-dev/filelock
base: 3.29.2
head repository: tox-dev/filelock
compare: 3.29.3
- 6 commits
- 5 files changed
- 4 contributors
Commits on Jun 10, 2026
-
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 "less noise"</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 /> [](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>
Configuration menu - View commit details
-
Copy full SHA for b37e162 - Browse repository at this point
Copy the full SHA b37e162View commit details -
🔧 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.
Configuration menu - View commit details
-
Copy full SHA for d1d49a0 - Browse repository at this point
Copy the full SHA d1d49a0View commit details -
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]>
Configuration menu - View commit details
-
Copy full SHA for 7a8f74a - Browse repository at this point
Copy the full SHA 7a8f74aView commit details -
🐛 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.
Configuration menu - View commit details
-
Copy full SHA for 643bdbe - Browse repository at this point
Copy the full SHA 643bdbeView commit details -
Configuration menu - View commit details
-
Copy full SHA for f86dcb1 - Browse repository at this point
Copy the full SHA f86dcb1View commit details -
🐛 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).
Configuration menu - View commit details
-
Copy full SHA for 85e73d7 - Browse repository at this point
Copy the full SHA 85e73d7View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff 3.29.2...3.29.3