Skip to main content

CHANGELOG.md

# Changelog

All notable changes to this project are documented here. The format is based on
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project
adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.2] - 2026-06-28

### Fixed

- Pinned `rustler_precompiled` `:targets` to the platforms the release
  workflow builds, so checksum generation no longer 404s on unbuilt targets
  (FreeBSD, riscv64, arm-gnueabihf). Unblocks publishing to Hex.

## [0.1.1] - 2026-06-28

### Fixed

- Repaired the precompiled-NIF release pipeline: the retired `macos-13` Intel
  runner left `x86_64-apple-darwin` stuck in the queue. It is now
  cross-compiled on the Apple Silicon runner, runner images and actions are
  refreshed, and builds only trigger on native changes.

### Changed

- Precompiled NIFs are now built for NIF versions 2.15, 2.16, and 2.17.

## [0.1.0] - 2026-06-28

### Added

- Native filesystem watcher backed by [notify-rs](https://github.com/notify-rs/notify)
  via Rustler. Events are delivered as `{:fs_notify_event, %FsNotify.Event{}}`,
  one message per notify event, carrying all affected `paths`.
- `FsNotify.watch/2` (a path or a list of paths) and `FsNotify.unwatch/1`. The
  watch is tied to the subscriber process: it stops when that process dies
  (native process monitor) or when the returned reference is garbage-collected.
- `%FsNotify.Event{kind, detail, paths}` whose `detail` faithfully mirrors
  notify's full `EventKind` tree (bare atoms and `{group, sub}` tuples).
- Options: `:recursive`, `:debounce` (native, via `notify-debouncer-full`),
  `:backend` (`:recommended` or `:poll`) with `:poll_interval`, and `:subscriber`.
- Precompiled NIFs via `rustler_precompiled` — no Rust toolchain required for
  supported targets; build from source with `FS_NOTIFY_BUILD=1`.
- CI cross-compiles NIFs (macOS, Linux gnu/musl, Windows; x86_64 and aarch64)
  and publishes to Hex when a GitHub release is published.

[Unreleased]: https://github.com/fahchen/fs_notify/compare/v0.1.2...HEAD
[0.1.2]: https://github.com/fahchen/fs_notify/compare/v0.1.1...v0.1.2
[0.1.1]: https://github.com/fahchen/fs_notify/compare/v0.1.0...v0.1.1
[0.1.0]: https://github.com/fahchen/fs_notify/releases/tag/v0.1.0