Skip to content

Releases: emcrisostomo/fswatch

fswatch v. 1.21.0

09 May 21:55
5ce6efd

Choose a tag to compare

What's New in fswatch v. 1.21.0:

fswatch v. 1.21.0 introduces the following features and bug fixes:

  • CLI, Issues 104 and 273: Add --filter-mode=conjunctive. In this mode,
    include filters define the candidate set and exclude filters subtract from
    it: a path is accepted when it matches an include filter, or when no
    include filters are specified, and does not match any exclude filter.

  • CLI, Issue 151: Add --prune to prevent recursive traversal from
    descending into matching directories where the selected monitor performs
    traversal in fswatch or libfswatch. This is distinct from --exclude:
    --exclude filters emitted events, while --prune prevents recursive
    descent into matching subtrees.

  • Compatibility: Legacy include/exclude filter behavior remains the default.
    In legacy mode, include filters may still override exclude filters.

  • Issue 305: Install CMake package configuration files for libfswatch so
    CMake consumers can use find_package(libfswatch CONFIG).

  • Bug fix, Issue 247: Keep explicit root paths eligible for monitor setup
    even when path filters would reject the root path itself, allowing matching
    children to be discovered and reported.

  • Issue 238: Document the BSD/macOS xargs replacement-string length caveat
    when processing fswatch output with xargs -I.

  • Add filtering regression coverage for legacy and conjunctive filter modes,
    root-path eligibility, and traversal pruning.

libfswatch v. 1.21.0 introduces the following features and bug fixes:

  • API, Issues 104 and 273: Add conjunctive path filter evaluation mode. In
    this mode, inclusion filters define the candidate set and exclusion filters
    subtract from it: a path is accepted when it matches an inclusion filter,
    or when no inclusion filters are specified, and does not match any
    exclusion filter.

  • API, Issue 151: Add traversal prune filters so recursive monitors can skip
    matching directories before scanning or watching their descendants. Prune
    filters are separate from normal path filters: normal exclude filters
    reject emitted events, while prune filters prevent recursive descent where
    the monitor performs library-side traversal.

  • API: Add C API support for filter mode selection and prune filters.

  • Compatibility: Legacy filter behavior remains the default.

  • Compatibility: The public C++ fsw::monitor layout changed. Existing
    compiled C++ clients should be rebuilt against this release. The
    libfswatch libtool release version is 15:0:0.

  • Bug fix, Issue 247: Keep explicit root paths eligible for monitor setup
    even when path filters would reject the root path itself, allowing matching
    children to remain discoverable.

  • Issue 305: Install CMake package configuration files and exported targets
    for libfswatch so CMake consumers can use
    find_package(libfswatch CONFIG).

  • Add regression coverage for filter modes, root-path eligibility, traversal
    pruning, and the new C API pruning entry point.

Upgrade and Compatibility Notes

  • Legacy include/exclude filter behavior remains the default. Use
    --filter-mode=conjunctive to opt into include-as-candidate-set semantics.

  • --exclude and --prune serve different purposes. --exclude filters
    emitted events. --prune prevents recursive traversal from descending
    into matching directories where the selected monitor performs library-side
    traversal.

  • Explicit command-line root paths remain eligible for monitoring even when
    path filters would reject the root path itself.

  • libfswatch adds C API entry points for filter mode selection and prune
    filters.

  • The public C++ fsw::monitor layout changed. C++ clients should be
    rebuilt against this release. The libtool release version is 15:0:0.

fswatch v. 1.20.1

29 Apr 08:45
97757d7

Choose a tag to compare

What's New in fswatch v. 1.20.1:

fswatch v. 1.20.1 introduces the following features and bug fixes:

  • Correct the 1.20.0 release notes to document PR 368, Issue 367: the Linux
    inotify monitor now uses an epoll/eventfd wait loop, improving stop
    responsiveness and event queue draining behavior.

libfswatch v. 1.20.1 introduces the following features and bug fixes:

  • Correct the 1.20.0 release notes to document PR 368, Issue 367: the Linux
    inotify monitor now uses an epoll/eventfd wait loop, and building it now
    requires epoll, eventfd, and inotify_init1 support.

fswatch v. 1.20.0

29 Apr 08:18
2a80c31

Choose a tag to compare

What's New in fswatch v. 1.20.0:

fswatch v. 1.20.0 introduces the following features and bug fixes:

  • Issue 365: Add an opt-in Linux fanotify monitor with process attribution
    support and custom output directives for process ID metadata.

  • Issue 365: Add opt-in fanotify monitor properties for unlimited event queue
    and mark limits.

  • Issue 365: Fix CMake builds when ignored Autotools configuration headers
    exist in the source tree.

  • Fix CoreFoundation path ownership in the macOS FSEvents monitor.

libfswatch v. 1.20.0 introduces the following features and bug fixes:

  • Issue 365: Add a Linux fanotify monitor and generic event process
    attribution metadata.

  • Issue 365: Add opt-in fanotify monitor properties for unlimited event queue
    and mark limits.

  • Issue 365: Add the fsw_cevent_v2 C callback API for correlation and
    process attribution metadata without changing the existing fsw_cevent ABI.

  • Fix CoreFoundation path ownership in the macOS FSEvents monitor.

fswatch v. 1.19.1

19 Apr 19:11
e2a2661

Choose a tag to compare

What's New in fswatch v. 1.19.1:

fswatch v. 1.19.1 introduces the following features and bug fixes:

  • PR 350, Issue 349: Fix latency values lower than one second in the Windows
    monitor.

  • Issue 352: inotify no longer reports access, open, or close-without-write
    events unless access events are enabled with -a or --access.

libfswatch v. 1.19.1 introduces the following features and bug fixes:

  • PR 350, Issue 349: Fix latency values lower than one second in the Windows
    monitor.

  • Issue 352: inotify no longer reports access, open, or close-without-write
    events unless access events are enabled with -a or --access.

fswatch v. 1.19.0

12 Apr 20:53
b5b7784

Choose a tag to compare

What's New in fswatch v. 1.19.0:

fswatch v. 1.19.0 introduces the following features and bug fixes:

  • PR 353, Issue 343: Fix a segmentation fault in the macOS FSEvents monitor
    when file event metadata does not include an inode.

  • PR 354, Issue 330: Fix recursive inotify monitoring so fast file creation
    in newly-created directories is detected.

  • PR 340: Enable libfswatch compilation under Windows MinGW.

  • Fix: spurious output 'inotify_rm_watch: Invalid argument'

  • Issue 335: v. 1.18.0: build error: 'kFSEventStreamCreateFlagFileEvents' was
    not declared in this scope.

  • Grammar fix in documentation.

  • Fix: typo in man page.

libfswatch v. 1.19.0 introduces the following features and bug fixes:

  • PR 353, Issue 343: Fix a segmentation fault in the macOS FSEvents monitor
    when file event metadata does not include an inode.

  • PR 354, Issue 330: Fix recursive inotify monitoring so fast file creation
    in newly-created directories is detected.

  • PR 340: Enable libfswatch compilation under Windows MinGW.

fswatch v. 1.19.0-rc1

12 Apr 19:05
194b8a9

Choose a tag to compare

fswatch v. 1.19.0-rc1 Pre-release
Pre-release

What's New in fswatch v. 1.19.0-rc1:

fswatch v. 1.19.0-rc1 introduces the following features and bug fixes:

  • PR 353, Issue 343: Fix a segmentation fault in the macOS FSEvents monitor
    when file event metadata does not include an inode.

  • PR 354, Issue 330: Fix recursive inotify monitoring so fast file creation
    in newly-created directories is detected.

  • PR 340: Enable libfswatch compilation under Windows MinGW.

  • Fix: spurious output 'inotify_rm_watch: Invalid argument'

  • Issue 335: v. 1.18.0: build error: 'kFSEventStreamCreateFlagFileEvents' was
    not declared in this scope.

  • Grammar fix in documentation.

  • Fix: typo in man page.

libfswatch v. 1.19.0-rc1 introduces the following features and bug fixes:

  • PR 353, Issue 343: Fix a segmentation fault in the macOS FSEvents monitor
    when file event metadata does not include an inode.

  • PR 354, Issue 330: Fix recursive inotify monitoring so fast file creation
    in newly-created directories is detected.

  • PR 340: Enable libfswatch compilation under Windows MinGW.

fswatch v. 1.18.3

04 Feb 22:46
17d1939

Choose a tag to compare

What's New in fswatch v. 1.18.3:

fswatch v. 1.18.3 introduces the following features and bug fixes:

  • Fix: spurious output inotify_rm_watch: Invalid argument

  • Issue #335: v. 1.18.0: build error: kFSEventStreamCreateFlagFileEvents was not declared in this scope.

  • Grammar fix in documentation.

  • Fix: typo in man page.

fswatch v. 1.18.2

27 Jan 11:20

Choose a tag to compare

What's New in fswatch v. 1.18.2:

fswatch v. 1.18.2 introduces the following features and bug fixes:

  • Added event flag CloseWrite: file open for write has been closed.

  • kqueue_monitor: added support for CloseWrite, adding support for events of type NOTE_CLOSE_WRITE.

  • inotify_monitor: added support for CloseWrite, adding support for events of type IN_CLOSE_WRITE.

  • Issue #337: fswatch exits on non-existing paths.

fswatch v. 1.18.1

18 Jan 12:00
9316445

Choose a tag to compare

What's New in fswatch v. 1.18.1:

fswatch v. 1.18.1 introduces the following features and bug fixes:

  • Issue #333: Handle non-ASCII characters in file paths to prevent segmentation faults in FSEvents callback.

fswatch v. 1.18.0

03 Jan 12:23
2cd9417

Choose a tag to compare

What's New in fswatch v. 1.18.0:

fswatch v. 1.18.0 introduces the following features and bug fixes:

  • The C++17 standard has been adopted: code has been rewritten and simplified to adobe new features of the C++17 standard library such as std::filesystem.

  • gettextize: gettext v. 0.22.5

  • Documentation: add reference to Go bindings.

  • Issue #313: Make -1, --one-event return $? when killed.

  • Remove unused or obsolete configuration checks.

  • Use the #include predefined notation to include generated configuration headers.

  • Use target CPPFLAGS instead of AM_CPPFLAGS.

  • Update FSEventStreamEventFlags flags and add support to macOS 10.13+ features.

  • Issue #278: fsevents monitor: Add support to for extended data, to allow file inodes to be collected with events. This feature enables users to correlate rename events.

  • Issue #278: inotify monitor: Add support for correlation cookie. This feature enables users to correlate rename events.

  • Add %c format specifier to print the event correlation id.

  • Require <mutex>, <atomic> and thread_local and remove checks and conditional code.

libfswatch v. 1.18.0 introduces the following features and bug fixes:

  • Documentation: add reference to Go bindings.

  • Update FSEventStreamEventFlags flags and add support to macOS 10.13+ features.

  • Issue #278: fsevents monitor: Add support to for extended data, to allow file inodes to be collected with events. This feature enables users to correlate rename events.

  • Issue #278: inotify monitor: Add support for correlation cookie. This feature enables users to correlate rename events.

  • Update the event class to have a correlation id field.

  • Remove private headers from the list of installed header files.

  • Require <mutex>, <atomic> and thread_local and remove checks and conditional code.

  • Library interface does not depend on configuration any longer.