v5 maintenance branch is on v5_maintenance
after 5.2.0
v4 commits split out to branch v4_maintenance
starting with 4.0.16
New crate containing public type definitions for the notify and debouncer crates.
- CHANGE: the serialization format for events has been changed to be easier to use in environments like JavaScript;
the old behavior can be restored using the new feature flag
serialization-compat-6
-
CHANGE: Manage root folder paths for the file ID cache automatically. breaking
debouncer.watcher().watch(path, RecursiveMode::Recursive)?; debouncer.cache().add_root(path, RecursiveMode::Recursive);
becomes:
debouncer.watch(path, RecursiveMode::Recursive)?;
-
CHANGE: Add
RecommendedCache
, which automatically enables the file ID cache on Windows and MacOS and disables it on Linux, where it is not needed.
- CHANGE: remove serde binary experiment opt-out after it got removed #530
- CHANGE: remove serde binary experiment opt-out after it got removed #530
- CHANGE: remove serde binary experiment opt-out after it got removed #530
- CHANGE: remove serde binary experiment opt-out after it got removed #530
- CHANGE: opt-out of the serde binary experiment by restricting it to < 1.0.172 #528
- CHANGE: license changed to dual-license of MIT OR Apache-2.0 #520
- CHANGE: upgrade to file-id 0.2.0 for high resolution file IDs #494
- FEATURE: derive debug for the debouncer struct #510
- CHANGE: opt-out of the serde binary experiment by restricting it to < 1.0.172 #528
- CHANGE: license changed to dual-license of MIT OR Apache-2.0 #520
- CHANGE: replace active polling with passive loop, removing empty ticks #467
- FEATURE: derive debug for the debouncer struct #510
- CHANGE: opt-out of the serde binary experiment by restricting it to < 1.0.172 #528
- CHANGE: license changed to only CC0-1.0 #520
- CHANGE: use logging #499
- CHANGE: upgrade windows-sys to 0.48 #479
- CHANGE: bump filetime to 0.2.22 #521
- FEATURE: support manual polling of PollWatcher and disabling automatic polling #524
- FEATURE: support listening to the initial pollwatcher file scan #507
- FIX: fix moved folders not being watched on linux #498
- FIX: fixup potential future double free on windows #517
- FIX: require bitflags only on macos and upgrade the crate #505
- DOCS: add more known issues, typos and cleanup examples #523 #502 #522
- CHANGE: opt-out of the serde binary experiment by restricting it to < 1.0.172 #528
- CHANGE: license changed to dual-license of MIT OR Apache-2.0 #520
- CHANGE: switch from winapi to windows-sys #494
- CHANGE: turn FileId struct into an enum #494
- FEATURE: support for high resolution file ids on Windows using GetFileInformationByHandleEx #494
- DOCS: fix swapped debouncer-full / -mini links in the readme/crates.io 4be6bde
- CHANGE: emit events as
DebouncedEvent
s, each containing the original notify event and the time at which it occurred #488
- CHANGE: files and directories moved into a watch folder on Linux will now be reported as
rename to
events instead ofcreate
events #480 - CHANGE: on Linux
rename from
events will be emitted immediately without starting a new thread #480 - CHANGE: raise MSRV to 1.60 #480
- CHANGE: upgrade to notify 6.0.0, pushing MSRV to 1.60 #480
Newly introduced alternative debouncer with more features. #480
- FEATURE: only emit a single
rename
event if the renameFrom
andTo
events can be matched - FEATURE: merge multiple
rename
events - FEATURE: keep track of the file system IDs all files and stiches rename events together (FSevents, Windows)
- FEATURE: emit only one
remove
event when deleting a directory (inotify) - FEATURE: don't emit duplicate create events
- FEATURE: don't emit
Modify
events after aCreate
event
Utility for reading inode numbers (Linux, MacOS) and file IDs (Windows). #480
- CHANGE: implement
Copy
forEventKind
andModifyKind
#481
- CHANGE: switch from winapi to windows-sys #457
- FIX: kqueue-backend: batch file-watching together to improve performance #454
- DOCS: include license file in crate again #461
- DOCS: typo and examples fixups
- DOCS: correctly document the
crossbeam
feature #440
Upgrade notify dependency to 5.0.0
For a list of changes when upgrading from v4 see UPGRADING_V4_TO_V5.md.
Differences to 5.0.0-pre.16:
- FIX: update minimum walkdir version to 2.2.2 #432
- CHANGE: add
need_rescan
function toEvent
, allowing easier detection when a rescan is required #435 - FIX: debouncer-mini: change crossbeam feature to
crossbeam
, to allow passthrough with notify re-exports #429 - DOCS: improve v5-to-v5 upgrade docs #431
- DOCS: file back v4 changelog into main #437
- DOCS: cleanups and link fixes
- CHANGE: require config for watcher creation and unify config #426
- CHANGE: fsevent: use RenameMode::Any for renaming events #371
- FEATURE: re-add debouncer as new crate and fixup CI #286
- FEATURE: allow disabling crossbeam-channel dependency #425
- FIX: PollWatcher panic after delete-and-recreate #406
- MISC: rework pollwatcher internally #409
- DOCS: cleanup all docs towards v5 #395
- CHANGE: raise MSRV to 1.56! #396 and #402
- FEATURE: add support for pseudo filesystems like sysfs/procfs #396
- FIX: Fix builds on (Free)BSD due to changes in kqueue fix release #399
- CHANGE: upgrade mio to 0.8 #386
- CHANGE: PollWatcher: unify signature of new and with_delay #360
- CHANGE: emit EventKind::Modify on kqueue write event #370
- CHANGE: use RenameMode::Any for renaming events #371
- CHANGE: name all threads spawned by notify #383
- FEATURE: Add Watcher::kind() #364
- FEATURE: Add more Debug/Copy trait impls #377 #378
- FIX: Fix selection of RecommendedWatcher for macos_kqueue feature #362
- FIX: Turn possible panic into an error in FSEvents backend when file is deleted rapidly #369
- FIX: lqueue: emit Create Events and watch all files in a directory #372
- FIX: inotify: don't panic on shutdown #373
- Fix: Add path information to inotify and kqueue watch/unwatch errors #354
- Fix: Delete dbg call from kqueue.rs #357
- CHANGE: Move creation of watcher into trait #345
- CHANGE: Add EventHandler trait to replace EventFn #346
- FIX: Fix build failure on x86_64-unknown-netbsd #347
- FEATURE: Add
Kqueue
backend for use on BSD #335 - CHANGE: Change EventFn to take FnMut #333
- CHANGE: Make
Watcher
object safe #336 - FIX: Join thread in
fseven
on shutdown #337 - FIX: Only check for ENOSPC on inotify_add_watch in
inotify
#330 - FIX: Free context when stream is deallocated in
fsevent
#329 - DOCS: Fix missing comma in docs #340
- FIX: Make StreamContextInfo
Send
to fix soundness issue #325
- DEPS: Upgrade fsevent-sys dependency to 4.0 #322
- CHANGE: Remove dependency on
fsevent
. #313 - FIX: Correct the return type for
CFRunLoopIsWaiting
to beBoolean
#319 - CHANGE: Hide fsevent::{CFRunLoopIsWaiting,callback}, fix clippy lint warnings #312
- FIX: Fix some clippy lints #320
- FIX: Don't crash on macos when creating & deleting folders in rapid succession #303
- HOTFIX: Fix breaking change in fsevent-sys in minor version destroying builds #316
- FIX: Don't crash on macos when creating & deleting folders in rapid succession #302
- FIX: Remove
anymap
, and replace event attributes with an opaque type. #306
- FIX: Display proper error message when reaching inotify limits on linux #285
- FIX: Fix leaks on Windows #298
- FIX: Handle interrupted system call errors from mio #281
- RUSTC: Push the minimum version to 1.47.0 #280
- DEPS: Update
inotify
to 0.9 #280 - DEPS: Update
mio
to 0.7 and removemio-extras
#278 - FIX: Report events promptly on Linux, even when many occur in rapid succession. #268
- CHANGE: Avoid stating the watched path for non-recursive watches with inotify #256
- DOCS: Fix broken link in crate documentation #260
- DEPS: Removed unused chashmap dependency #242
- FIX: Report events promptly on Linux, even when many occur in rapid succession. #268
- FIX: Fix leaks on Windows and debounce module. #288
- FIX: Display proper error message when reaching inotify limits on linux. #290
- (Temporary): Remove event debouncing.
- (Temporary): Remove tests.
- CHANGE: Rewrite immediate events to use new system.
- CHANGE: Remove
Sender
s from watcher API in favour ofEventFn
#214 - DEPS: Update inotify to 0.8. #234
- DEPS: Update crossbeam-channel to 0.4.
- DEPS: [macOS] Update fsevent to 2.0.1 and fsevent-sys to 3.0.0.
- DEPS: Update inotify to 0.7.
- DEPS(DEV): Replace tempdir with tempfile since tempdir is deprecated.
- DEPS: Update winapi to 0.3 and remove kernel32-sys. #232
(no changes, just a new release because the old one failed to publish properly)
- yanked 2019-06-30
- RUSTC: Push the minimum version to 1.36.0 #201
- RUSTC: Switch the crate to Rust 2018.
- FIX: Implement
Sync
for PollWatcher to support FreeBSD. #197 - FEATURE: Add new runtime configuration system.
- FEATURE: Add
Ongoing
events (optional, configured at runtime). #146, #183 - FEATURE: Bring in new event system from
next
branch. #187 - FEATURE: Allow multiple watchers to send to the same channel.
2a035c86
- CHANGE: Switch to crossbeam channel. #160
- CHANGE: Rename
Chmod
toMetadata
. #179, #180, previously #112, #161 - CHANGE: Remove
DebouncedEvent
event classification. #187 - DEPS: [Linux] Upgrade inotify to 0.7. #184
- DEPS: [macOS] Upgrade fsevent to 0.4. #195
- DEPS: Upgrade filetime to 0.2.6.
- META: Rename
v4-legacy
branch tomain
, to further clarify status and prepare for a breaking release. - DOCS: Change
v5
toNext Generation Notify
to allow for a breaking release. - DOCS: Add rust-analyzer to Readme showcase.
- DOCS: Add github issue / PR templates and funding.
- DEPS: Update winapi to 0.3.8 and remove kernel32-sys. #232
- META: The project maintainers are changed from @passcod to notify-rs.
- FIX: Fix deadlock in debouncer. #210
- FIX: Implement
Sync
for PollWatcher to support FreeBSD. #198 - DEPS: Peg filetime to 1.2.5 to maintain rustc 1.26.1 compatibility. #199
- DEPS: [macOS] Upgrade fsevent to 0.4. #196
- FIX: High CPU usage in some conditions when using debouncing. #177, #178, coming from rust-analyzer/#556
- DOCS: Mention hotwatch as alternative API. #175,
34775f26
- DEPS: [Linux] Disable
stream
feature for inotify. #176,e729e279
- DOCS: Add dates to releases in changelog.
cc621398
- DOCS: Backfill changelog: 4.0.2 to 4.0.7.
6457f697
- DOCS: Backfill changelog: 0.0.1 to 2.6.0.
d34e6ee7
- DOCS: Document unexpected behaviour around watching a tree root. #165, #166
- DOCS: Remove v2 documentation.
8310b2cc
- TESTS: Change how tests are skipped.
0b4c8400
- DOCS: Add timetrack to Readme showcase. #167
- META: Change commit message style: commits are now prefixed by a
[topic]
. - FIX: Make sure debounced watcher terminates. #170
- FIX: [Linux] Remove thread wake-up on timeout (introduced in 4.0.5 by error). #174
- FIX: Restore compatibility with Rust before 1.30.0.
eab75118
- META: Enforce compatibility with Rust 1.26.1 via CI.
50924cd6
- META: Add maintenance status badge.
ecd686ba
- DOCS: Freeze v4 branch (2018-10-05)
8310b2cc
— and subsequently unfreeze it. (2019-01-19)20c40f99
,c00da47c
- FIX: Add some consts to restore semver compatibility.
6d4f1ab9
- DEPS: Update winapi (0.3), mio (0.6), inotify (0.6), filetime (0.2), bitflags (1.0). #162
- SEMVER BREAK: The bitflags upgrade introduced a breaking change to the API.
- Derive various traits for
RecursiveMode
. #148 - DOCS: Add docket to Readme showcase. #154
- DOCS: Rename OS X to macOS. #156
- FIX: [FreeBSD / Poll] Release the lock while the thread sleeps (was causing random hangs). #159
- FIX: [macOS] Concurrency-related FSEvent crash. #132
- FIX: [macOS] Deadlock due to race in FsEventWatcher. #118, #134
- DEPS: Update walkdir to 2.0.
fbffef24
- FIX: Suppress events for files which have been moved and deleted if a new file in the original location is created quickly when using the debounced interface (eg. while safe-saving files) #129
- FIX: [Linux] Detect moves if two connected move events are split between two mio polls
- CHANGE: [Linux] Update dependency to inotify 0.3.0.
- FIX: [macOS]
.watch()
panics on macOS when the target doesn't exist. #105
- FIX: [Windows] Fix watching files on Windows using relative paths. #90
- FEATURE: Add debounced event notification interface. #63
- FEATURE: [Polling] Implement
CREATE
andDELETE
events for PollWatcher. #88 - FEATURE: [Polling] Add
::with_delay_ms()
constructor. #88 - FIX: [macOS] Report
ITEM_CHANGE_OWNER
asCHMOD
events. #93 - FIX: [Linux] Emit
CLOSE_WRITE
events. #93 - FEATURE: Allow recursion mode to be changed. #60, #61 breaking
- FEATURE: Track move events using a cookie.
- FEATURE: [macOS] Return an error when trying to unwatch non-existing file or directory.
- CHANGE: [Linux] Remove
IGNORED
event. breaking - CHANGE: [Linux] Provide absolute paths even if the watch was created with a relative path.
- FIX: [macOS] Bump
fsevents
version. #91
- FEATURE: [macOS] Implement Send and Sync for FsWatcher. #82
- FEATURE: [Windows] Implement Send and Sync for ReadDirectoryChangesWatcher. #82
- DOCS: Add example to monitor a given file or directory. #77
- Fix clippy lints. #57
- Run formatter. #59
- Fix warnings. #58
- FEATURE: Add
Result
alias. #72 - DEPS: Update inotify (0.2). #49, #70
- DOCS: Write API docs. #65
- FEATURE: [Linux] Add op::IGNORED. #73
- Simplify Cargo.toml. #75
- FEATURE: Implement std::Error for our Error type. #71
- DOCS: Explain an FSEvent limitation. #51
- DOCS: Clean up example code. #52
- RELENG: [macOS] Support i686. #54
- FEATURE: Implement
Display
onError
. #56
- META: Remove all
*
specifiers to comply with Crates.io policy.9f44843f
- RELENG: [Linux] Support i686. #46
- META: Fix AppVeyor build. #43, #45
- FIX: [Linux] Use a mio loop instead of handmade. #40
- DEPS: Replace walker by walkdir (0.1). #44
- FIX: [macOS] Race condition in FSEvent. #33
- FIX: Comply with Rust RFC 1214, adding
Sized
bound to trait. #32
- META: Use Travis CI Linux containers, macOS builds.
7081297d
- FIX: [macOS] Symlinks and broken tests. #27
- FIX: Move paths instead of borrowing.
3340d740
- FEATURE: Use
AsRef<Path>
instead ofPath
in signatures. #25
- FEATURE: [Linux] Support watching single file. #22
- META: Change release commit message style to be just the version, instead of "Cut ${version}".
- META: Add Code of Conduct.
4b88f7d9
- FEATURE: Restore Poll backend. #12
- FIX: [Linux] Inverse op::WRITE and op::REMOVE. #18
- DEPS: [macOS] Use fsevent (0.2). #14
- RUST: 1.0 is out! Use stable, migrate to walker crate.
0b127a38
- FEATURE: [macOS] FSEvent backend. #13
- BREAKING: Remove Poll backend.
92936460
- RUST: Update to latest, migrate to bitflags crate. #11
- RUST: Update to latest, thread upgrades. #9
- FEATURE: Provide full path to file that caused an event. #8
- META: Add Travis CI.
2c865803
- DOCS: Build using Rust-CI.
9c7dd960
- RUST: Update to latest, upgrade to new IO. #5
- FIX: [Linux] Keep watching when there are no events received. #6
- RUST: Update to latest, using
old_io
.116af0c4
- RUST: Update to latest and fix changes to channels.
327075c2
- FEATURE: [Linux] Recursive watch. #2
- RELENG: Publish on crates.io.
6f7d38a9
- RUST: Update to latest.
fd78d0e4
- FIX: [Linux] Stop panic when inotify backend is dropped.
6f7d38a9
- RUST: Update to latest.
d45c954c
- DEPS: Update inotify (0.1).
fcda20bb
- FIX: Build on non-Linux platforms.
55c8d7b0
- FEATURE: Invent Notify.
- FEATURE: [Linux] inotify backend.
d4b61fd2
- FEATURE: Poll backend.
b24a5339
- FEATURE: Recommended watcher selection mechanism.
a9c60ebf
- Empty release (no code)