Sourced from filelock's releases.
3.31.0
What's Changed
- ✨ feat(platform): support Termux/Android by
@gaborbernatin tox-dev/filelock#678Full Changelog: https://github.com/tox-dev/filelock/compare/3.30.3...3.31.0
3.30.3
What's Changed
- Keep both tables of contents on screen at any browser font size by
@gaborbernatin tox-dev/filelock#673- 📝 docs(mermaid): follow the light and dark theme toggle by
@gaborbernatin tox-dev/filelock#674- asyncio: scope the reentrant-deadlock registry to the owning task by
@xt-yinin tox-dev/filelock#676New Contributors
@xt-yinmade their first contribution in tox-dev/filelock#676Full Changelog: https://github.com/tox-dev/filelock/compare/3.30.2...3.30.3
Sourced from filelock's changelog.
########### Changelog ###########
.. towncrier-draft-entries:: Unreleased
.. towncrier release notes start
3.31.2 (2026-07-21)
filelockimports again on runtimes whoseerrnoomitsENOTSUP, such as GraalPy, where importing the package raisedImportError. It probes the code instead, preferringENOTSUP, falling back toEOPNOTSUPPwhere that name is absent, and dropping toENOSYS/EXDEVwhere neither exists. Platforms definingENOTSUPkeep their behavior. :pr:681
3.31.1 (2026-07-20)
- A
SoftFileLeaseacquired on one thread keeps its claim when another thread fails to acquire the same lease object, so its heartbeat carries on refreshing the marker instead of being torn down and letting a peer take the live claim. :pr:680
3.31.0 (2026-07-18)
- Support Termux/Android, whose CPython ships without
os.linkand reportssys.platform == "android".import filelockand bothFileLockandSoftFileLocknow work there,StrictSoftFileLockreports its missing hard-link support only when acquired, and process liveness reads/procon Android instead of PID-only checks. :pr:678StrictSoftFileLockno longer lets two processes hold the lock at once under heavy contention. A holder now keeps its intent claim for the whole hold, so a contender whose directory scan races the holder's freshly linked claim can no longer miss it and win alongside it. A held lock now exposes both anintentand aheldclaim. :pr:678
3.30.3 (2026-07-17)
AsyncFileLockandAsyncSoftFileLockno longer raise a deadlockRuntimeErrorwhen a different asyncio task waits for a lock they hold; the check now scopes holders to the owning task, so only a same-task reacquire is refused. :pr:676- Keep both tables of contents on screen at any browser font size. The widened body column sized itself in
emagainst the reader's font size while the breakpoints that fold the layout resolveemagainst a fixed 16px, so a reader whose default font is larger than 16px had the right-hand table of contents clipped off the edge. The body column now flexes instead, and the right-hand table of contents hides only at the mobile breakpoint. :pr:673- Color the mermaid diagrams from whichever theme is active. They previously carried a light palette baked into each diagram's source, which stayed light on a dark page. :pr:
674
3.30.2 (2026-07-16)
- Stop :class:
~filelock.SoftFileLeasedeleting a live marker whosemodeit does not implement. An unrecognized mode now names its owner instead of reading as malformed, so a record written by a newer filelock survives the grace window rather than being evicted after two seconds. :pr:672
... (truncated)
3b66fdc
Release 3.31.0166b2b5
✨ feat(platform): support Termux/Android (#678)51bca89
Release 3.30.3fc27700
asyncio: scope the reentrant-deadlock registry to the owning task (#676)8699861
📝 docs(mermaid): follow the light and dark theme toggle (#674)1b8da43
Keep both tables of contents on screen at any browser font size (#673)