Repository navigation
Commit 206d045
authored
chore(deps): update dependency filelock to v4 (#18663)
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) |
|---|---|---|---|
| [filelock](https://redirect.github.com/tox-dev/py-filelock) |
`==3.29.0` → `==4.1.1` |

|

|
---
### Release Notes
<details>
<summary>tox-dev/py-filelock (filelock)</summary>
###
[`v4.1.1`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.1.1)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.1.0...4.1.1)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.1.1 -->
#### What's Changed
- feat(python): default to Python 3.15 by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#816](https://redirect.github.com/tox-dev/filelock/pull/816)
- fix(rw): avoid macOS descriptor lookups by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#820](https://redirect.github.com/tox-dev/filelock/pull/820)
- fix(tests): bound concurrent lock progress by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#819](https://redirect.github.com/tox-dev/filelock/pull/819)
- test: make lock error checks deterministic by
[@​adenzhou1350](https://redirect.github.com/adenzhou1350) in
[tox-dev/filelock#817](https://redirect.github.com/tox-dev/filelock/pull/817)
- fix(read-write): reject a hostile pid in \_owner_is_gone by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#821](https://redirect.github.com/tox-dev/filelock/pull/821)
#### New Contributors
- [@​adenzhou1350](https://redirect.github.com/adenzhou1350) made
their first contribution in
[tox-dev/filelock#817](https://redirect.github.com/tox-dev/filelock/pull/817)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.1.0...4.1.1>
###
[`v4.1.0`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.1.0)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.12...4.1.0)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.1.0 -->
#### What's Changed
- ci: download coverage during tool setup by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#776](https://redirect.github.com/tox-dev/filelock/pull/776)
- 🐛 fix(api): validate timeout and poll_interval bounds by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#781](https://redirect.github.com/tox-dev/filelock/pull/781)
- 🐛 fix(read-write): accept inf and reject nan timeouts by
[@​darrenhuai](https://redirect.github.com/darrenhuai) in
[tox-dev/filelock#779](https://redirect.github.com/tox-dev/filelock/pull/779)
- 🐛 fix(soft-rw): ignore non-ASCII generation names by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#778](https://redirect.github.com/tox-dev/filelock/pull/778)
- 🐛 fix(soft): check start token in is_lock_held_by_us by
[@​lprnmns](https://redirect.github.com/lprnmns) in
[tox-dev/filelock#774](https://redirect.github.com/tox-dev/filelock/pull/774)
- 🐛 fix(soft): clean up marker when rollback close fails by
[@​harbinresearcher](https://redirect.github.com/harbinresearcher)
in
[tox-dev/filelock#775](https://redirect.github.com/tox-dev/filelock/pull/775)
- 🐛 fix(read-write): clamp waits to threading.TIMEOUT_MAX by
[@​darrenhuai](https://redirect.github.com/darrenhuai) in
[tox-dev/filelock#780](https://redirect.github.com/tox-dev/filelock/pull/780)
- 🐛 fix(soft): treat truncated markers as malformed by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#782](https://redirect.github.com/tox-dev/filelock/pull/782)
- 🐛 fix(acquire): keep every acquire wait within the timeout by
[@​feiiiiii5](https://redirect.github.com/feiiiiii5) in
[tox-dev/filelock#777](https://redirect.github.com/tox-dev/filelock/pull/777)
- 📝 docs: fix hanging example and platform claims by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#783](https://redirect.github.com/tox-dev/filelock/pull/783)
- 🐛 fix(unix): keep peer marker on ENOSYS fallback by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#785](https://redirect.github.com/tox-dev/filelock/pull/785)
- 🐛 fix(async): clear the task hold after a canceled release by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#789](https://redirect.github.com/tox-dev/filelock/pull/789)
- ✨ feat(api): export lease types and has_fcntl by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#790](https://redirect.github.com/tox-dev/filelock/pull/790)
- 🐛 fix(strict): age private records by the filesystem clock by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#792](https://redirect.github.com/tox-dev/filelock/pull/792)
- 🐛 fix(async): surface executor shutdown as an error by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#793](https://redirect.github.com/tox-dev/filelock/pull/793)
- 🐛 fix(soft): expire leases on the contender's clock by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#796](https://redirect.github.com/tox-dev/filelock/pull/796)
- 🐛 fix(soft-rw): stop an acquire that close() overtook by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#798](https://redirect.github.com/tox-dev/filelock/pull/798)
- 🐛 fix(strict): record claims before linking them by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#787](https://redirect.github.com/tox-dev/filelock/pull/787)
- 🐛 fix(soft): restore a live marker a stale break moved aside by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#786](https://redirect.github.com/tox-dev/filelock/pull/786)
- 🐛 fix(api): chain errors on 3.10 without exceptiongroup by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#788](https://redirect.github.com/tox-dev/filelock/pull/788)
- 🐛 fix(soft): release a dropped SoftFileLease by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#791](https://redirect.github.com/tox-dev/filelock/pull/791)
- 🐛 fix(read-write): keep probe fds until the last connection closes by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#794](https://redirect.github.com/tox-dev/filelock/pull/794)
- 📦 build(sdist): ship docs and update SECURITY.md by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#812](https://redirect.github.com/tox-dev/filelock/pull/812)
- 🐛 fix(soft-rw): survive a removed generation log by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#795](https://redirect.github.com/tox-dev/filelock/pull/795)
- 🐛 fix(soft): tell PID namespaces apart in the marker host by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#797](https://redirect.github.com/tox-dev/filelock/pull/797)
- 🐛 fix(async): release from the finalizer and keep I/O off the loop by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#800](https://redirect.github.com/tox-dev/filelock/pull/800)
- 🐛 fix(strict): name what blocks the lock path by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#804](https://redirect.github.com/tox-dev/filelock/pull/804)
- 🐛 fix(read-write): reject WAL databases and link beside the db by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#805](https://redirect.github.com/tox-dev/filelock/pull/805)
- 🐛 fix(read-write): track read depth per thread by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#806](https://redirect.github.com/tox-dev/filelock/pull/806)
- 🐛 fix(soft): honour mode and tighten marker grammar by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#807](https://redirect.github.com/tox-dev/filelock/pull/807)
- 🧪 test: drop timing races from two runner-load flakes by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#809](https://redirect.github.com/tox-dev/filelock/pull/809)
- 🐛 fix(descriptor): reject poll intervals above TIMEOUT_MAX by
[@​sricharanreddycheruku](https://redirect.github.com/sricharanreddycheruku)
in
[tox-dev/filelock#802](https://redirect.github.com/tox-dev/filelock/pull/802)
- 🐛 fix(api): validate lock options up front by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#803](https://redirect.github.com/tox-dev/filelock/pull/803)
- 🐛 fix(soft-rw): publish the head through gen/HEAD by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#799](https://redirect.github.com/tox-dev/filelock/pull/799)
- 🐛 fix(api): release thread holds, guard reentry by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#810](https://redirect.github.com/tox-dev/filelock/pull/810)
- 🧪 test(lease): give the age-out test a real-time margin by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#814](https://redirect.github.com/tox-dev/filelock/pull/814)
- 📝 docs: point canonical and og:url at versioned pages by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#813](https://redirect.github.com/tox-dev/filelock/pull/813)
- 🐛 fix(read-write): refuse a database moved mid-acquire by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#808](https://redirect.github.com/tox-dev/filelock/pull/808)
- 🐛 fix: close regressions since 4.0.12 by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#815](https://redirect.github.com/tox-dev/filelock/pull/815)
#### New Contributors
- [@​darrenhuai](https://redirect.github.com/darrenhuai) made
their first contribution in
[tox-dev/filelock#779](https://redirect.github.com/tox-dev/filelock/pull/779)
-
[@​harbinresearcher](https://redirect.github.com/harbinresearcher)
made their first contribution in
[tox-dev/filelock#775](https://redirect.github.com/tox-dev/filelock/pull/775)
-
[@​sricharanreddycheruku](https://redirect.github.com/sricharanreddycheruku)
made their first contribution in
[tox-dev/filelock#802](https://redirect.github.com/tox-dev/filelock/pull/802)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.12...4.1.0>
###
[`v4.0.12`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.12)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.11...4.0.12)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.12 -->
#### What's Changed
- fix: support older SQLite read locks by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#771](https://redirect.github.com/tox-dev/filelock/pull/771)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.11...4.0.12>
###
[`v4.0.11`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.11)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.10...4.0.11)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.11 -->
#### What's Changed
- docs: select an existing tox environment in contributing guide by
[@​raghav-sharma-ai](https://redirect.github.com/raghav-sharma-ai)
in
[tox-dev/filelock#767](https://redirect.github.com/tox-dev/filelock/pull/767)
- fix(read-write): handle NetBSD fd limits by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#768](https://redirect.github.com/tox-dev/filelock/pull/768)
#### New Contributors
-
[@​raghav-sharma-ai](https://redirect.github.com/raghav-sharma-ai)
made their first contribution in
[tox-dev/filelock#767](https://redirect.github.com/tox-dev/filelock/pull/767)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.10...4.0.11>
###
[`v4.0.10`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.10)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.9...4.0.10)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.10 -->
#### What's Changed
- ♻️ refactor(util): test helpers via public locks by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#764](https://redirect.github.com/tox-dev/filelock/pull/764)
- 🐛 fix(singleton): reject conflicting async and lease options by
[@​kokotatan](https://redirect.github.com/kokotatan) in
[tox-dev/filelock#765](https://redirect.github.com/tox-dev/filelock/pull/765)
#### New Contributors
- [@​kokotatan](https://redirect.github.com/kokotatan) made their
first contribution in
[tox-dev/filelock#765](https://redirect.github.com/tox-dev/filelock/pull/765)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.9...4.0.10>
###
[`v4.0.9`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.9)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.8...4.0.9)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.9 -->
#### What's Changed
- 📝 docs(util): correct write and break guarantees by
[@​pralav-25](https://redirect.github.com/pralav-25) in
[tox-dev/filelock#762](https://redirect.github.com/tox-dev/filelock/pull/762)
- 🐛 fix(read-write): close db fd after connect by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#763](https://redirect.github.com/tox-dev/filelock/pull/763)
#### New Contributors
- [@​pralav-25](https://redirect.github.com/pralav-25) made their
first contribution in
[tox-dev/filelock#762](https://redirect.github.com/tox-dev/filelock/pull/762)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.8...4.0.9>
###
[`v4.0.8`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.8)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.7...4.0.8)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.8 -->
#### What's Changed
- 🐛 fix(read-write): refuse cross-thread write release by
[@​feiiiiii5](https://redirect.github.com/feiiiiii5) in
[tox-dev/filelock#761](https://redirect.github.com/tox-dev/filelock/pull/761)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.7...4.0.8>
###
[`v4.0.7`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.7)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.6...4.0.7)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.7 -->
#### What's Changed
- 🐛 fix(mode): require owner read and write by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#760](https://redirect.github.com/tox-dev/filelock/pull/760)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.6...4.0.7>
###
[`v4.0.6`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.6)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.5...4.0.6)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.6 -->
#### What's Changed
- fix(read-write): validate reentrant timeouts by
[@​feiiiiii5](https://redirect.github.com/feiiiiii5) in
[tox-dev/filelock#756](https://redirect.github.com/tox-dev/filelock/pull/756)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.5...4.0.6>
###
[`v4.0.5`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.5)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.4...4.0.5)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.5 -->
#### What's Changed
- fix(marker): preserve live owners by
[@​DawnofGenX](https://redirect.github.com/DawnofGenX) in
[tox-dev/filelock#751](https://redirect.github.com/tox-dev/filelock/pull/751)
- fix(tests): separate mode and access checks by
[@​pasmud](https://redirect.github.com/pasmud) in
[tox-dev/filelock#753](https://redirect.github.com/tox-dev/filelock/pull/753)
- fix(read-write): honor instance defaults by
[@​DawnofGenX](https://redirect.github.com/DawnofGenX) in
[tox-dev/filelock#752](https://redirect.github.com/tox-dev/filelock/pull/752)
- fix(async): validate blocking read-write timeouts by
[@​pasmud](https://redirect.github.com/pasmud) in
[tox-dev/filelock#755](https://redirect.github.com/tox-dev/filelock/pull/755)
- fix(strict): handle vanished unreadable claims by
[@​januththedev](https://redirect.github.com/januththedev) in
[tox-dev/filelock#754](https://redirect.github.com/tox-dev/filelock/pull/754)
#### New Contributors
- [@​DawnofGenX](https://redirect.github.com/DawnofGenX) made
their first contribution in
[tox-dev/filelock#751](https://redirect.github.com/tox-dev/filelock/pull/751)
- [@​pasmud](https://redirect.github.com/pasmud) made their first
contribution in
[tox-dev/filelock#753](https://redirect.github.com/tox-dev/filelock/pull/753)
- [@​januththedev](https://redirect.github.com/januththedev) made
their first contribution in
[tox-dev/filelock#754](https://redirect.github.com/tox-dev/filelock/pull/754)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.4...4.0.5>
###
[`v4.0.4`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.4)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.3...4.0.4)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.4 -->
#### What's Changed
- 🐛 fix(identity): digest the cut tail of long hostnames by
[@​feiiiiii5](https://redirect.github.com/feiiiiii5) in
[tox-dev/filelock#748](https://redirect.github.com/tox-dev/filelock/pull/748)
#### New Contributors
- [@​feiiiiii5](https://redirect.github.com/feiiiiii5) made their
first contribution in
[tox-dev/filelock#748](https://redirect.github.com/tox-dev/filelock/pull/748)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.3...4.0.4>
###
[`v4.0.3`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.3)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.2...4.0.3)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.3 -->
#### What's Changed
- 🐛 fix(api): skip the fork audit hook on CPython <3.12 by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#747](https://redirect.github.com/tox-dev/filelock/pull/747)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.2...4.0.3>
###
[`v4.0.2`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.2)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.1...4.0.2)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.2 -->
#### What's Changed
- docs: create the data directory in the async cache example by
[@​agammann](https://redirect.github.com/agammann) in
[tox-dev/filelock#740](https://redirect.github.com/tox-dev/filelock/pull/740)
- fix: ignore broken sphinx-llm release by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#742](https://redirect.github.com/tox-dev/filelock/pull/742)
- 🐛 fix(api): serialize concurrent transitions on shared locks by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#745](https://redirect.github.com/tox-dev/filelock/pull/745)
- 🐛 fix(async-rw): give each task its own hold by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#746](https://redirect.github.com/tox-dev/filelock/pull/746)
#### New Contributors
- [@​agammann](https://redirect.github.com/agammann) made their
first contribution in
[tox-dev/filelock#740](https://redirect.github.com/tox-dev/filelock/pull/740)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.1...4.0.2>
###
[`v4.0.1`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.1)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.0.0...4.0.1)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.1 -->
#### What's Changed
- fix: reject invalid poll_interval before sleep by
[@​Pitchfork-and-Torch](https://redirect.github.com/Pitchfork-and-Torch)
in
[tox-dev/filelock#739](https://redirect.github.com/tox-dev/filelock/pull/739)
#### New Contributors
-
[@​Pitchfork-and-Torch](https://redirect.github.com/Pitchfork-and-Torch)
made their first contribution in
[tox-dev/filelock#739](https://redirect.github.com/tox-dev/filelock/pull/739)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/4.0.0...4.0.1>
###
[`v4.0.0`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.0.0)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.32.7...4.0.0)
<!-- Release notes generated using configuration in .github/release.yaml
at 4.0.0 -->
#### What's Changed
- 🐛 fix(soft-rw): replace the state mutex with a generation log by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#738](https://redirect.github.com/tox-dev/filelock/pull/738)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.32.7...4.0.0>
###
[`v3.32.7`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.32.7)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.32.6...3.32.7)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.32.7 -->
#### What's Changed
- Fix final symlink test on musl by
[@​lprnmns](https://redirect.github.com/lprnmns) in
[tox-dev/filelock#737](https://redirect.github.com/tox-dev/filelock/pull/737)
- 📝 docs: say acquire() falls back to the lock's blocking attribute by
[@​hxperl](https://redirect.github.com/hxperl) in
[tox-dev/filelock#733](https://redirect.github.com/tox-dev/filelock/pull/733)
#### New Contributors
- [@​hxperl](https://redirect.github.com/hxperl) made their first
contribution in
[tox-dev/filelock#733](https://redirect.github.com/tox-dev/filelock/pull/733)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.32.6...3.32.7>
###
[`v3.32.6`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.32.6)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.32.5...3.32.6)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.32.6 -->
#### What's Changed
- 🐛 fix(lease): reject a duration no marker can carry by
[@​lprnmns](https://redirect.github.com/lprnmns) in
[tox-dev/filelock#723](https://redirect.github.com/tox-dev/filelock/pull/723)
- 🐛 fix(soft-rw): reject non-finite timing options by
[@​lprnmns](https://redirect.github.com/lprnmns) in
[tox-dev/filelock#724](https://redirect.github.com/tox-dev/filelock/pull/724)
- fix: preserve exception notes when copying and pickling by
[@​jackwalkerlabs](https://redirect.github.com/jackwalkerlabs) in
[tox-dev/filelock#729](https://redirect.github.com/tox-dev/filelock/pull/729)
- test(soft-rw): reuse existing test module by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#730](https://redirect.github.com/tox-dev/filelock/pull/730)
- fix: respect ACL write access when the owner write bit is absent by
[@​jackwalkerlabs](https://redirect.github.com/jackwalkerlabs) in
[tox-dev/filelock#728](https://redirect.github.com/tox-dev/filelock/pull/728)
- Fix SoftReadWriteLock state lock timeout by
[@​Sohel2309](https://redirect.github.com/Sohel2309) in
[tox-dev/filelock#726](https://redirect.github.com/tox-dev/filelock/pull/726)
#### New Contributors
- [@​jackwalkerlabs](https://redirect.github.com/jackwalkerlabs)
made their first contribution in
[tox-dev/filelock#729](https://redirect.github.com/tox-dev/filelock/pull/729)
- [@​Sohel2309](https://redirect.github.com/Sohel2309) made their
first contribution in
[tox-dev/filelock#726](https://redirect.github.com/tox-dev/filelock/pull/726)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.32.5...3.32.6>
###
[`v3.32.5`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.32.5)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.32.4...3.32.5)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.32.5 -->
#### What's Changed
- 🧪 test(fork): report where a stalled fork stops by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#715](https://redirect.github.com/tox-dev/filelock/pull/715)
- 📝 docs: say that mode is read-only in the thread-local section by
[@​Gares95](https://redirect.github.com/Gares95) in
[tox-dev/filelock#716](https://redirect.github.com/tox-dev/filelock/pull/716)
- 🐛 fix(lease): clear token after failed acquire by
[@​lprnmns](https://redirect.github.com/lprnmns) in
[tox-dev/filelock#721](https://redirect.github.com/tox-dev/filelock/pull/721)
#### New Contributors
- [@​lprnmns](https://redirect.github.com/lprnmns) made their
first contribution in
[tox-dev/filelock#721](https://redirect.github.com/tox-dev/filelock/pull/721)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.32.4...3.32.5>
###
[`v3.32.4`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.32.4)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.32.3...3.32.4)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.32.4 -->
#### What's Changed
- 🐛 fix: retry transient denials on open and claim read by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#705](https://redirect.github.com/tox-dev/filelock/pull/705)
- 🧪 test: deflake six scheduled-run failures by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#704](https://redirect.github.com/tox-dev/filelock/pull/704)
- 🧪 test: cover a reclaimed private record for real by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#706](https://redirect.github.com/tox-dev/filelock/pull/706)
- 🧪 test(fork): fork once the event loop has closed by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#714](https://redirect.github.com/tox-dev/filelock/pull/714)
- 🔧 chore: batch dependency updates weekly on Tuesday by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#713](https://redirect.github.com/tox-dev/filelock/pull/713)
- escape the hostname every marker publishes by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#709](https://redirect.github.com/tox-dev/filelock/pull/709)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.32.3...3.32.4>
###
[`v3.32.3`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.32.3)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.32.2...3.32.3)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.32.3 -->
#### What's Changed
- 🧪 test(strict): deflake close-fault injections on graalpy by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#697](https://redirect.github.com/tox-dev/filelock/pull/697)
- 📄 docs: publish llms.txt from the docs build by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#700](https://redirect.github.com/tox-dev/filelock/pull/700)
- 🐛 fix(fork): survive audit events during interpreter shutdown by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#703](https://redirect.github.com/tox-dev/filelock/pull/703)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.32.2...3.32.3>
###
[`v3.32.2`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.32.2)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.32.0...3.32.2)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.32.2 -->
#### What's Changed
- Fix test failures on NetBSD
([#​689](https://redirect.github.com/tox-dev/py-filelock/issues/689))
by [@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#693](https://redirect.github.com/tox-dev/filelock/pull/693)
- 🧪 test(soft-rw): deflake writer phase-2 peer-marker test by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#694](https://redirect.github.com/tox-dev/filelock/pull/694)
- hand back the claim when a heartbeat thread fails to start by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#691](https://redirect.github.com/tox-dev/filelock/pull/691)
- 🧪 test(unix): deflake sticky-bit concurrent-unlink on graalpy by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#695](https://redirect.github.com/tox-dev/filelock/pull/695)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.32.1...3.32.2>
###
[`v3.32.0`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.32.0)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.31.2...3.32.0)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.32.0 -->
#### What's Changed
- 👷 ci: add Python 3.15 to the test matrix by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#683](https://redirect.github.com/tox-dev/filelock/pull/683)
- 🐛 fix(packaging): let an unpacked sdist run the test suite by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#685](https://redirect.github.com/tox-dev/filelock/pull/685)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.31.2...3.32.0>
###
[`v3.31.2`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.31.2)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.31.1...3.31.2)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.31.2 -->
#### What's Changed
- 🐛 fix(strict): tolerate an errno without ENOTSUP by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#681](https://redirect.github.com/tox-dev/filelock/pull/681)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.31.1...3.31.2>
###
[`v3.31.1`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.31.1)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.31.0...3.31.1)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.31.1 -->
#### What's Changed
- ♻️ refactor(coverage): key exclusions on probed capability by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#679](https://redirect.github.com/tox-dev/filelock/pull/679)
- scope a lease's claim to the context that acquired it by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#680](https://redirect.github.com/tox-dev/filelock/pull/680)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.31.0...3.31.1>
###
[`v3.31.0`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.31.0)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.30.3...3.31.0)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.31.0 -->
#### What's Changed
- ✨ feat(platform): support Termux/Android by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#678](https://redirect.github.com/tox-dev/filelock/pull/678)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.30.3...3.31.0>
###
[`v3.30.3`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.30.3)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.30.2...3.30.3)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.30.3 -->
#### What's Changed
- Keep both tables of contents on screen at any browser font size by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#673](https://redirect.github.com/tox-dev/filelock/pull/673)
- 📝 docs(mermaid): follow the light and dark theme toggle by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#674](https://redirect.github.com/tox-dev/filelock/pull/674)
- asyncio: scope the reentrant-deadlock registry to the owning task by
[@​xt-yin](https://redirect.github.com/xt-yin) in
[tox-dev/filelock#676](https://redirect.github.com/tox-dev/filelock/pull/676)
#### New Contributors
- [@​xt-yin](https://redirect.github.com/xt-yin) made their first
contribution in
[tox-dev/filelock#676](https://redirect.github.com/tox-dev/filelock/pull/676)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.30.2...3.30.3>
###
[`v3.30.2`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.30.2)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.30.1...3.30.2)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.30.2 -->
#### What's Changed
- Document every lock type, and stop evicting a marker we cannot read by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#672](https://redirect.github.com/tox-dev/filelock/pull/672)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.30.1...3.30.2>
###
[`v3.30.1`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.30.1)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.30.0...3.30.1)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.30.1 -->
#### What's Changed
- 📝 docs: separate changelog releases with a blank line by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#668](https://redirect.github.com/tox-dev/filelock/pull/668)
- 🐛 fix: tolerate NFSv3 stale handle in strict claim read by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#669](https://redirect.github.com/tox-dev/filelock/pull/669)
- Match fork-reset protocol on the class object by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#671](https://redirect.github.com/tox-dev/filelock/pull/671)
- reject non-finite lease duration in marker records by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#670](https://redirect.github.com/tox-dev/filelock/pull/670)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.30.0...3.30.1>
###
[`v3.30.0`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.30.0)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.29.7...3.30.0)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.30.0 -->
#### What's Changed
- 🎨 style: readability cleanup across the library by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#598](https://redirect.github.com/tox-dev/filelock/pull/598)
- 🐛 fix(api): ignore lifetime on native OS locks by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#593](https://redirect.github.com/tox-dev/filelock/pull/593)
- 🐛 fix(unix): don't mutate lock file before acquiring flock by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#594](https://redirect.github.com/tox-dev/filelock/pull/594)
- soft: evict a non-regular lock file without reading it by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#597](https://redirect.github.com/tox-dev/filelock/pull/597)
- 🐛 fix(windows): bind reparse-point check to the locked handle by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#596](https://redirect.github.com/tox-dev/filelock/pull/596)
- 🐛 fix(api): make native lock release transactional by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#615](https://redirect.github.com/tox-dev/filelock/pull/615)
- 🐛 fix(soft): make marker writes and cleanup transactional by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#614](https://redirect.github.com/tox-dev/filelock/pull/614)
- 🐛 fix(windows): open the lock file through NtCreateFile by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#617](https://redirect.github.com/tox-dev/filelock/pull/617)
- ✨ feat(api): add context_error_policy for dual context failures by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#618](https://redirect.github.com/tox-dev/filelock/pull/618)
- 📝 docs: correct Unix lock-file cleanup and flock claims by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#623](https://redirect.github.com/tox-dev/filelock/pull/623)
- ✨ feat(api): add close_error_policy for post-unlock close errors by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#619](https://redirect.github.com/tox-dev/filelock/pull/619)
- 🐛 fix(api): canonicalize singleton keys without following a final
symlink by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#621](https://redirect.github.com/tox-dev/filelock/pull/621)
- ✨ feat(unix): add fallback_to_soft opt-out for native locks by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#622](https://redirect.github.com/tox-dev/filelock/pull/622)
- ✨ feat: add lock_descriptor for a caller-owned descriptor by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#620](https://redirect.github.com/tox-dev/filelock/pull/620)
- ✨ feat(api): add preserve_lock_file to keep the lock pathname by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#624](https://redirect.github.com/tox-dev/filelock/pull/624)
- ✨ feat(api): add on_acquired post-acquisition hook by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#625](https://redirect.github.com/tox-dev/filelock/pull/625)
- 🔧 build(release): towncrier changelog pipeline, backfill, and docs by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#626](https://redirect.github.com/tox-dev/filelock/pull/626)
- 📝 docs: drop bot entries and link code refs in the changelog by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#638](https://redirect.github.com/tox-dev/filelock/pull/638)
- 🐛 fix(api): validate lifetime values by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#644](https://redirect.github.com/tox-dev/filelock/pull/644)
- 🐛 fix(win32): capture process probe errors by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#645](https://redirect.github.com/tox-dev/filelock/pull/645)
- 🐛 fix(api): reject dropped lock options by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#646](https://redirect.github.com/tox-dev/filelock/pull/646)
- 🐛 fix(api): retain acquisition path identity by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#647](https://redirect.github.com/tox-dev/filelock/pull/647)
- 🐛 fix(api): detach grouped release errors by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#648](https://redirect.github.com/tox-dev/filelock/pull/648)
- 🐛 fix(descriptor): define unavailable behavior by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#650](https://redirect.github.com/tox-dev/filelock/pull/650)
- 🐛 fix(ci): map absolute coverage paths by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#651](https://redirect.github.com/tox-dev/filelock/pull/651)
- 🐛 fix(soft): relinquish fd before close by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#649](https://redirect.github.com/tox-dev/filelock/pull/649)
- 🐛 fix(async): make cancellation atomic by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#652](https://redirect.github.com/tox-dev/filelock/pull/652)
- 🐛 fix(sqlite): isolate forked connections by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#657](https://redirect.github.com/tox-dev/filelock/pull/657)
- 🧪 test(conftest): scope the close mock to one descriptor by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#656](https://redirect.github.com/tox-dev/filelock/pull/656)
- ✨ feat(soft): add strict soft locks and leases by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#658](https://redirect.github.com/tox-dev/filelock/pull/658)
- ✨ feat(strict): replace shared markers with owner claims by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#659](https://redirect.github.com/tox-dev/filelock/pull/659)
- 🐛 fix(soft): detect a reused PID via process start time by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#660](https://redirect.github.com/tox-dev/filelock/pull/660)
- 🔒 fix(soft): fail safe on transient heartbeat errors by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#661](https://redirect.github.com/tox-dev/filelock/pull/661)
- 📝 docs: state the lock trust boundaries once by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#663](https://redirect.github.com/tox-dev/filelock/pull/663)
- 👷 ci(perf): add the performance and NFS matrix by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#664](https://redirect.github.com/tox-dev/filelock/pull/664)
- Replace prettier with mdformat and yamlfmt by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#667](https://redirect.github.com/tox-dev/filelock/pull/667)
- 👷 ci(matrix): add SMB, capability, and matrix docs by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#665](https://redirect.github.com/tox-dev/filelock/pull/665)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.29.7...3.30.0>
###
[`v3.29.7`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.29.7)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.29.6...3.29.7)
<!-- Release notes generated using configuration in .github/release.yaml
at main -->
#### What's Changed
- asyncio: detect cross-instance reentrant deadlocks before the poll
loop by [@​HrachShah](https://redirect.github.com/HrachShah) in
[tox-dev/filelock#586](https://redirect.github.com/tox-dev/filelock/pull/586)
- 🐛 fix(soft_rw): evict non-regular write marker without reading it by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#588](https://redirect.github.com/tox-dev/filelock/pull/588)
- \_util: drop the dead st_mtime=0 short-circuit in
raise_on_not_writable_file by
[@​HrachShah](https://redirect.github.com/HrachShah) in
[tox-dev/filelock#589](https://redirect.github.com/tox-dev/filelock/pull/589)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.29.6...3.29.7>
###
[`v3.29.6`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.29.6)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.29.5...3.29.6)
<!-- Release notes generated using configuration in .github/release.yaml
at main -->
#### What's Changed
- serialise singleton construction in FileLockMeta by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#581](https://redirect.github.com/tox-dev/filelock/pull/581)
- \_util: drop the dead st_mtime=0 short-circuit in
raise_on_not_writable_file by
[@​HrachShah](https://redirect.github.com/HrachShah) in
[tox-dev/filelock#582](https://redirect.github.com/tox-dev/filelock/pull/582)
- test: silence fork DeprecationWarning on 3.15 by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#585](https://redirect.github.com/tox-dev/filelock/pull/585)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.29.5...3.29.6>
###
[`v3.29.5`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.29.5)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.29.4...3.29.5)
<!-- Release notes generated using configuration in .github/release.yaml
at main -->
#### What's Changed
- serialise read/write release rollback against a concurrent acquire by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#563](https://redirect.github.com/tox-dev/filelock/pull/563)
- 🔒 fix(soft_rw): refresh held marker through the verified fd by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#565](https://redirect.github.com/tox-dev/filelock/pull/565)
- only unlink the writer marker on release if it is still ours by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#566](https://redirect.github.com/tox-dev/filelock/pull/566)
- don't follow symlinks in raise_on_not_writable_file by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#567](https://redirect.github.com/tox-dev/filelock/pull/567)
- don't complete a writer acquire on a peer's reclaimed marker by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#571](https://redirect.github.com/tox-dev/filelock/pull/571)
- use a private break name in break_lock_file by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#576](https://redirect.github.com/tox-dev/filelock/pull/576)
- Keep Unix lock files after release by
[@​itscloud0](https://redirect.github.com/itscloud0) in
[tox-dev/filelock#577](https://redirect.github.com/tox-dev/filelock/pull/577)
- test: fix Windows type check broken by
[#​577](https://redirect.github.com/tox-dev/py-filelock/issues/577)
by [@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#580](https://redirect.github.com/tox-dev/filelock/pull/580)
- roll back a read acquire's open transaction when its SELECT fails by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#575](https://redirect.github.com/tox-dev/filelock/pull/575)
- lifetime: reject negative, non-numeric, and bool values at the setter
by [@​HrachShah](https://redirect.github.com/HrachShah) in
[tox-dev/filelock#573](https://redirect.github.com/tox-dev/filelock/pull/573)
#### New Contributors
- [@​itscloud0](https://redirect.github.com/itscloud0) made their
first contribution in
[tox-dev/filelock#577](https://redirect.github.com/tox-dev/filelock/pull/577)
- [@​HrachShah](https://redirect.github.com/HrachShah) made their
first contribution in
[tox-dev/filelock#573](https://redirect.github.com/tox-dev/filelock/pull/573)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.29.4...3.29.5>
###
[`v3.29.4`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.29.4)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.29.3...3.29.4)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.29.4 -->
#### What's Changed
- verify inode in break_lock_file before unlinking a stale lock by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#561](https://redirect.github.com/tox-dev/filelock/pull/561)
- keep the read/write heartbeat alive on a transient touch error by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#562](https://redirect.github.com/tox-dev/filelock/pull/562)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.29.3...3.29.4>
###
[`v3.29.3`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.29.3)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.29.2...3.29.3)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.29.3 -->
#### What's Changed
- 🔧 ci(release): publish to PyPI on tag push by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#557](https://redirect.github.com/tox-dev/filelock/pull/557)
- validate pid range in \_parse_lock_holder by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#556](https://redirect.github.com/tox-dev/filelock/pull/556)
- 🐛 fix(ci): restore release environment on tag job by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#559](https://redirect.github.com/tox-dev/filelock/pull/559)
- 🐛 fix(ci): publish from release.yaml on tag push by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#560](https://redirect.github.com/tox-dev/filelock/pull/560)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.29.2...3.29.3>
###
[`v3.29.2`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.29.2)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.29.1...3.29.2)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.29.2 -->
#### What's Changed
- open marker reads non-blocking to refuse attacker-placed fifo by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#549](https://redirect.github.com/tox-dev/filelock/pull/549)
- 🔒 fix(soft): harden stale-lock breaking and self-heal malformed locks
by [@​gaborbernat](https://redirect.github.com/gaborbernat) in
[tox-dev/filelock#551](https://redirect.github.com/tox-dev/filelock/pull/551)
- check hostname in is_lock_held_by_us by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#553](https://redirect.github.com/tox-dev/filelock/pull/553)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.29.1...3.29.2>
###
[`v3.29.1`](https://redirect.github.com/tox-dev/filelock/releases/tag/3.29.1)
[Compare
Source](https://redirect.github.com/tox-dev/py-filelock/compare/3.29.0...3.29.1)
<!-- Release notes generated using configuration in .github/release.yaml
at 3.29.1 -->
#### What's Changed
- docs: fix API docs of `release()` by
[@​MrAnno](https://redirect.github.com/MrAnno) in
[tox-dev/filelock#540](https://redirect.github.com/tox-dev/filelock/pull/540)
- docs: clarify per-thread scope of FileLock configuration by
[@​Gares95](https://redirect.github.com/Gares95) in
[tox-dev/filelock#543](https://redirect.github.com/tox-dev/filelock/pull/543)
- chore: improve filelock maintenance path by
[@​lphuc2250gma](https://redirect.github.com/lphuc2250gma) in
[tox-dev/filelock#542](https://redirect.github.com/tox-dev/filelock/pull/542)
- chore: improve filelock maintenance path by
[@​lphuc2250gma](https://redirect.github.com/lphuc2250gma) in
[tox-dev/filelock#544](https://redirect.github.com/tox-dev/filelock/pull/544)
- chore: improve filelock maintenance path by
[@​lphuc2250gma](https://redirect.github.com/lphuc2250gma) in
[tox-dev/filelock#545](https://redirect.github.com/tox-dev/filelock/pull/545)
- 🐛 fix(soft): refuse to follow symlinks when reading the lock file by
[@​dxbjavid](https://redirect.github.com/dxbjavid) in
[tox-dev/filelock#548](https://redirect.github.com/tox-dev/filelock/pull/548)
#### New Contributors
- [@​MrAnno](https://redirect.github.com/MrAnno) made their first
contribution in
[tox-dev/filelock#540](https://redirect.github.com/tox-dev/filelock/pull/540)
- [@​Gares95](https://redirect.github.com/Gares95) made their
first contribution in
[tox-dev/filelock#543](https://redirect.github.com/tox-dev/filelock/pull/543)
- [@​lphuc2250gma](https://redirect.github.com/lphuc2250gma) made
their first contribution in
[tox-dev/filelock#542](https://redirect.github.com/tox-dev/filelock/pull/542)
- [@​dxbjavid](https://redirect.github.com/dxbjavid) made their
first contribution in
[tox-dev/filelock#548](https://redirect.github.com/tox-dev/filelock/pull/548)
**Full Changelog**:
<https://github.com/tox-dev/filelock/compare/3.29.0...3.29.1>
</details>
---
### Configuration
📅 **Schedule**: (UTC)
- Branch creation
- At any time (no schedule defined)
- Automerge
- At any time (no schedule defined)
🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.
---
- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box
---
This PR was generated by [Mend Renovate](https://mend.io/renovate/).
View the [repository job
log](https://developer.mend.io/github/googleapis/google-cloud-python).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTUuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE1NS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->1 parent aa90420 commit 206d045
1 file changed
Lines changed: 3 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
16 | 16 | | |
17 | 17 | | |
18 | 18 | | |
19 | | - | |
20 | | - | |
21 | | - | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| |||
0 commit comments