watchfiles is a Python package for simple, modern, high performance file watching and code reload. It provides synchronous and async APIs to yield file change events, and includes helpers to run or reload processes when files change. It uses Rust for underlying file system notifications and is useful for development workflows such as hot reloading.
Project status
- Actively maintained, with a very recent update push on 2026-05-18 and continued versioning through 2026-05-18 (v1.2.0), following prior updates in 2025-10-14 (v1.1.1) and 2025-06-15 (v1.1.0).
- Update cadence appears steady, with roughly 3 to 6 month gaps between the last few versions (v1.0.x in early 2025, v1.1.x mid to late 2025, then v1.2.0 in May 2026).
AI summary generated 2 weeks ago
Recent updates
v1.2.0
2 weeks agov1.2.0 updates watchfiles to require Python 3.10 through 3.15, and increases the Rust minimum version (MVRV) to 1.83. It also expands CI wheel coverage (including riscv64 manylinux) and includes work described as improved type safety and error handling.
BreakingFeaturesv1.1.1
7 months agov1.1.1 mainly targets adding Python 3.14 support for Windows CI builds, plus some general release prep. However, the code diff also includes changes in the Rust/PyO3 integration layer and updates to several dependencies, including a PyO3 major minor bump.
Featuresv1.1.0
11 months agov1.1.0 primarily updates the Rust-side dependencies used to implement watchfiles, including crossbeam-channel, notify, and PyO3, and adjusts CI/build matrices for newer Python versions. The release also bumps the Rust MSRV to 1.77 and adds/adjusts test coverage for some platforms.
Breakingv1.0.5
4/8/2025v1.0.5 primarily updates build and packaging dependencies, most notably bumping pyo3 from 0.23.3 to 0.24.1, and revving the crate version. The diff provided shows changes limited to CI workflow formatting, Cargo and lockfiles, and publish-related automation.
v1.0.4
1/10/2025v1.0.4 primarily includes bug fixes related to CI signaling, and a correctness fix for how file change events are locked and cleared to avoid data loss. It also upgrades the Rust dependency stack used for notifications (notify 7.0.0) and moves the project build/test tooling to uv, including adding free-threading tests for Python 3.13.
v1.0.3
12/10/2024v1.0.3 is a very small release focused on fixing documentation deployment. The release notes do not mention any runtime API changes, and the code diff appears limited to CI documentation publishing configuration and a crate version bump.
v1.0.2
12/10/2024Release v1.0.2 primarily addresses a PyPI publishing issue reported for v1.0.1. The diff shows a change to the CI publish workflow behavior, plus version/lockfile metadata updates.
v1.0.1
12/10/2024v1.0.1 primarily updates build and dependency versions. It bumps PyO3 from 0.23.1 to 0.23.3 (Rust side) and updates some GitHub Actions workflow versions used in CI and publishing.
v1.0.0
11/25/2024This release bumps the Rust/PyO3 integration to v0.23, drops Python 3.8 support (now requiring Python >=3.9), and adds support for overriding the polling delay via WATCHFILES_POLL_DELAY_MS. CI and packaging were updated accordingly for the 1.0 release cut.
BreakingFeaturesv0.24.0
8/28/2024v0.24.0 updates supported Python runtimes, drops PyPy 3.8 from CI, and changes RustNotify error handling so missing paths yield a 'file deleted' event instead of raising an exception. It also updates the underlying Rust watcher behavior and the notifications dependency source.
Breakingv0.23.0
8/7/2024v0.23.0 includes a set of maintenance updates, including PyO3 and HTTP library bumps, plus broader CI coverage for Python 3.13. It also includes a code change around `stop_event.is_set` handling and some internal Rust updates aimed at performance (string interning).
Features