proper-lockfile is a Node.js lockfile utility for coordinating access between processes on a local or network file system. It provides async and sync functions to lock a file, unlock it, and check whether it is locked or stale, using an atomic `mkdir` strategy and periodic `mtime` updates.
Project status
- Maintenance status: The repository appears quiet/dormant relative to today, with the last upstream push on 2023-10-25 and the most recent published updates listed at v4.1.2 (2021-01-25). There is no evidence here of ongoing frequent work since then.
- Update cadence: Historically, updates were more frequent during 2017 to 2021 (several tags between 2017-2019, then v4.1.1 in 2019 and v4.1.2 in 2021), but there is a multi-year gap in the visible tagged update history (2021 to today).
AI summary generated
Recent updates
v4.1.2
Release v4.1.2 updates the library version and makes dependency-related changes. The only user-facing note present in the repository changelog is a bug fix related to Node 14 and graceful-fs, while the provided publisher release notes are empty.
Breakingv4.1.1
v4.1.1 introduces a filesystem mtime precision probe to improve how proper-lockfile determines lock freshness and whether a lock update still “belongs” to the current owner. The change adds a new module (lib/mtime-precision.js) and refactors lib/lockfile.js to use precise mtime handling for both lock acquisition and periodic lock refresh.
v4.1.0
Release v4.1.0 was published on 2019-03-18, but the publisher did not include any release notes or change log details. As a result, there is no documented information here about new features, bug fixes, breaking changes, or dependency updates for this version.
v4.0.0
Version 4.0.0 introduces a more robust staleness check for lockfiles, especially around scenarios like system sleep or a busy event loop. It also includes a small fix to the error message text when a lock is already held.
Breakingv3.2.0
v3.2.0 adds support for customizing the lockfile location via a new `lockfilePath` option. The core lock/unlock logic was updated to consistently use this custom path for creation, checking, updating `mtime`, and cleanup on process exit. No publisher release notes were provided in the release metadata for this version.
Featuresv3.1.0
v3.1.0 focuses on improving lockfile cleanup behavior during process termination by integrating the signal-exit package. It also updates the retry dependency and refreshes several development tooling and CI-related checks.
v3.0.2
v3.0.2 does not include any release-note content, and the diff shows no changes to the core lockfile implementation. The updates are limited to package metadata (version, homepage/repo URL), minor README wording, and several test-related adjustments to cleanup and stress timing.
v3.0.1
v3.0.1 primarily changes the module export behavior so that requiring the package allows calling it directly, and updates documentation/tests to match. It also bumps a development dependency (execa) as reflected in package-lock.json. No release notes were provided by the publisher for this version.
Breakingv3.0.0
v3.0.0 is a major refactor of the library’s locking implementation, reorganizing the code into separate modules and introducing an adapter layer for Promise and sync support. It also updates the public API to be Promise-first, and adds explicit sync APIs (lockSync, unlockSync, checkSync) with different option validation rules.
Featuresv2.0.1
Release v2.0.1 was published on 2017-04-24, but no release notes were provided by the publisher. As a result, there is no explicit information available about new features, bug fixes, security fixes, breaking changes, or migration steps in this release.