illumos: add FEN backend to support illumos and Solaris. (#371)
all: add NewBufferedWatcher() to use a buffered channel, which can be useful in cases where you can't control the kernel buffer and receive a large number of events in bursts. (#550, #572)
all: add AddWith(), which is identical to Add() but allows passing options. (#521)
windows: allow setting the ReadDirectoryChangesW() buffer size with fsnotify.WithBufferSize(); the default of 64K is the highest value that works on all platforms and is enough for most purposes, but in some cases a highest buffer is needed. (#521)
Changes and fixes
inotify: remove watcher if a watched path is renamed (#518)
After a rename the reported name wasn't updated, or even an empty string. Inotify doesn't provide any good facilities to update it, so just remove the watcher. This is already how it worked on kqueue and FEN.
On Windows this does work, and remains working.
windows: don't listen for file attribute changes (#520)
File attribute changes are sent as FILE_ACTION_MODIFIED by the Windows API, with no way to see if they're a file write or attribute change, so would show up as a fsnotify.Write event. This is never useful, and could result in many spurious Write events.
windows: return ErrEventOverflow if the buffer is full (#525)
Before it would merely return "short read", making it hard to detect this error.
kqueue: make sure events for all files are delivered properly when removing a watched directory (#526)
Previously they would get sent with "" (empty string) or "." as the path name.
kqueue: don't emit spurious Create events for symbolic links (#524)
The link would get resolved but kqueue would "forget" it already saw the link itself, resulting on a Create for every Write event for the directory.
all: return ErrClosed on Add() when the watcher is closed (#516)
other: add Watcher.Errors and Watcher.Events to the no-op Watcher in backend_other.go, making it easier to use on unsupported platforms such as WASM, AIX, etc. (#528)
other: use the backend_other.go no-op if the appengine build tag is set; Google AppEngine forbids usage of the unsafe package so the inotify backend won't compile there.
illumos: add FEN backend to support illumos and Solaris. (#371)
all: add NewBufferedWatcher() to use a buffered channel, which can be useful
in cases where you can't control the kernel buffer and receive a large number
of events in bursts. (#550, #572)
all: add AddWith(), which is identical to Add() but allows passing
options. (#521)
windows: allow setting the ReadDirectoryChangesW() buffer size with
fsnotify.WithBufferSize(); the default of 64K is the highest value that
works on all platforms and is enough for most purposes, but in some cases a
highest buffer is needed. (#521)
Changes and fixes
inotify: remove watcher if a watched path is renamed (#518)
After a rename the reported name wasn't updated, or even an empty string.
Inotify doesn't provide any good facilities to update it, so just remove the
watcher. This is already how it worked on kqueue and FEN.
On Windows this does work, and remains working.
windows: don't listen for file attribute changes (#520)
File attribute changes are sent as FILE_ACTION_MODIFIED by the Windows API,
with no way to see if they're a file write or attribute change, so would show
up as a fsnotify.Write event. This is never useful, and could result in many
spurious Write events.
windows: return ErrEventOverflow if the buffer is full (#525)
Before it would merely return "short read", making it hard to detect this
error.
kqueue: make sure events for all files are delivered properly when removing a
watched directory (#526)
Previously they would get sent with "" (empty string) or "." as the path
name.
kqueue: don't emit spurious Create events for symbolic links (#524)
You can trigger a rebase of this PR by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Note
Automatic rebases have been disabled on this pull request as it has been open for over 30 days.
Bumps github.com/fsnotify/fsnotify from 1.6.0 to 1.7.0.
Release notes
Sourced from github.com/fsnotify/fsnotify's releases.
... (truncated)
Changelog
Sourced from github.com/fsnotify/fsnotify's changelog.
... (truncated)
Commits
cfc9c4f
Few more tiny doc fixes >_<c3fa8e6
Proof-read some docs and prepare 1.7.0 release5310461
Remove stray trailing space in doc commentf01d91e
Add NewBufferedWatcher() (#572)e545940
Merge pull request #589 from fsnotify/win-rmc86f21c
Document and test removing watched directory on Windows68111f2
Merge pull request #588 from fsnotify/illumos0614185
Add back illumos2f2332a
Idiomatic bitwise operations769aaa7
Tweak docsYou can trigger a rebase of this PR by commenting
@dependabot rebase
.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show