Repository navigation
fix: reject invalid poll_interval before sleep - #739
Merged
gaborbernat merged 3 commits intoSep 19, 2026
Merged
Conversation
Negative, non-finite, or non-numeric poll_interval values previously reached time.sleep/asyncio.sleep and raised a cryptic ValueError. Validate at construction, on the setter, and on acquire() so callers get a clear TypeError/ValueError, matching SoftReadWriteLock timing checks.
for more information, see https://pre-commit.ci
gaborbernat
requested changes
Sep 18, 2026
Review on tox-dev#739 asked for no new test file and parametrized coverage instead of duplication. Fold the constructor/setter/ acquire validation checks into test_filelock.py and test_async_filelock.py next to their existing poll_interval tests, as one parametrized case per sync/async pair, and add a news fragment for the behavior change.
renovate Bot
added a commit
to ansible/molecule
that referenced
this pull request
Oct 6, 2026
> ℹ️ **Note**
>
> This PR body was truncated due to platform limits.
This PR contains the following updates:
| Package | Change |
[Age](https://docs.renovatebot.com/merge-confidence/) |
[Confidence](https://docs.renovatebot.com/merge-confidence/) | Type |
Update | Pending |
|---|---|---|---|---|---|---|
| [ansible-compat](https://redirect.github.com/ansible/ansible-compat)
([changelog](https://redirect.github.com/ansible/ansible-compat/releases))
| `26.8.0` → `26.9.0` |

|

| project.dependencies | minor | |
| [ansible-lint](https://redirect.github.com/ansible/ansible-lint)
([changelog](https://redirect.github.com/ansible/ansible-lint/releases))
| `26.8.0` → `26.9.0` |

|

| dependency-groups | minor | |
|
[ansible-navigator](https://redirect.github.com/ansible/ansible-navigator)
([changelog](https://redirect.github.com/ansible/ansible-navigator/releases))
| `26.8.0` → `26.9.0` |

|

| dependency-groups | minor | |
|
[ansible/ansible-lint](https://redirect.github.com/ansible/ansible-lint)
| `v26.8.0` → `v26.9.0` |

|

| repository | minor | |
|
[astral-sh/uv-pre-commit](https://redirect.github.com/astral-sh/uv-pre-commit)
| `0.12.14` → `0.12.19` |

|

| repository | patch | `0.12.21` (+1) |
| [biomejs/pre-commit](https://redirect.github.com/biomejs/pre-commit) |
`v2.5.13` → `v2.5.14` |

|

| repository | patch | |
| [coverage](https://redirect.github.com/coveragepy/coveragepy) |
`7.16.1` → `7.16.2` |

|

| dependency-groups | patch | |
| [filelock](https://redirect.github.com/tox-dev/py-filelock) | `3.32.7`
→ `4.0.1` |

|

| dependency-groups | major | `4.0.7` (+5) |
| [jsh9/pydoclint](https://redirect.github.com/jsh9/pydoclint) | `0.9.1`
→ `0.10.1` |

|

| repository | minor | |
| [mkdocs-ansible](https://redirect.github.com/ansible/mkdocs-ansible)
([changelog](https://redirect.github.com/ansible/mkdocs-ansible/releases))
| `25.2.0` → `26.4.0` |

|

| dependency-groups | major | |
| [pipx](https://redirect.github.com/pypa/pipx)
([changelog](https://pipx.pypa.io/latest/changelog.html)) | `1.17.3` →
`1.17.7` |

|

| dependency-groups | patch | `1.17.8` |
| [prek](https://prek.j178.dev/)
([source](https://redirect.github.com/j178/prek),
[changelog](https://redirect.github.com/j178/prek/blob/master/CHANGELOG.md))
| `0.5.3` → `0.5.4` |

|

| dependency-groups | patch | |
| [pycqa/pylint](https://redirect.github.com/pycqa/pylint) | `v4.0.8` →
`v4.0.9` |

|

| repository | patch | `v4.1.1` (+2) |
| [pydoclint](https://redirect.github.com/jsh9/pydoclint) | `0.9.1` →
`0.10.1` |

|

| dependency-groups | minor | |
| [pylint](https://redirect.github.com/pylint-dev/pylint)
([changelog](https://pylint.readthedocs.io/en/latest/whatsnew/4/)) |
`4.0.8` → `4.0.9` |

|

| dependency-groups | patch | `4.1.1` (+1) |
| [pytest-ansible](https://redirect.github.com/ansible/pytest-ansible)
([changelog](https://redirect.github.com/ansible/pytest-ansible/releases))
| `26.8.0` → `26.9.0` |

|

| dependency-groups | minor | |
| [pytest-mock](https://redirect.github.com/pytest-dev/pytest-mock)
([changelog](https://pytest-mock.readthedocs.io/en/latest/changelog.html))
| `3.15.1` → `3.16.0` |

|

| dependency-groups | minor | |
| [ruff](https://docs.astral.sh/ruff)
([source](https://redirect.github.com/astral-sh/ruff),
[changelog](https://redirect.github.com/astral-sh/ruff/blob/main/CHANGELOG.md))
| `0.16.8` → `0.16.9` |

|

| dependency-groups | patch | |
| [tombi](https://redirect.github.com/tombi-toml/tombi) | `1.5.5` →
`1.5.8` |

|

| dependency-groups | patch | `1.6.1` (+2) |
| [tox](https://redirect.github.com/tox-dev/tox)
([changelog](https://tox.wiki/en/latest/changelog.html)) | `4.61.5` →
`4.64.4` |

|

| dependency-groups | minor | `4.64.5` |
| [tox-ansible](https://redirect.github.com/ansible/tox-ansible)
([changelog](https://redirect.github.com/ansible/tox-ansible/releases))
| `26.8.0` → `26.9.0` |

|

| dependency-groups | minor | |
Note: The `pre-commit` manager in Renovate is not supported by the
`pre-commit` maintainers or community. Please do not report any problems
there, instead [create a Discussion in the Renovate
repository](https://redirect.github.com/renovatebot/renovate/discussions/new)
if you have any questions.
---
### Release Notes
<details>
<summary>ansible/ansible-compat (ansible-compat)</summary>
###
[`v26.9.0`](https://redirect.github.com/ansible/ansible-compat/releases/tag/v26.9.0)
[Compare
Source](https://redirect.github.com/ansible/ansible-compat/compare/v26.8.0...v26.9.0)
##### Fixes
- fix: warn instead of fail on untested ansible-core/python combinations
([#​582](https://redirect.github.com/ansible/ansible-compat/issues/582))
[@​eb4x](https://redirect.github.com/eb4x)
- fix(deps): bump minimum versions to address medium-severity CVEs
([#​614](https://redirect.github.com/ansible/ansible-compat/issues/614))
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh)
- fix: raise cryptography minimum to 50.0.0 for Guardian prod vulns
([#​617](https://redirect.github.com/ansible/ansible-compat/issues/617))
[@​rockygeekz](https://redirect.github.com/rockygeekz)
- fix(security): update dependencies \[SECURITY]
([#​615](https://redirect.github.com/ansible/ansible-compat/issues/615))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
##### Maintenance
- chore(deps): update all dependencies
([#​618](https://redirect.github.com/ansible/ansible-compat/issues/618))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​610](https://redirect.github.com/ansible/ansible-compat/issues/610))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update pep621
([#​611](https://redirect.github.com/ansible/ansible-compat/issues/611))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore: Add SECURITY.md
([#​616](https://redirect.github.com/ansible/ansible-compat/issues/616))
[@​rockygeekz](https://redirect.github.com/rockygeekz)
##### What's Changed
- fix(security): update dependencies \[SECURITY] by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​615](https://redirect.github.com/ansible/ansible-compat/pull/615)
- chore: Add SECURITY.md by
[@​rockygeekz](https://redirect.github.com/rockygeekz) in
[#​616](https://redirect.github.com/ansible/ansible-compat/pull/616)
- fix: raise cryptography minimum to 50.0.0 for Guardian prod vulns by
[@​rockygeekz](https://redirect.github.com/rockygeekz) in
[#​617](https://redirect.github.com/ansible/ansible-compat/pull/617)
- chore(deps): update pep621 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​611](https://redirect.github.com/ansible/ansible-compat/pull/611)
- chore(deps): update all dependencies by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​610](https://redirect.github.com/ansible/ansible-compat/pull/610)
- fix(deps): bump minimum versions to address medium-severity CVEs by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​614](https://redirect.github.com/ansible/ansible-compat/pull/614)
- chore(deps): update all dependencies by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​618](https://redirect.github.com/ansible/ansible-compat/pull/618)
- fix: warn instead of fail on untested ansible-core/python combinations
by [@​eb4x](https://redirect.github.com/eb4x) in
[#​582](https://redirect.github.com/ansible/ansible-compat/pull/582)
##### New Contributors
- [@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) made
their first contribution in
[#​614](https://redirect.github.com/ansible/ansible-compat/pull/614)
- [@​eb4x](https://redirect.github.com/eb4x) made their first
contribution in
[#​582](https://redirect.github.com/ansible/ansible-compat/pull/582)
**Full Changelog**:
<https://github.com/ansible/ansible-compat/compare/v26.8.0...v26.9.0>
</details>
<details>
<summary>ansible/ansible-lint (ansible-lint)</summary>
###
[`v26.9.0`](https://redirect.github.com/ansible/ansible-lint/releases/tag/v26.9.0)
[Compare
Source](https://redirect.github.com/ansible/ansible-lint/compare/v26.8.0...v26.9.0)
##### Features
- feat: support `example` section in file `meta/argument_specs.yml`
([#​5164](https://redirect.github.com/ansible/ansible-lint/issues/5164))
[@​berndfinger](https://redirect.github.com/berndfinger)
##### Fixes
- fix: resolve short mock modules during syntax check
([#​5149](https://redirect.github.com/ansible/ansible-lint/issues/5149))
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh)
- fix: propagate `extra_vars` to `import_playbook` syntax check
([#​5148](https://redirect.github.com/ansible/ansible-lint/issues/5148))
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh)
- fix: resolve nested `include_tasks` relative paths
([#​5159](https://redirect.github.com/ansible/ansible-lint/issues/5159))
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh)
- fix: resolve `include_tasks` paths from playbook dir
([#​5184](https://redirect.github.com/ansible/ansible-lint/issues/5184))
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh)
- fix: apply profile-level skip list during linting
([#​5151](https://redirect.github.com/ansible/ansible-lint/issues/5151))
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh)
- fix: honor `warn_list` after `--fix` rewrites task names
([#​5085](https://redirect.github.com/ansible/ansible-lint/issues/5085))
[@​santosh7676](https://redirect.github.com/santosh7676)
- fix: mock\_modules clobbering collections and args false positives
([#​5157](https://redirect.github.com/ansible/ansible-lint/issues/5157))
[@​djdanielsson](https://redirect.github.com/djdanielsson)
- fix: inject plain-name mock roles path regardless of `--offline`
([#​5183](https://redirect.github.com/ansible/ansible-lint/issues/5183))
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh)
- fix: warn users when directory expansion discovers new files
([#​5158](https://redirect.github.com/ansible/ansible-lint/issues/5158))
[@​rockygeekz](https://redirect.github.com/rockygeekz)
- fix: skip auto-fix `no-jinja-when` on string-embedded jinja
([#​5103](https://redirect.github.com/ansible/ansible-lint/issues/5103))
[@​f1047](https://redirect.github.com/f1047)
- fix: do not warn when Jinja block indent is only trim-marker noise
([#​5153](https://redirect.github.com/ansible/ansible-lint/issues/5153))
[@​DSeaStar](https://redirect.github.com/DSeaStar)
- fix: preserve blank lines after flow collections
([#​5178](https://redirect.github.com/ansible/ansible-lint/issues/5178))
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh)
- fix: add `validate_argspec` to play schema
([#​5187](https://redirect.github.com/ansible/ansible-lint/issues/5187))
[@​sameeralam3127](https://redirect.github.com/sameeralam3127)
- fix: use ThreadPoolExecutor for syntax check workers
([#​5173](https://redirect.github.com/ansible/ansible-lint/issues/5173))
[@​rockygeekz](https://redirect.github.com/rockygeekz)
- fix: drop ruamel.yaml.clib
([#​5163](https://redirect.github.com/ansible/ansible-lint/issues/5163))
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh)
- fix(deps): upgrade gitpython 3.1.57 to 3.1.59
([#​5152](https://redirect.github.com/ansible/ansible-lint/issues/5152))
[@​rockygeekz](https://redirect.github.com/rockygeekz)
- fix: upgrade black to >=25.2.0 to address CVE-2026-32274
([#​5166](https://redirect.github.com/ansible/ansible-lint/issues/5166))
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh)
- fix: raise cryptography floor and bump js-yaml for Guardian prod vulns
([#​5174](https://redirect.github.com/ansible/ansible-lint/issues/5174))
[@​rockygeekz](https://redirect.github.com/rockygeekz)
##### Performance
- perf: cache `get_deps_versions()` result
([#​5113](https://redirect.github.com/ansible/ansible-lint/issues/5113))
[@​BlackDark](https://redirect.github.com/BlackDark)
##### Maintenance
- chore: Add `.github/SECURITY.md`
([#​5165](https://redirect.github.com/ansible/ansible-lint/issues/5165))
[@​gundalow](https://redirect.github.com/gundalow)
- chore(deps): update all dependencies and pep621
([#​5138](https://redirect.github.com/ansible/ansible-lint/issues/5138),
[#​5154](https://redirect.github.com/ansible/ansible-lint/issues/5154),
[#​5155](https://redirect.github.com/ansible/ansible-lint/issues/5155),
[#​5160](https://redirect.github.com/ansible/ansible-lint/issues/5160),
[#​5161](https://redirect.github.com/ansible/ansible-lint/issues/5161),
[#​5172](https://redirect.github.com/ansible/ansible-lint/issues/5172),
[#​5175](https://redirect.github.com/ansible/ansible-lint/issues/5175),
[#​5176](https://redirect.github.com/ansible/ansible-lint/issues/5176))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
##### What's Changed
- chore(deps): update all dependencies by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​5138](https://redirect.github.com/ansible/ansible-lint/pull/5138)
- fix: resolve short mock modules during syntax check by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​5149](https://redirect.github.com/ansible/ansible-lint/pull/5149)
- fix(deps): upgrade gitpython 3.1.57 to 3.1.59 by
[@​rockygeekz](https://redirect.github.com/rockygeekz) in
[#​5152](https://redirect.github.com/ansible/ansible-lint/pull/5152)
- chore(deps): update all dependencies pep621 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​5155](https://redirect.github.com/ansible/ansible-lint/pull/5155)
- fix: propagate extra\_vars to import\_playbook syntax check by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​5148](https://redirect.github.com/ansible/ansible-lint/pull/5148)
- fix: warn users when directory expansion discovers new files by
[@​rockygeekz](https://redirect.github.com/rockygeekz) in
[#​5158](https://redirect.github.com/ansible/ansible-lint/pull/5158)
- fix: resolve nested include\_tasks relative paths by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​5159](https://redirect.github.com/ansible/ansible-lint/pull/5159)
- fix: apply profile-level skip list during linting by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​5151](https://redirect.github.com/ansible/ansible-lint/pull/5151)
- chore(deps): update all dependencies by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​5154](https://redirect.github.com/ansible/ansible-lint/pull/5154)
- chore(deps): update all dependencies by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​5160](https://redirect.github.com/ansible/ansible-lint/pull/5160)
- fix: skip auto-fix no-jinja-when on string-embedded jinja by
[@​f1047](https://redirect.github.com/f1047) in
[#​5103](https://redirect.github.com/ansible/ansible-lint/pull/5103)
- chore(deps): update all dependencies pep621 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​5161](https://redirect.github.com/ansible/ansible-lint/pull/5161)
- fix: do not warn when Jinja block indent is only trim-marker noise by
[@​DSeaStar](https://redirect.github.com/DSeaStar) in
[#​5153](https://redirect.github.com/ansible/ansible-lint/pull/5153)
- chore: Add .github/SECURITY.md by
[@​gundalow](https://redirect.github.com/gundalow) in
[#​5165](https://redirect.github.com/ansible/ansible-lint/pull/5165)
- fix: upgrade black to >=25.2.0 to address CVE-2026-32274 by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​5166](https://redirect.github.com/ansible/ansible-lint/pull/5166)
- Fix/drop ruamel yaml clib fresh by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​5163](https://redirect.github.com/ansible/ansible-lint/pull/5163)
- chore(deps): update all dependencies pep621 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​5172](https://redirect.github.com/ansible/ansible-lint/pull/5172)
- fix: honor warn\_list after --fix rewrites task names by
[@​santosh7676](https://redirect.github.com/santosh7676) in
[#​5085](https://redirect.github.com/ansible/ansible-lint/pull/5085)
- feat: support 'example' section in file meta/argument\_specs.yml by
[@​berndfinger](https://redirect.github.com/berndfinger) in
[#​5164](https://redirect.github.com/ansible/ansible-lint/pull/5164)
- fix: use ThreadPoolExecutor for syntax check workers by
[@​rockygeekz](https://redirect.github.com/rockygeekz) in
[#​5173](https://redirect.github.com/ansible/ansible-lint/pull/5173)
- fix: mock\_modules clobbering collections and args false positives by
[@​djdanielsson](https://redirect.github.com/djdanielsson) in
[#​5157](https://redirect.github.com/ansible/ansible-lint/pull/5157)
- fix: raise cryptography floor and bump js-yaml for Guardian prod vulns
by [@​rockygeekz](https://redirect.github.com/rockygeekz) in
[#​5174](https://redirect.github.com/ansible/ansible-lint/pull/5174)
- chore(deps): update all dependencies pep621 by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​5176](https://redirect.github.com/ansible/ansible-lint/pull/5176)
- chore(deps): update all dependencies by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​5175](https://redirect.github.com/ansible/ansible-lint/pull/5175)
- fix: preserve blank lines after flow collections by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​5178](https://redirect.github.com/ansible/ansible-lint/pull/5178)
- perf: cache get\_deps\_versions() result by
[@​BlackDark](https://redirect.github.com/BlackDark) in
[#​5113](https://redirect.github.com/ansible/ansible-lint/pull/5113)
- fix: inject plain-name mock roles path regardless of --offline by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​5183](https://redirect.github.com/ansible/ansible-lint/pull/5183)
- fix: resolve include\_tasks paths from playbook dir by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​5184](https://redirect.github.com/ansible/ansible-lint/pull/5184)
- fix: add validate\_argspec to play schema by
[@​sameeralam3127](https://redirect.github.com/sameeralam3127) in
[#​5187](https://redirect.github.com/ansible/ansible-lint/pull/5187)
##### New Contributors
- [@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) made
their first contribution in
[#​5149](https://redirect.github.com/ansible/ansible-lint/pull/5149)
- [@​f1047](https://redirect.github.com/f1047) made their first
contribution in
[#​5103](https://redirect.github.com/ansible/ansible-lint/pull/5103)
- [@​DSeaStar](https://redirect.github.com/DSeaStar) made their
first contribution in
[#​5153](https://redirect.github.com/ansible/ansible-lint/pull/5153)
- [@​berndfinger](https://redirect.github.com/berndfinger) made
their first contribution in
[#​5164](https://redirect.github.com/ansible/ansible-lint/pull/5164)
- [@​BlackDark](https://redirect.github.com/BlackDark) made their
first contribution in
[#​5113](https://redirect.github.com/ansible/ansible-lint/pull/5113)
- [@​sameeralam3127](https://redirect.github.com/sameeralam3127)
made their first contribution in
[#​5187](https://redirect.github.com/ansible/ansible-lint/pull/5187)
**Full Changelog**:
<https://github.com/ansible/ansible-lint/compare/v26.8.0...v26.9.0>
</details>
<details>
<summary>ansible/ansible-navigator (ansible-navigator)</summary>
###
[`v26.9.0`](https://redirect.github.com/ansible/ansible-navigator/releases/tag/v26.9.0)
[Compare
Source](https://redirect.github.com/ansible/ansible-navigator/compare/v26.8.0...v26.9.0)
#### What's Changed
- chore(deps): update all dependencies by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​2157](https://redirect.github.com/ansible/ansible-navigator/pull/2157)
- fix(docs): remove conflicting keys from .readthedocs.yml by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​2159](https://redirect.github.com/ansible/ansible-navigator/pull/2159)
- docs: explain when to use monkeypatch by
[@​Himanshuagrawal4](https://redirect.github.com/Himanshuagrawal4)
in
[#​2155](https://redirect.github.com/ansible/ansible-navigator/pull/2155)
- chore(deps): update all dependencies by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​2162](https://redirect.github.com/ansible/ansible-navigator/pull/2162)
- docs: clarify shell pipelines in execution environments by
[@​Himanshuagrawal4](https://redirect.github.com/Himanshuagrawal4)
in
[#​2154](https://redirect.github.com/ansible/ansible-navigator/pull/2154)
- fix: handle OSError when checking a playbook path by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​2164](https://redirect.github.com/ansible/ansible-navigator/pull/2164)
- fix: handle invalid artifact filename formats by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​2160](https://redirect.github.com/ansible/ansible-navigator/pull/2160)
- fix: handle undeterminable home directory when expanding a path by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​2165](https://redirect.github.com/ansible/ansible-navigator/pull/2165)
- Add limited Apple Container support as container engine by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​2163](https://redirect.github.com/ansible/ansible-navigator/pull/2163)
- chore(deps): update all dependencies by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​2167](https://redirect.github.com/ansible/ansible-navigator/pull/2167)
- replicate: docs: update contributor linting guidance-
[#​2156](https://redirect.github.com/ansible/ansible-navigator/issues/2156)
by [@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​2168](https://redirect.github.com/ansible/ansible-navigator/pull/2168)
- chore: Add SECURITY.md by
[@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) in
[#​2169](https://redirect.github.com/ansible/ansible-navigator/pull/2169)
- chore(deps): update all dependencies by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​2170](https://redirect.github.com/ansible/ansible-navigator/pull/2170)
- chore(deps): update all dependencies by
[@​renovate](https://redirect.github.com/renovate)\[bot] in
[#​2171](https://redirect.github.com/ansible/ansible-navigator/pull/2171)
- fix: request explicit columns when listing images by
[@​anandghegde](https://redirect.github.com/anandghegde) in
[#​2172](https://redirect.github.com/ansible/ansible-navigator/pull/2172)
#### New Contributors
- [@​shvenkat-rh](https://redirect.github.com/shvenkat-rh) made
their first contribution in
[#​2159](https://redirect.github.com/ansible/ansible-navigator/pull/2159)
-
[@​Himanshuagrawal4](https://redirect.github.com/Himanshuagrawal4)
made their first contribution in
[#​2155](https://redirect.github.com/ansible/ansible-navigator/pull/2155)
- [@​anandghegde](https://redirect.github.com/anandghegde) made
their first contribution in
[#​2172](https://redirect.github.com/ansible/ansible-navigator/pull/2172)
**Full Changelog**:
<https://github.com/ansible/ansible-navigator/compare/v26.8.0...v26.9.0>
</details>
<details>
<summary>astral-sh/uv-pre-commit (astral-sh/uv-pre-commit)</summary>
###
[`v0.12.19`](https://redirect.github.com/astral-sh/uv-pre-commit/releases/tag/0.12.19)
[Compare
Source](https://redirect.github.com/astral-sh/uv-pre-commit/compare/0.12.18...0.12.19)
See: <https://github.com/astral-sh/uv/releases/tag/0.12.19>
###
[`v0.12.18`](https://redirect.github.com/astral-sh/uv-pre-commit/releases/tag/0.12.18)
[Compare
Source](https://redirect.github.com/astral-sh/uv-pre-commit/compare/0.12.17...0.12.18)
See: <https://github.com/astral-sh/uv/releases/tag/0.12.18>
###
[`v0.12.17`](https://redirect.github.com/astral-sh/uv-pre-commit/releases/tag/0.12.17)
[Compare
Source](https://redirect.github.com/astral-sh/uv-pre-commit/compare/0.12.16...0.12.17)
See: <https://github.com/astral-sh/uv/releases/tag/0.12.17>
###
[`v0.12.16`](https://redirect.github.com/astral-sh/uv-pre-commit/releases/tag/0.12.16)
[Compare
Source](https://redirect.github.com/astral-sh/uv-pre-commit/compare/0.12.15...0.12.16)
See: <https://github.com/astral-sh/uv/releases/tag/0.12.16>
###
[`v0.12.15`](https://redirect.github.com/astral-sh/uv-pre-commit/releases/tag/0.12.15)
[Compare
Source](https://redirect.github.com/astral-sh/uv-pre-commit/compare/0.12.14...0.12.15)
See: <https://github.com/astral-sh/uv/releases/tag/0.12.15>
</details>
<details>
<summary>biomejs/pre-commit (biomejs/pre-commit)</summary>
###
[`v2.5.14`](https://redirect.github.com/biomejs/pre-commit/compare/v2.5.13...v2.5.14)
[Compare
Source](https://redirect.github.com/biomejs/pre-commit/compare/v2.5.13...v2.5.14)
</details>
<details>
<summary>coveragepy/coveragepy (coverage)</summary>
###
[`v7.16.2`](https://redirect.github.com/coveragepy/coveragepy/blob/HEAD/CHANGES.rst#Version-7162--2026-09-27)
[Compare
Source](https://redirect.github.com/coveragepy/coveragepy/compare/7.16.1...7.16.2)
- Fix: on Python 3.14 and later, a `for` loop completing immediately
before a
function return could mistakenly report an uncovered branch. This is now
fixed, closing `issue 2168`\_.
- Fix: on Python 3.14 and later, the `else` clause of a `try` whose body
is
a `with` statement could incorrectly be reported as covered when the
`with` raised. This is now fixed, closing `issue 2289`\_.
- Fix: with `dynamic_context = test_function`, test methods written as
`@staticmethod` or `@classmethod` were not given a context of their own.
Now they are, on Python 3.11 and later. Closes `issue 1923`\_.
.. \_issue 1923:
[#​1923](https://redirect.github.com/coveragepy/coveragepy/issues/1923)
.. \_issue 2168:
[#​2168](https://redirect.github.com/coveragepy/coveragepy/issues/2168)
.. \_issue 2289:
[#​2289](https://redirect.github.com/coveragepy/coveragepy/issues/2289)
.. \_changes\_7-16-1:
</details>
<details>
<summary>tox-dev/py-filelock (filelock)</summary>
###
[`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>
</details>
<details>
<summary>jsh9/pydoclint (jsh9/pydoclint)</summary>
###
[`v0.10.1`](https://redirect.github.com/jsh9/pydoclint/blob/HEAD/CHANGELOG.md#0101---2026-09-27)
[Compare
Source](https://redirect.github.com/jsh9/pydoclint/compare/0.10.0...0.10.1)
- Changed
- Rewrote the README and restructured the docs
- Fixed
- Stale docs content and the broken `DOC103`/`DOC603` docs link
- Added
- `docs/llms.txt` and a pre-commit check for orphan docs and broken
links
- Maintenance
- Replaced `itertools.product` with stacked `@pytest.mark.parametrize`
decorators in `tests/test_main.py`
- Full diff
- <https://github.com/jsh9/pydoclint/compare/0.10.0...0.10.1>
###
[`v0.10.0`](https://redirect.github.com/jsh9/pydoclint/blob/HEAD/CHANGELOG.md#0101---2026-09-27)
[Compare
Source](https://redirect.github.com/jsh9/pydoclint/compare/0.9.1...0.10.0)
- Changed
- Rewrote the README and restructured the docs
- Fixed
- Stale docs content and the broken `DOC103`/`DOC603` docs link
- Added
- `docs/llms.txt` and a pre-commit check for orphan docs and broken
links
- Maintenance
- Replaced `itertools.product` with stacked `@pytest.mark.parametrize`
decorators in `tests/test_main.py`
- Full diff
- <https://github.com/jsh9/pydoclint/compare/0.10.0...0.10.1>
</details>
<details>
<summary>ansible/mkdocs-ansible (mkdocs-ansible)</summary>
###
[`v26.4.0`](https://redirect.github.com/ansible/mkdocs-ansible/releases/tag/v26.4.0)
[Compare
Source](https://redirect.github.com/ansible/mkdocs-ansible/compare/v25.6.2...v26.4.0)
#### Fixes
- fix(deps): bump python dependencies update bump
([#​293](https://redirect.github.com/ansible/mkdocs-ansible/issues/293))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- fix(deps): bump python dependencies update bump
([#​290](https://redirect.github.com/ansible/mkdocs-ansible/issues/290))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- fix(deps): bump python dependencies update pep621
([#​289](https://redirect.github.com/ansible/mkdocs-ansible/issues/289))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- fix(deps): bump python dependencies update bump
([#​288](https://redirect.github.com/ansible/mkdocs-ansible/issues/288))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- fix(security): update dependencies \[SECURITY]
([#​286](https://redirect.github.com/ansible/mkdocs-ansible/issues/286))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
#### Maintenance
- chore(deps): update all dependencies
([#​294](https://redirect.github.com/ansible/mkdocs-ansible/issues/294))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​291](https://redirect.github.com/ansible/mkdocs-ansible/issues/291))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update pre-commit hook astral-sh/uv-pre-commit
([#​287](https://redirect.github.com/ansible/mkdocs-ansible/issues/287))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
###
[`v25.6.2`](https://redirect.github.com/ansible/mkdocs-ansible/releases/tag/v25.6.2)
[Compare
Source](https://redirect.github.com/ansible/mkdocs-ansible/compare/v25.6.1...v25.6.2)
#### Fixes
- fix(deps): avoid use of mkdocs 2.0
([#​285](https://redirect.github.com/ansible/mkdocs-ansible/issues/285))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
- fix(deps): bump python dependencies update bump
([#​284](https://redirect.github.com/ansible/mkdocs-ansible/issues/284))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
#### Maintenance
- chore(deps): update all dependencies
([#​279](https://redirect.github.com/ansible/mkdocs-ansible/issues/279))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore: tune renovate
([#​283](https://redirect.github.com/ansible/mkdocs-ansible/issues/283))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
- chore: tune renovate config
([#​282](https://redirect.github.com/ansible/mkdocs-ansible/issues/282))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
- chore(deps): update pep621
([#​280](https://redirect.github.com/ansible/mkdocs-ansible/issues/280))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore: update hooks
([#​281](https://redirect.github.com/ansible/mkdocs-ansible/issues/281))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
- chore: change renovate to bump minimal requirements too
([#​278](https://redirect.github.com/ansible/mkdocs-ansible/issues/278))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
- chore(deps): update pep621
([#​277](https://redirect.github.com/ansible/mkdocs-ansible/issues/277))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​276](https://redirect.github.com/ansible/mkdocs-ansible/issues/276))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​275](https://redirect.github.com/ansible/mkdocs-ansible/issues/275))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
###
[`v25.6.1`](https://redirect.github.com/ansible/mkdocs-ansible/releases/tag/v25.6.1)
[Compare
Source](https://redirect.github.com/ansible/mkdocs-ansible/compare/v25.6.0...v25.6.1)
#### Fixes
- fix: migrate tox.ini and adopt uv.lock
([#​241](https://redirect.github.com/ansible/mkdocs-ansible/issues/241))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
#### Maintenance
- Bump cryptography from 46.0.4 to 46.0.5 in the uv group across 1
directory
([#​271](https://redirect.github.com/ansible/mkdocs-ansible/issues/271))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- chore(deps): update all dependencies
([#​273](https://redirect.github.com/ansible/mkdocs-ansible/issues/273))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update dependencies \[security]
([#​272](https://redirect.github.com/ansible/mkdocs-ansible/issues/272))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​270](https://redirect.github.com/ansible/mkdocs-ansible/issues/270))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​267](https://redirect.github.com/ansible/mkdocs-ansible/issues/267))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update dependencies \[security]
([#​269](https://redirect.github.com/ansible/mkdocs-ansible/issues/269))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​266](https://redirect.github.com/ansible/mkdocs-ansible/issues/266))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​265](https://redirect.github.com/ansible/mkdocs-ansible/issues/265))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​264](https://redirect.github.com/ansible/mkdocs-ansible/issues/264))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​263](https://redirect.github.com/ansible/mkdocs-ansible/issues/263))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​262](https://redirect.github.com/ansible/mkdocs-ansible/issues/262))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​261](https://redirect.github.com/ansible/mkdocs-ansible/issues/261))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​260](https://redirect.github.com/ansible/mkdocs-ansible/issues/260))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​259](https://redirect.github.com/ansible/mkdocs-ansible/issues/259))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​258](https://redirect.github.com/ansible/mkdocs-ansible/issues/258))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- docs: migrate RTD URLs to docs.ansible.com
([#​257](https://redirect.github.com/ansible/mkdocs-ansible/issues/257))
[@​gundalow](https://redirect.github.com/gundalow)
- chore(deps): update all dependencies
([#​256](https://redirect.github.com/ansible/mkdocs-ansible/issues/256))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​254](https://redirect.github.com/ansible/mkdocs-ansible/issues/254))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore: Temporarily ignore tombi schema strict checking in
pyproject.toml
([#​255](https://redirect.github.com/ansible/mkdocs-ansible/issues/255))
[@​alisonlhart](https://redirect.github.com/alisonlhart)
- chore(deps): update all dependencies
([#​253](https://redirect.github.com/ansible/mkdocs-ansible/issues/253))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​252](https://redirect.github.com/ansible/mkdocs-ansible/issues/252))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​251](https://redirect.github.com/ansible/mkdocs-ansible/issues/251))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore(deps): update all dependencies
([#​250](https://redirect.github.com/ansible/mkdocs-ansible/issues/250))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- Add finalize workflow for secure sonarcloud checks
([#​249](https://redirect.github.com/ansible/mkdocs-ansible/issues/249))
[@​alisonlhart](https://redirect.github.com/alisonlhart)
- chore: more
([#​248](https://redirect.github.com/ansible/mkdocs-ansible/issues/248))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
- chore(deps): update all dependencies
([#​244](https://redirect.github.com/ansible/mkdocs-ansible/issues/244))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- Add sonar-project.properties file
([#​246](https://redirect.github.com/ansible/mkdocs-ansible/issues/246))
[@​alisonlhart](https://redirect.github.com/alisonlhart)
- chore(deps): update all dependencies
([#​242](https://redirect.github.com/ansible/mkdocs-ansible/issues/242))
@​[renovate\[bot\]](https://redirect.github.com/apps/renovate)
- chore: replace dependabot with renovate
([#​240](https://redirect.github.com/ansible/mkdocs-ansible/issues/240))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
- Bump the dependencies group across 1 directory with 19 updates
([#​239](https://redirect.github.com/ansible/mkdocs-ansible/issues/239))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump actions/setup-python from 5 to 6
([#​237](https://redirect.github.com/ansible/mkdocs-ansible/issues/237))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- chore: pre-commit autoupdate
([#​231](https://redirect.github.com/ansible/mkdocs-ansible/issues/231))
@​[pre-commit-ci\[bot\]](https://redirect.github.com/apps/pre-commit-ci)
- Bump actions/checkout from 4 to 5
([#​233](https://redirect.github.com/ansible/mkdocs-ansible/issues/233))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump the dependencies group in /.config with 5 updates
([#​229](https://redirect.github.com/ansible/mkdocs-ansible/issues/229))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump certifi from 2025.6.15 to 2025.7.9 in /.config in the
dependencies group
([#​228](https://redirect.github.com/ansible/mkdocs-ansible/issues/228))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- chore: pre-commit autoupdate
([#​227](https://redirect.github.com/ansible/mkdocs-ansible/issues/227))
@​[pre-commit-ci\[bot\]](https://redirect.github.com/apps/pre-commit-ci)
- Bump the dependencies group in /.config with 5 updates
([#​226](https://redirect.github.com/ansible/mkdocs-ansible/issues/226))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump the dependencies group in /.config with 2 updates
([#​224](https://redirect.github.com/ansible/mkdocs-ansible/issues/224))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump the dependencies group in /.config with 5 updates
([#​223](https://redirect.github.com/ansible/mkdocs-ansible/issues/223))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump the dependencies group in /.config with 3 updates
([#​221](https://redirect.github.com/ansible/mkdocs-ansible/issues/221))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump requests from 2.32.3 to 2.32.4 in /.config in the pip group
([#​220](https://redirect.github.com/ansible/mkdocs-ansible/issues/220))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump the dependencies group in /.config with 2 updates
([#​219](https://redirect.github.com/ansible/mkdocs-ansible/issues/219))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- chore: pre-commit autoupdate
([#​218](https://redirect.github.com/ansible/mkdocs-ansible/issues/218))
@​[pre-commit-ci\[bot\]](https://redirect.github.com/apps/pre-commit-ci)
- Bump pytest-xdist from 3.6.1 to 3.7.0 in /.config in the dependencies
group
([#​217](https://redirect.github.com/ansible/mkdocs-ansible/issues/217))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump the dependencies group in /.config with 3 updates
([#​216](https://redirect.github.com/ansible/mkdocs-ansible/issues/216))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
- Bump the dependencies group in /.config with 4 updates
([#​215](https://redirect.github.com/ansible/mkdocs-ansible/issues/215))
@​[dependabot\[bot\]](https://redirect.github.com/apps/dependabot)
###
[`v25.6.0`](https://redirect.github.com/ansible/mkdocs-ansible/releases/tag/v25.6.0)
[Compare
Source](https://redirect.github.com/ansible/mkdocs-ansible/compare/v25.5.0...v25.6.0)
#### Major
- Require python>=3.11
([#​214](https://redirect.github.com/ansible/mkdocs-ansible/issues/214))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
#### Bugfixes
- Require mkdocs-material>=9.6.13
([#​213](https://redirect.github.com/ansible/mkdocs-ansible/issues/213))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
###
[`v25.5.0`](https://redirect.github.com/ansible/mkdocs-ansible/releases/tag/v25.5.0)
[Compare
Source](https://redirect.github.com/ansible/mkdocs-ansible/compare/v25.2.0...v25.5.0)
#### Bugfixes
- Remove mkdocs-monorepo-plugin
([#​212](https://redirect.github.com/ansible/mkdocs-ansible/issues/212))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
- Pin down cairosvg<2.8.0 due to mkdocs-material bug
([#​211](https://redirect.github.com/ansible/mkdocs-ansible/issues/211))
[@​ssbarnea](https://redirect.github.com/ssbarnea)
</details>
<details>
<summary>pypa/pipx (pipx)</summary>
###
[`v1.17.7`](https://redirect.github.com/pypa/pipx/releases/tag/1.17.7)
[Compare
Source](https://redirect.github.com/pypa/pipx/compare/1.17.6...1.17.7)
<!-- Release notes generated using configuration in .github/release.yml
at 1.17.7 -->
#### What's Changed
- fix(run): preserve cache key argument boundaries by
[@​januththedev](https://redirect.github.com/januththedev) in
[#​2053](https://redirect.github.com/pypa/pipx/pull/2053)
#### New Contributors
- [@​januththedev](https://redirect.github.com/januththedev) made
their first contribution in
[#​2053](https://redirect.github.com/pypa/pipx/pull/2053)
**Full Changelog**:
<https://github.com/pypa/pipx/compare/1.17.6...1.17.7>
###
[`v1.17.6`](https://redirect.github.com/pypa/pipx/releases/tag/1.17.6)
[Compare
Source](https://redirect.github.com/pypa/pipx/compare/1.17.5...1.17.6)
<!-- Release notes generated using configuration in .github/release.yml
at 1.17.6 -->
#### What's Changed
- docs: fix argument order in the combined inject example by
[@​agammann](https://redirect.github.com/agammann) in
[#​2044](https://redirect.github.com/pypa/pipx/pull/2044)
- docs: fix Git extras install example for current pip by
[@​saitakarcesme](https://redirect.github.com/saitakarcesme) in
[#​2047](https://redirect.github.com/pypa/pipx/pull/2047)
- ci(pre-release): drop unused contents:write permission by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[#​2050](https://redirect.github.com/pypa/pipx/pull/2050)
- 🐛 fix(manifest): make locked tools install on sync by
[@​gaborbernat](https://redirect.github.com/gaborbernat) in
[#​2052](https://redirect.github.com/pypa/pipx/pull/2052)
#### New Contributors
- [@​agammann](https://redirect.github.com/agammann) made their
first contribution in
[#​2044](https://redirect.github.com/pypa/pipx/pull/2044)
- [@​saitakarcesme](https://redirect.github.com/saitakarcesme)
made their first contribution in
[#​2047](https://redirect.github.com/pypa/pipx/pull/2047)
**Full Changelog**:
<https://github.com/pypa/pipx/compare/1.17.5...1.17.6>
###
[`v1.17.5`](https://redirect.github.com/pypa/pipx/releases/tag/1.17.5)
[Compare
Source](https://redirect.github.com/pypa/pipx/compare/1.17.4...1.17.5)
<!-- Release notes generated using configuration in .github/release.yml
at 1.17.5 -->
#### What's Changed
- fix(reinstall): propagate returned failures in reinstall-all by
[@​jakezwang](https://redirect.github.com/jakezwang) in
[#​2043](https://redirect.github.com/pypa/pipx/pull/2043)
#### New Contributors
- [@​jakezwang](https://redirect.github.com/jakezwang) made their
first contribution in
[#​2043](https://redirect.github.com/pypa/pipx/pull/2043)
**Full Changelog**:
<https://github.com/pypa/pipx/compare/1.17.4...1.17.5>
###
[`v1.17.4`](https://redirect.github.com/pypa/pipx/releases/tag/1.17.4)
[Compare
Source](https://redirect.github.com/pypa/pipx/compare/1.17.3...1.17.4)
<!-- Release notes generated using configuration in .github/release.yml
at 1.17.4 -->
#### What's Changed
- fix(upgrade): don't claim 'latest version' for local-path installs by
[@​DawnofGenX](https://redirect.github.com/DawnofGenX) in
[#​2041](https://redirect.github.com/pypa/pipx/pull/2041)
#### New Contributors
- [@​DawnofGenX](https://redirect.github.com/DawnofGenX) made
their first contribution in
[#​2041](https://redirect.github.com/pypa/pipx/pull/2041)
**Full Changelog**:
<https://github.com/pypa/pipx/compare/1.17.3...1.17.4>
</details>
<details>
<summary>j178/prek (prek)</summary>
###
[`v0.5.4`](https://redirect.github.com/j178/prek/blob/HEAD/CHANGELOG.md#054)
[Compare
Source](https://redirect.github.com/j178/prek/compare/v0.5.3...v0.5.4)
Released on 2026-09-28.
##### Highlights
##### Faster builtin hooks
In our end-to-end benchmark, prek is about 38% faster than 0.5.3, with
some builtin
hooks up to 273% faster (`check-yaml`: 273%, `check-json`: 80%,
`check-merge-conflict`: 71%).
##### Enhancements
- Add `include_deleted` to allow hooks to include deleted files
([#​2733](https://redirect.github.com/j178/prek/pull/2733))
- Add `--check` and simplify `end-of-file-fixer`
([#​2764](https://redirect.github.com/j178/prek/pull/2764))
- Add `--check` to `file-contents-sorter`
([#​2765](https://redirect.github.com/j178/prek/pull/2765))
- Add `--check` to `requirements-txt-fixer`
([#​2766](https://redirect.github.com/j178/prek/pull/2766))
- Add `--check` to `trailing-whitespace`
([#​2763](https://redirect.github.com/j178/prek/pull/2763))
- Expose and document `prek util generate-shell-completion`
([#​2727](https://redirect.github.com/j178/prek/pull/2727))
- Support `hide_status` in project and user configuration
([#​2760](https://redirect.github.com/j178/prek/pull/2760))
- Support look-around regex in builtin pattern hooks
([#​2732](https://redirect.github.com/j178/prek/pull/2732))
##### Performance
- Cache the resolved Git executable on macOS
([#​2726](https://redirect.github.com/j178/prek/pull/2726))
- Combine and cache Git repository path queries
([#​2724](https://redirect.github.com/j178/prek/pull/2724))
- Optimize common builtin hook execution
([#​2768](https://redirect.github.com/j178/prek/pull/2768))
- Optimize scanning in `mixed-line-ending` and `trailing-whitespace`
([#​2769](https://redirect.github.com/j178/prek/pull/2769))
- Scan `check-merge-conflict` files in fixed-size blocks
([#​2781](https://redirect.github.com/j178/prek/pull/2781))
- Use SIMD UTF-8 validation in `check-json`, `check-toml`, and
`check-yaml`
([#​2770](https://redirect.github.com/j178/prek/pull/2770))
##### Bug fixes
- Retry transient rename failures on Windows
([#​2756](https://redirect.github.com/j178/prek/pull/2756))
- Use PATH to resolve prek in completion scripts
([#​2719](https://redirect.github.com/j178/prek/pull/2719))
##### Documentation
- Clarify the flow and scope of usage guides
([#​2710](https://redirect.github.com/j178/prek/pull/2710))
- Reorganize usage guides and reference documentation
([#​2709](https://redirect.github.com/j178/prek/pull/2709))
##### Other changes
- Sync latest identify tags
([#​2762](https://redirect.github.com/j178/prek/pull/2762))
##### Contributors
- [@​github-actions](https://redirect.github.com/github-actions)
- [@​j178](https://redirect.github.com/j178)
</details>
<details>
<summary>pycqa/pylint (pycqa/pylint)</summary>
###
[`v4.0.9`](https://redirect.github.com/pylint-dev/pylint/releases/tag/v4.0.9)
[Compare
Source](https://redirect.github.com/pycqa/pylint/compare/v4.0.8...v4.0.9)
## What's new in Pylint 4.0.9?
Release date: 2026-09-23
## Security Fixes
- Someone without access to the configuration or linted code, but with
access
to the cache directory (predictable `PYLINT_HOME` on a multi-user host)
can no
longer write a crafted pickle that will runs arbitrary code when pylint
access its
stat cache. The result cache is now stored as JSON instead of pickle,
preventing code-execution. The workaround is upgrading or not pointing
`PYLINT_HOME`
to an untrusted, shared, or group-writable directory. The default value,
`~/.cache/pylint`,
is writable only by the user running pylint. (CVE with the same
information pending)
## False Positives Fixed
- Fixed a false positive for `no-self-use` on a method that only uses
`self` before a locally defined class (or other nested method), because
the checker's could-be-a-function tracking state was not restored after
visiting the nested method.
Closes
[#​3705](https://redirect.github.com/pycqa/pylint/issues/3705)
- Fix a false positive for :ref:`not-callable` when calling functions
constructed with
`types.FunctionType` or `types.LambdaType`.
Closes
[#​7500](https://redirect.github.com/pycqa/pylint/issues/7500)
- Fix a false positive for `unnecessary-direct-lambda-call` when a
directly called
lambda in a class body wraps a comprehension containing an assignment
expression.
PEP 572 makes that a `SyntaxError` without the lambda's scope, so
following the
message produced code that would not compile.
Closes
[#​9294](https://redirect.github.com/pycqa/pylint/issues/9294)
- Fix a false positive for :ref:`unnecessary-ellipsis` when an ellipsis
is the
sole body statement of a method defined on a `Protocol`.
Closes
[#​9319](https://redirect.github.com/pycqa/pylint/issues/9319)
- Fix a false positive for :ref:`bad-exception-cause` when the bases of
the class
being raised from cannot be inferred, such as an exception deriving from
a
C ex
> ❗ **Important**
>
> ✂ PR body was truncated to here.
</details>
---
### Configuration
📅 **Schedule**: (in timezone UTC)
- Branch creation
- "before 4am on monday"
- Automerge
- Between 12:00 AM and 03:59 AM, only on Monday (`* 0-3 * * 1`)
🚦 **Automerge**: Enabled.
♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.
👻 **Immortal**: This PR will be recreated if closed unmerged. Get
[config
help](https://redirect.github.com/renovatebot/renovate/discussions) if
that's undesired.
---
- [ ] <!-- 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/ansible/molecule).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0NC4xMTIuMCIsInVwZGF0ZWRJblZlciI6IjQ0LjExMi4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJjaG9yZSIsImRlcGVuZGVuY2llcyJdfQ==-->
<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit
* **Chores**
* Updated maintenance and code-quality tooling to newer pinned versions
and adjusted documentation checks. These changes affect project
maintenance and validation only; no user-facing functionality changed.
No new capabilities or changes to the app experience are included in
this update.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Hrithik-Gavankar <hgavanka@redhat.com>
parthea
pushed a commit
to googleapis/google-cloud-python
that referenced
this pull request
Oct 13, 2026
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-->
parthea
pushed a commit
to googleapis/google-cloud-python
that referenced
this pull request
Oct 16, 2026
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.32.7` → `==4.2.0` |  |  | --- ### Release Notes <details> <summary>tox-dev/py-filelock (filelock)</summary> ### [`v4.2.0`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.2.0) [Compare Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.1.2...4.2.0) <!-- Release notes generated using configuration in .github/release.yaml at 4.2.0 --> #### What's Changed - fix(strict): skip Windows claims pending deletion by [@​gaborbernat](https://redirect.github.com/gaborbernat) in [tox-dev/filelock#829](https://redirect.github.com/tox-dev/filelock/pull/829) - perf(import): defer asyncio and sqlite3 loading by [@​gaborbernat](https://redirect.github.com/gaborbernat) in [tox-dev/filelock#831](https://redirect.github.com/tox-dev/filelock/pull/831) **Full Changelog**: <tox-dev/filelock@4.1.2...4.2.0> ### [`v4.1.2`](https://redirect.github.com/tox-dev/filelock/releases/tag/4.1.2) [Compare Source](https://redirect.github.com/tox-dev/py-filelock/compare/4.1.1...4.1.2) <!-- Release notes generated using configuration in .github/release.yaml at 4.1.2 --> #### What's Changed - fix: prioritize S_ISDIR check in raise_on_not_writable_file by [@​feiiiiii5](https://redirect.github.com/feiiiiii5) in [tox-dev/filelock#822](https://redirect.github.com/tox-dev/filelock/pull/822) - 🔧 chore(security): enroll in Anthropic OSS Scanner by [@​gaborbernat](https://redirect.github.com/gaborbernat) in [tox-dev/filelock#823](https://redirect.github.com/tox-dev/filelock/pull/823) - 📝 docs(security): add an email reporting contact by [@​gaborbernat](https://redirect.github.com/gaborbernat) in [tox-dev/filelock#825](https://redirect.github.com/tox-dev/filelock/pull/825) - docs: hash all keys in the lock filename recipe by [@​xiehuanyi](https://redirect.github.com/xiehuanyi) in [tox-dev/filelock#824](https://redirect.github.com/tox-dev/filelock/pull/824) - fix(read-write): use sqlite_master for read lock schema probe on older SQLite by [@​DawnofGenX](https://redirect.github.com/DawnofGenX) in [tox-dev/filelock#827](https://redirect.github.com/tox-dev/filelock/pull/827) - fix(rw): forget the async lock's worker after fork by [@​gaborbernat](https://redirect.github.com/gaborbernat) in [tox-dev/filelock#828](https://redirect.github.com/tox-dev/filelock/pull/828) #### New Contributors - [@​xiehuanyi](https://redirect.github.com/xiehuanyi) made their first contribution in [tox-dev/filelock#824](https://redirect.github.com/tox-dev/filelock/pull/824) **Full Changelog**: <tox-dev/filelock@4.1.1...4.1.2> ### [`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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@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**: <tox-dev/filelock@3.32.7...4.0.0> </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:eyJjcmVhdGVkSW5WZXIiOiI0NC4xNTUuMiIsInVwZGF0ZWRJblZlciI6IjQ0LjE1Ni4zIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
FileLock/SoftFileLock(and async variants) accepted negative, NaN, or non-numericpoll_intervalvalues and only failed later insidetime.sleep/asyncio.sleepwith a cryptic error.Fix
Validate with
_resolve_poll_intervalat construction, on the property setter, and onacquire()/ asyncacquire(), matching the existing SoftReadWriteLock timing checks (finite, non-negative).Test plan
tests/test_poll_interval_validation.py(80 passed)