4 |
4 |
5 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
5 The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), |
6 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
6 and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
7 |
7 |
8 ## [Unreleased] |
8 ## [Unreleased] |
|
9 |
|
10 Nothing yet. |
|
11 |
|
12 ## [1.6.0] - 2022-10-13 |
|
13 |
|
14 This version of fsnotify needs Go 1.16 (this was already the case since 1.5.1, |
|
15 but not documented). It also increases the minimum Linux version to 2.6.32. |
|
16 |
|
17 ### Additions |
|
18 |
|
19 - all: add `Event.Has()` and `Op.Has()` ([#477]) |
|
20 |
|
21 This makes checking events a lot easier; for example: |
|
22 |
|
23 if event.Op&Write == Write && !(event.Op&Remove == Remove) { |
|
24 } |
|
25 |
|
26 Becomes: |
|
27 |
|
28 if event.Has(Write) && !event.Has(Remove) { |
|
29 } |
|
30 |
|
31 - all: add cmd/fsnotify ([#463]) |
|
32 |
|
33 A command-line utility for testing and some examples. |
|
34 |
|
35 ### Changes and fixes |
|
36 |
|
37 - inotify: don't ignore events for files that don't exist ([#260], [#470]) |
|
38 |
|
39 Previously the inotify watcher would call `os.Lstat()` to check if a file |
|
40 still exists before emitting events. |
|
41 |
|
42 This was inconsistent with other platforms and resulted in inconsistent event |
|
43 reporting (e.g. when a file is quickly removed and re-created), and generally |
|
44 a source of confusion. It was added in 2013 to fix a memory leak that no |
|
45 longer exists. |
|
46 |
|
47 - all: return `ErrNonExistentWatch` when `Remove()` is called on a path that's |
|
48 not watched ([#460]) |
|
49 |
|
50 - inotify: replace epoll() with non-blocking inotify ([#434]) |
|
51 |
|
52 Non-blocking inotify was not generally available at the time this library was |
|
53 written in 2014, but now it is. As a result, the minimum Linux version is |
|
54 bumped from 2.6.27 to 2.6.32. This hugely simplifies the code and is faster. |
|
55 |
|
56 - kqueue: don't check for events every 100ms ([#480]) |
|
57 |
|
58 The watcher would wake up every 100ms, even when there was nothing to do. Now |
|
59 it waits until there is something to do. |
|
60 |
|
61 - macos: retry opening files on EINTR ([#475]) |
|
62 |
|
63 - kqueue: skip unreadable files ([#479]) |
|
64 |
|
65 kqueue requires a file descriptor for every file in a directory; this would |
|
66 fail if a file was unreadable by the current user. Now these files are simply |
|
67 skipped. |
|
68 |
|
69 - windows: fix renaming a watched directory if the parent is also watched ([#370]) |
|
70 |
|
71 - windows: increase buffer size from 4K to 64K ([#485]) |
|
72 |
|
73 - windows: close file handle on Remove() ([#288]) |
|
74 |
|
75 - kqueue: put pathname in the error if watching a file fails ([#471]) |
|
76 |
|
77 - inotify, windows: calling Close() more than once could race ([#465]) |
|
78 |
|
79 - kqueue: improve Close() performance ([#233]) |
|
80 |
|
81 - all: various documentation additions and clarifications. |
|
82 |
|
83 [#233]: https://github.com/fsnotify/fsnotify/pull/233 |
|
84 [#260]: https://github.com/fsnotify/fsnotify/pull/260 |
|
85 [#288]: https://github.com/fsnotify/fsnotify/pull/288 |
|
86 [#370]: https://github.com/fsnotify/fsnotify/pull/370 |
|
87 [#434]: https://github.com/fsnotify/fsnotify/pull/434 |
|
88 [#460]: https://github.com/fsnotify/fsnotify/pull/460 |
|
89 [#463]: https://github.com/fsnotify/fsnotify/pull/463 |
|
90 [#465]: https://github.com/fsnotify/fsnotify/pull/465 |
|
91 [#470]: https://github.com/fsnotify/fsnotify/pull/470 |
|
92 [#471]: https://github.com/fsnotify/fsnotify/pull/471 |
|
93 [#475]: https://github.com/fsnotify/fsnotify/pull/475 |
|
94 [#477]: https://github.com/fsnotify/fsnotify/pull/477 |
|
95 [#479]: https://github.com/fsnotify/fsnotify/pull/479 |
|
96 [#480]: https://github.com/fsnotify/fsnotify/pull/480 |
|
97 [#485]: https://github.com/fsnotify/fsnotify/pull/485 |
9 |
98 |
10 ## [1.5.4] - 2022-04-25 |
99 ## [1.5.4] - 2022-04-25 |
11 |
100 |
12 * Windows: add missing defer to `Watcher.WatchList` [#447](https://github.com/fsnotify/fsnotify/pull/447) |
101 * Windows: add missing defer to `Watcher.WatchList` [#447](https://github.com/fsnotify/fsnotify/pull/447) |
13 * go.mod: use latest x/sys [#444](https://github.com/fsnotify/fsnotify/pull/444) |
102 * go.mod: use latest x/sys [#444](https://github.com/fsnotify/fsnotify/pull/444) |
37 * CI: Use GitHub Actions for CI and cover go 1.12-1.17 |
126 * CI: Use GitHub Actions for CI and cover go 1.12-1.17 |
38 [#378](https://github.com/fsnotify/fsnotify/pull/378) |
127 [#378](https://github.com/fsnotify/fsnotify/pull/378) |
39 [#381](https://github.com/fsnotify/fsnotify/pull/381) |
128 [#381](https://github.com/fsnotify/fsnotify/pull/381) |
40 [#385](https://github.com/fsnotify/fsnotify/pull/385) |
129 [#385](https://github.com/fsnotify/fsnotify/pull/385) |
41 * Go 1.14+: Fix unsafe pointer conversion [#325](https://github.com/fsnotify/fsnotify/pull/325) |
130 * Go 1.14+: Fix unsafe pointer conversion [#325](https://github.com/fsnotify/fsnotify/pull/325) |
|
131 |
|
132 ## [1.4.9] - 2020-03-11 |
|
133 |
|
134 * Move example usage to the readme #329. This may resolve #328. |
|
135 |
|
136 ## [1.4.8] - 2020-03-10 |
|
137 |
|
138 * CI: test more go versions (@nathany 1d13583d846ea9d66dcabbfefbfb9d8e6fb05216) |
|
139 * Tests: Queued inotify events could have been read by the test before max_queued_events was hit (@matthias-stone #265) |
|
140 * Tests: t.Fatalf -> t.Errorf in go routines (@gdey #266) |
|
141 * CI: Less verbosity (@nathany #267) |
|
142 * Tests: Darwin: Exchangedata is deprecated on 10.13 (@nathany #267) |
|
143 * Tests: Check if channels are closed in the example (@alexeykazakov #244) |
|
144 * CI: Only run golint on latest version of go and fix issues (@cpuguy83 #284) |
|
145 * CI: Add windows to travis matrix (@cpuguy83 #284) |
|
146 * Docs: Remover appveyor badge (@nathany 11844c0959f6fff69ba325d097fce35bd85a8e93) |
|
147 * Linux: create epoll and pipe fds with close-on-exec (@JohannesEbke #219) |
|
148 * Linux: open files with close-on-exec (@linxiulei #273) |
|
149 * Docs: Plan to support fanotify (@nathany ab058b44498e8b7566a799372a39d150d9ea0119 ) |
|
150 * Project: Add go.mod (@nathany #309) |
|
151 * Project: Revise editor config (@nathany #309) |
|
152 * Project: Update copyright for 2019 (@nathany #309) |
|
153 * CI: Drop go1.8 from CI matrix (@nathany #309) |
|
154 * Docs: Updating the FAQ section for supportability with NFS & FUSE filesystems (@Pratik32 4bf2d1fec78374803a39307bfb8d340688f4f28e ) |
42 |
155 |
43 ## [1.4.7] - 2018-01-09 |
156 ## [1.4.7] - 2018-01-09 |
44 |
157 |
45 * BSD/macOS: Fix possible deadlock on closing the watcher on kqueue (thanks @nhooyr and @glycerine) |
158 * BSD/macOS: Fix possible deadlock on closing the watcher on kqueue (thanks @nhooyr and @glycerine) |
46 * Tests: Fix missing verb on format string (thanks @rchiossi) |
159 * Tests: Fix missing verb on format string (thanks @rchiossi) |