Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix lock hang on Windows #231

Merged
merged 6 commits into from Apr 18, 2023
Merged

Fix lock hang on Windows #231

merged 6 commits into from Apr 18, 2023

Conversation

TheMatt2
Copy link
Contributor

Solves an issue where FileLock and SoftFileLock could hang sit in an infinite loop if PermissionError or OSError is encountered on Windows while trying to lock the file.

Originally mentioned on #147.

On Windows, if the name of the file given is invalid, such as forgetting to to double backspace on windows, the EINVAL message is not accounted for in the error handling.

import filelock

filename = "C:\path\to\lock\but\backslash\is\not\escaped"
with filelock.FileLock(filename):
    pass # waits forever and never completes

If you had just tried to open the file, you would see the following message:

filename = "C:\path\to\lock\but\backslash\is\not\escaped"
f = open(filename)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 22] Invalid argument: 'C:\\path\to\\lock\x08ut\x08ackslash\\is\not\\escaped'

The issue that is being danced around is it seems PermissionError will randomly occur on os.open() when trying to open the lock file. I have been unable to figure out why Windows raises PermissionError, but that seems somewhat a mute point.

https://github.com/tox-dev/py-filelock/blob/dceb9e5b7e4edd232435521f20efe189fe88f71b/src/filelock/_windows.py#L24-L28

The problem is any error raised, other than the one explicitly handled, ignoring other errors.
This is corrected by ignoring some explicit errors, but allowing other errors to be raised.

This also adds a check for if the path of the lock file is a directory. On Windows, trying to open a path that is a directory as a file would raise a PermissionError that can't be differentiated from the exception that is sometimes raised from just trying to open the file in the middle of a bunch of locking and unlocking.

Renamed utils.raise_on_exist_ro_file(filename) to utils.raise_unwritable_file(filename) to better describe what is does, now that the directory check has been added to it.

@TheMatt2
Copy link
Contributor Author

Yes, flake. "unwritable" is a word...

@TheMatt2
Copy link
Contributor Author

TheMatt2 commented Apr 17, 2023

I'm actually not sure why I'm getting the flake8 error

tests/test_filelock.py:137:2: PT006 wrong name(s) type in @pytest.mark.parametrize, expected tuple

Anyone have suggestions? Found it

https://github.com/m-burst/flake8-pytest-style/blob/master/docs/rules/PT006.md

Should be formatted as a tuple... which I didn't know pytest supported. Go figure.

TheMatt2 and others added 5 commits April 18, 2023 09:05
Prevents specifying an invalid file from causing filelock to deadlock
Fix null filename error handling.

It seems Python uses "embedded null byte" and
"embedded null character" interchangably.
So the check allows either to be returned
@gaborbernat gaborbernat force-pushed the winbugfix branch 4 times, most recently from b4d5206 to 2b5e1c7 Compare April 18, 2023 16:09
@gaborbernat gaborbernat force-pushed the winbugfix branch 3 times, most recently from 15fd4dc to 975c1aa Compare April 18, 2023 16:16
Signed-off-by: Bernát Gábor <bgabor8@bloomberg.net>
@gaborbernat gaborbernat merged commit 9c44c11 into tox-dev:main Apr 18, 2023
34 checks passed
@TheMatt2 TheMatt2 deleted the winbugfix branch May 30, 2023 00:29
matfax pushed a commit to matfax/mutapath that referenced this pull request Jul 9, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [filelock](https://togithub.com/tox-dev/py-filelock) | `3.0.12` ->
`3.12.2` |
[![age](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/compatibility-slim/3.0.12)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/filelock/3.12.2/confidence-slim/3.0.12)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>tox-dev/py-filelock (filelock)</summary>

###
[`v3.12.2`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.12.2)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.12.1...3.12.2)

#### What's Changed

- Restore 'if TYPE_CHECKING' syntax for FileLock definition by
[@&#8203;dlax](https://togithub.com/dlax) in
[tox-dev/filelock#245

#### New Contributors

- [@&#8203;dlax](https://togithub.com/dlax) made their first
contribution in
[tox-dev/filelock#245

**Full Changelog**:
tox-dev/filelock@3.12.1...3.12.2

###
[`v3.12.1`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.12.1)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.12.0...3.12.1)

##### What's Changed

- Add trusted-publish by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#236
- Add 3.12 support by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#237
- Bump pypa/gh-action-pypi-publish from 1.8.5 to 1.8.6 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[tox-dev/filelock#239
- git ls-files -z -- .github/workflows/check.yml | xargs -0 sed -i
's|3.12.0-alpha.7|3.12.0-beta.1|g' by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#243
- Use ruff by [@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#244
- Fix test_bad_lock_file for other OSes by
[@&#8203;TheMatt2](https://togithub.com/TheMatt2) in
[tox-dev/filelock#242

**Full Changelog**:
tox-dev/filelock@3.12.0...3.12.1

###
[`v3.12.0`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.12.0)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.11.0...3.12.0)

#### What's Changed

- Fix:
[#&#8203;225](https://togithub.com/tox-dev/py-filelock/issues/225) :Get
rid of warning about inability to link to \_thread.\_local. by
[@&#8203;csm10495](https://togithub.com/csm10495) in
[tox-dev/filelock#226
- Bump deps and tools by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#228
- Add umask check to tests so umask 002 is valid by
[@&#8203;TheMatt2](https://togithub.com/TheMatt2) in
[tox-dev/filelock#227
- Fix lock hang on Windows by
[@&#8203;TheMatt2](https://togithub.com/TheMatt2) in
[tox-dev/filelock#231
- Conditionally disable/enable thread-local lock behavior. by
[@&#8203;csm10495](https://togithub.com/csm10495) in
[tox-dev/filelock#232

**Full Changelog**:
tox-dev/filelock@3.11.0...3.12.0

###
[`v3.11.0`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.11.0)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.10.7...3.11.0)

#### What's Changed

- Bump pypa/gh-action-pypi-publish from 1.8.3 to 1.8.5 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[tox-dev/filelock#218
- Fix
[#&#8203;220](https://togithub.com/tox-dev/py-filelock/issues/220):
Allow filelock test thread to catch any exceptions by
[@&#8203;TheMatt2](https://togithub.com/TheMatt2) in
[tox-dev/filelock#221
- Bump deps and tools by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#222
- Run more pypy versions in CI but without coverage by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#224
- Make the lock a thread local variable by
[@&#8203;csm10495](https://togithub.com/csm10495) in
[tox-dev/filelock#219

#### New Contributors

- [@&#8203;csm10495](https://togithub.com/csm10495) made their first
contribution in
[tox-dev/filelock#219

**Full Changelog**:
tox-dev/filelock@3.10.7...3.11.0

###
[`v3.10.7`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.10.7)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.10.6...3.10.7)

#### What's Changed

- use fchmod by [@&#8203;jfennick](https://togithub.com/jfennick) in
[tox-dev/filelock#214

#### New Contributors

- [@&#8203;jfennick](https://togithub.com/jfennick) made their first
contribution in
[tox-dev/filelock#214

**Full Changelog**:
tox-dev/filelock@3.10.6...3.10.7

###
[`v3.10.6`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.10.6)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.10.5...3.10.6)

#### What's Changed

- Bugfix/147 by [@&#8203;jahrules](https://togithub.com/jahrules) in
[tox-dev/filelock#213

**Full Changelog**:
tox-dev/filelock@3.10.5...3.10.6

###
[`v3.10.5`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.10.5)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.10.4...3.10.5)

#### What's Changed

- proposed fix for issue
[#&#8203;67](https://togithub.com/tox-dev/py-filelock/issues/67) by
[@&#8203;jahrules](https://togithub.com/jahrules) in
[tox-dev/filelock#212

**Full Changelog**:
tox-dev/filelock@3.10.4...3.10.5

###
[`v3.10.4`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.10.4)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.10.3...3.10.4)

#### What's Changed

- updated os.open to preserve mode by
[@&#8203;jahrules](https://togithub.com/jahrules) in
[tox-dev/filelock#211

**Full Changelog**:
tox-dev/filelock@3.10.3...3.10.4

###
[`v3.10.3`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.10.3)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.10.2...3.10.3)

#### What's Changed

- Bump pypa/gh-action-pypi-publish from 1.8.1 to 1.8.3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[tox-dev/filelock#207
- bug fix by [@&#8203;jahrules](https://togithub.com/jahrules) in
[tox-dev/filelock#209

**Full Changelog**:
tox-dev/filelock@3.10.2...3.10.3

###
[`v3.10.2`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.10.2)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.10.1...3.10.2)

#### What's Changed

- changed from os.umask to os.chmod by
[@&#8203;jahrules](https://togithub.com/jahrules) in
[tox-dev/filelock#206

**Full Changelog**:
tox-dev/filelock@3.10.1...3.10.2

###
[`v3.10.1`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.10.1)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.10.0...3.10.1)

#### What's Changed

- Bump pypa/gh-action-pypi-publish from 1.7.1 to 1.8.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[tox-dev/filelock#200
- Bump deps and tools by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#201
- Properly pickle of Timeout objects + test cases by
[@&#8203;TheMatt2](https://togithub.com/TheMatt2) in
[tox-dev/filelock#203

#### New Contributors

- [@&#8203;TheMatt2](https://togithub.com/TheMatt2) made their first
contribution in
[tox-dev/filelock#203

**Full Changelog**:
tox-dev/filelock@3.10.0...3.10.1

###
[`v3.10.0`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.10.0)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.9.1...3.10.0)

#### What's Changed

- added multiuser support and associated tests by
[@&#8203;jahrules](https://togithub.com/jahrules) in
[tox-dev/filelock#192

#### New Contributors

- [@&#8203;jahrules](https://togithub.com/jahrules) made their first
contribution in
[tox-dev/filelock#192

**Full Changelog**:
tox-dev/filelock@3.9.1...3.10.0

###
[`v3.9.1`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.9.1)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.9.0...3.9.1)

#### What's Changed

- \[pre-commit.ci] pre-commit autoupdate by
[@&#8203;pre-commit-ci](https://togithub.com/pre-commit-ci) in
[tox-dev/filelock#188
- Bump deps and tools by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#193
- Bump deps and tools by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#197
- Bump pypa/gh-action-pypi-publish from 1.6.4 to 1.7.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[tox-dev/filelock#198
- use time.perf_counter instead of time.monotonic by
[@&#8203;zpz](https://togithub.com/zpz) in
[tox-dev/filelock#194

#### New Contributors

- [@&#8203;zpz](https://togithub.com/zpz) made their first contribution
in
[tox-dev/filelock#194

**Full Changelog**:
tox-dev/filelock@3.9.0...3.9.1

###
[`v3.9.0`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.9.0)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.8.2...3.9.0)

#### What's Changed

- Move to hatchling build backend by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#185

**Full Changelog**:
tox-dev/filelock@3.8.2...3.9.0

###
[`v3.8.2`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.8.2)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.8.1...3.8.2)

#### What's Changed

- Bump pypa/gh-action-pypi-publish from 1.5.1 to 1.6.1 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[tox-dev/filelock#178
- Update the license classifier to "Unlicense" by
[@&#8203;jond01](https://togithub.com/jond01) in
[tox-dev/filelock#180

#### New Contributors

- [@&#8203;jond01](https://togithub.com/jond01) made their first
contribution in
[tox-dev/filelock#180

**Full Changelog**:
tox-dev/filelock@3.8.1...3.8.2

###
[`v3.8.1`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.8.1)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.8.0...3.8.1)

#### What's Changed

- \[pre-commit.ci] pre-commit autoupdate by
[@&#8203;pre-commit-ci](https://togithub.com/pre-commit-ci) in
[tox-dev/filelock#166
- link to flufl.lock by [@&#8203;dholth](https://togithub.com/dholth) in
[tox-dev/filelock#167
- \[pre-commit.ci] pre-commit autoupdate by
[@&#8203;pre-commit-ci](https://togithub.com/pre-commit-ci) in
[tox-dev/filelock#168
- \[pre-commit.ci] pre-commit autoupdate by
[@&#8203;pre-commit-ci](https://togithub.com/pre-commit-ci) in
[tox-dev/filelock#169
- \[pre-commit.ci] pre-commit autoupdate by
[@&#8203;pre-commit-ci](https://togithub.com/pre-commit-ci) in
[tox-dev/filelock#170
- fix BaseFileLock.timeout's getter/setter being obscured by itself by
[@&#8203;dearfl](https://togithub.com/dearfl) in
[tox-dev/filelock#172
- Fix mypy fails understanding FileLock by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#177

#### New Contributors

- [@&#8203;dholth](https://togithub.com/dholth) made their first
contribution in
[tox-dev/filelock#167
- [@&#8203;dearfl](https://togithub.com/dearfl) made their first
contribution in
[tox-dev/filelock#172

**Full Changelog**:
tox-dev/filelock@3.8.0...3.8.1

###
[`v3.8.0`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.8.0)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.7.1...3.8.0)

#### What's Changed

- \[pre-commit.ci] pre-commit autoupdate by
[@&#8203;pre-commit-ci](https://togithub.com/pre-commit-ci) in
[tox-dev/filelock#149
- Bump actions/upload-artifact from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[tox-dev/filelock#154
- Bump actions/download-artifact from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[tox-dev/filelock#152
- Bump pre-commit/action from 2.0.3 to 3.0.0 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[tox-dev/filelock#151
- Bump actions/checkout from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[tox-dev/filelock#153
- Bump actions/setup-python from 2 to 4 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[tox-dev/filelock#150
- Add timeout unit to docstrings by
[@&#8203;jnordberg](https://togithub.com/jnordberg) in
[tox-dev/filelock#148
- Unify badges style by
[@&#8203;DeadNews](https://togithub.com/DeadNews) in
[tox-dev/filelock#155
- \[pre-commit.ci] pre-commit autoupdate by
[@&#8203;pre-commit-ci](https://togithub.com/pre-commit-ci) in
[tox-dev/filelock#156
- \[pre-commit.ci] pre-commit autoupdate by
[@&#8203;pre-commit-ci](https://togithub.com/pre-commit-ci) in
[tox-dev/filelock#157
- Check 3.11 support by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#158
- \[pre-commit.ci] pre-commit autoupdate by
[@&#8203;pre-commit-ci](https://togithub.com/pre-commit-ci) in
[tox-dev/filelock#159
- Bump dependencies by
[@&#8203;gaborbernat](https://togithub.com/gaborbernat) in
[tox-dev/filelock#160
- \[pre-commit.ci] pre-commit autoupdate by
[@&#8203;pre-commit-ci](https://togithub.com/pre-commit-ci) in
[tox-dev/filelock#162

#### New Contributors

- [@&#8203;dependabot](https://togithub.com/dependabot) made their first
contribution in
[tox-dev/filelock#154
- [@&#8203;jnordberg](https://togithub.com/jnordberg) made their first
contribution in
[tox-dev/filelock#148
- [@&#8203;DeadNews](https://togithub.com/DeadNews) made their first
contribution in
[tox-dev/filelock#155

**Full Changelog**:
tox-dev/filelock@3.7.1...3.8.0

###
[`v3.7.1`](https://togithub.com/tox-dev/py-filelock/compare/3.7.0...3.7.1)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.7.0...3.7.1)

###
[`v3.7.0`](https://togithub.com/tox-dev/py-filelock/compare/3.6.0...3.7.0)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.6.0...3.7.0)

###
[`v3.6.0`](https://togithub.com/tox-dev/py-filelock/compare/3.5.1...3.6.0)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.5.1...3.6.0)

###
[`v3.5.1`](https://togithub.com/tox-dev/py-filelock/compare/3.5.0...3.5.1)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.5.0...3.5.1)

###
[`v3.5.0`](https://togithub.com/tox-dev/py-filelock/compare/3.4.2...3.5.0)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.4.2...3.5.0)

###
[`v3.4.2`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.4.2):
Drop Python 3.6 support

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.4.1...3.4.2)

###
[`v3.4.1`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.4.1):
Add stacklevel to deprecation warnings for argument name change

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.4.0...3.4.1)

###
[`v3.4.0`](https://togithub.com/tox-dev/py-filelock/compare/3.3.2...3.4.0)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.3.2...3.4.0)

###
[`v3.3.2`](https://togithub.com/tox-dev/py-filelock/compare/3.3.1...3.3.2)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.3.1...3.3.2)

###
[`v3.3.1`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.3.1):
Keep filelock logger as not set

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.3.0...3.3.1)

###
[`v3.3.0`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.3.0):
Drop python 2.7+3.5 support and add type annotations

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.2.1...3.3.0)

###
[`v3.2.1`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.2.1):
New documentation and enable logging of our logger on debug level

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.2.0...3.2.1)

###
[`v3.2.0`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.2.0)

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/3.1.0...3.2.0)

1. [#&#8203;96](https://togithub.com/tox-dev/py-filelock/issues/96) -
Raise when trying to acquire in R/O or missing folder
2. [#&#8203;95](https://togithub.com/tox-dev/py-filelock/issues/95) -
Move log from info to debug

###
[`v3.1.0`](https://togithub.com/tox-dev/py-filelock/releases/tag/3.1.0):
Move from module file to package

[Compare
Source](https://togithub.com/tox-dev/py-filelock/compare/v3.0.12...3.1.0)

</details>

---

### Configuration

📅 **Schedule**: 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 has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/matfax/mutapath).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNi41LjMiLCJ1cGRhdGVkSW5WZXIiOiIzNi41LjMiLCJ0YXJnZXRCcmFuY2giOiJtYWluIn0=-->

Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants