pkgsrc-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: pkgsrc/devel/py-filelock
Module Name: pkgsrc
Committed By: wiz
Date: Sun Nov 1 21:40:33 UTC 2026
Modified Files:
pkgsrc/devel/py-filelock: Makefile distinfo
Log Message:
py-filelock: update to 4.2.6.
4.2.6 (2026-10-31)
Fixed
=====
- Fix a race in :class:`~filelock.SoftFileLock`, :class:`~filelock.MarkerSoftFileLock` and
:class:`~filelock.SoftFileLease` when three or more contenders reclaim a dead marker. The race could strand a live
holder's marker under a break name, leaving the lock unusable or admitting a second holder. Contenders now recheck the
marker before exchanging names and unwind nested exchanges in order. If the filesystem refuses a return exchange, the
contender leaves its marker at the lock path for later recovery (:pr:`899`) by :user:`dxbjavid` and
:user:`gaborbernat`.
4.2.5 (2026-10-30)
Fixed
=====
- :meth:`~filelock.BaseFileLock.acquire` and :meth:`~filelock.BaseAsyncFileLock.acquire` raise :class:`TypeError` for a
*blocking* that is not a :class:`bool`, as the constructor and the ``blocking`` setter already do. A truthy value such
as the string ``"false"`` used to count as ``True``, so a call meant as a single attempt waited for the instance's
``timeout``, and without a limit at the default ``-1`` (:pr:`870`) by :user:`simpleqt` and :user:`gaborbernat`.
- A :class:`~filelock.SoftFileLock` acquisition whose first read of its new marker's identity failed reads it again
before rolling back. On Windows the rollback could otherwise not recognize the marker it had created, and the empty
marker it left blocked the path for every later acquisition, since no contender breaks an empty marker (:pr:`869`) by
:user:`simpleqt` and :user:`gaborbernat`.
- A ``fork()`` child of a process holding a :class:`~filelock.SoftFileLease` starts from an unheld claim. It used to
inherit the parent's token, last compromise and heartbeat, so :attr:`~filelock.SoftFileLease.token` and
:attr:`~filelock.SoftFileLease.compromise` reported a claim the child never held while ``is_locked`` reported it
unheld (:pr:`868`) by :user:`dxbjavid` and :user:`gaborbernat`.
- A nested acquire of a held :class:`~filelock.FileLock` or :class:`~filelock.SoftFileLock` no longer creates the lock
file's parent directory. After a rename of that directory during the hold, the nested acquire recreated the old name,
and when a file had taken the name it raised :class:`FileExistsError` and left the hold's recursion count incremented
(:pr:`878`) by :user:`0x5t4l1n` and :user:`gaborbernat`.
- Fix :class:`ReadWriteLock <filelock.ReadWriteLock>` failing every acquire with "link directory ... was replaced while
opening" in a group-writable directory whose inherited ACL, such as an NFSv4 one on ZFS, opens the link directory to
the group. The lock now closes the empty link directory to its owner, and where the filesystem refuses that, such as
ZFS with ``aclmode=restricted``, it names the directory to make writable by its owner only (:pr:`898`) by
:user:`gaborbernat`.
- Fix :class:`~filelock.SoftFileLock`, :class:`~filelock.MarkerSoftFileLock` and :class:`~filelock.SoftFileLease`
raising ``OverflowError`` out of ``acquire()``, or never reclaiming a dead holder's lock, when a stranded restore
claim beside the lock names a process number outside ``1..2**31-1`` or spells it in non-ASCII digits. Such a claim is
now ignored, as no filelock writes one (:pr:`871`) by :user:`dxbjavid` and :user:`gaborbernat`.
- Fix soft locks on Windows keeping the marker of a holder that has exited while another process still holds a handle to
it, such as a parent's ``subprocess.Popen`` after ``wait()`` or ``multiprocessing.Process`` after ``join()``.
Acquiring such a lock with the default ``timeout=-1`` waited forever (:pr:`874`) by :user:`nk-batman21`.
- Fix the read-only reopen of a lock file this account cannot write resolving a relative path against the working
directory of the moment. A ``chdir`` between the refused ``O_RDWR`` open and the reopen made the acquisition wait on a
file that is not there, or probe one in another directory. The reopen now uses the path the acquisition pinned
(:pr:`889`) by :user:`dxbjavid` and :user:`gaborbernat`.
- Handle ``EMLINK``, the error FreeBSD reports when a no-follow open refuses a symlink, in a soft reader/writer lock's
protocol tree, so heartbeat reports lost ownership there rather than a transient refresh error (:pr:`866`) by
:user:`pacocartones` and :user:`gaborbernat`.
- Resolving :class:`~filelock.ReadWriteLock` or :class:`~filelock.AsyncReadWriteLock` raises the :exc:`ImportError` when
a module other than Python's :mod:`sqlite3` is missing, as in a frozen application that left out a filelock submodule.
The names are ``None`` only without SQLite (:pr:`880`) by :user:`pintu544` and :user:`gaborbernat`.
Documentation
=============
- The lock-probing recipe in the how-to guide probes with ``blocking=False`` instead of a tiny ``timeout`` (:pr:`873`)
by :user:`tongwentao` and :user:`gaborbernat`.
Packaging
=========
- Releases now run on the shared tox-dev/github-workflows pipeline, with a locked release toolchain and generated GitHub
Release notes (:pr:`885`) by :user:`gaborbernat`.
To generate a diff of this commit:
cvs rdiff -u -r1.67 -r1.68 pkgsrc/devel/py-filelock/Makefile
cvs rdiff -u -r1.66 -r1.67 pkgsrc/devel/py-filelock/distinfo
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: pkgsrc/devel/py-filelock/Makefile
diff -u pkgsrc/devel/py-filelock/Makefile:1.67 pkgsrc/devel/py-filelock/Makefile:1.68
--- pkgsrc/devel/py-filelock/Makefile:1.67 Mon Oct 26 18:20:26 2026
+++ pkgsrc/devel/py-filelock/Makefile Sun Nov 1 21:40:33 2026
@@ -1,6 +1,6 @@
-# $NetBSD: Makefile,v 1.67 2026/10/26 18:20:26 wiz Exp $
+# $NetBSD: Makefile,v 1.68 2026/11/01 21:40:33 wiz Exp $
-DISTNAME= filelock-4.2.4
+DISTNAME= filelock-4.2.6
PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
CATEGORIES= devel python
MASTER_SITES= ${MASTER_SITE_PYPI:=f/filelock/}
@@ -11,6 +11,7 @@ COMMENT= Platform independent file lock
LICENSE= unlicense
TOOL_DEPENDS+= ${PYPKGPREFIX}-hatch-vcs>=0.5:../../devel/py-hatch-vcs
+TOOL_DEPENDS+= ${PYPKGPREFIX}-hatch-fancy-pypi-readme>=0.5:../../devel/py-hatch-fancy-pypi-readme
TOOL_DEPENDS+= ${PYPKGPREFIX}-hatchling>=1.29:../../devel/py-hatchling
TEST_DEPENDS+= ${PYPKGPREFIX}-covdefaults>=2.3:../../devel/py-covdefaults
TEST_DEPENDS+= ${PYPKGPREFIX}-diff-cover>=10.2:../../misc/py-diff-cover
@@ -23,8 +24,8 @@ TEST_DEPENDS+= ${PYPKGPREFIX}-virtualenv
USE_LANGUAGES= # none
-# as of 4.2.4
-# 2694 passed, 258 skipped
+# as of 4.2.6
+# 2731 passed, 286 skipped
.include "../../lang/python/wheel.mk"
.include "../../mk/bsd.pkg.mk"
Index: pkgsrc/devel/py-filelock/distinfo
diff -u pkgsrc/devel/py-filelock/distinfo:1.66 pkgsrc/devel/py-filelock/distinfo:1.67
--- pkgsrc/devel/py-filelock/distinfo:1.66 Mon Oct 26 18:20:26 2026
+++ pkgsrc/devel/py-filelock/distinfo Sun Nov 1 21:40:33 2026
@@ -1,5 +1,5 @@
-$NetBSD: distinfo,v 1.66 2026/10/26 18:20:26 wiz Exp $
+$NetBSD: distinfo,v 1.67 2026/11/01 21:40:33 wiz Exp $
-BLAKE2s (filelock-4.2.4.tar.gz) = bbc73027b85a572e4acef284fd4bbcd869164bc70aed7d36471aaaf1369b18cc
-SHA512 (filelock-4.2.4.tar.gz) = f2075ff0d0ace0f91e867d157eef5fca605eb8989c11f44d09617a7e26bdbadf318e6f0a255721cd5700a291a082a96b0f8ed49a67abf891124f19a53c10da33
-Size (filelock-4.2.4.tar.gz) = 652444 bytes
+BLAKE2s (filelock-4.2.6.tar.gz) = fb7ee354a72aa0d079f98c55bf3c528c343328de7f997ed40dab3f5e8b35af49
+SHA512 (filelock-4.2.6.tar.gz) = 6e769888224075e03584cc4555bb3a97052fef6f2607792dbac5203a949217b896568368b8d53a9800f8d97fe1a198c79b605d424235f81d9dbac30162707a36
+Size (filelock-4.2.6.tar.gz) = 661339 bytes
Home |
Main Index |
Thread Index |
Old Index