5 * Linux: use InotifyInit1 with IN_CLOEXEC to stop leaking a file descriptor to a child process when using fork/exec [#178](https://github.com/fsnotify/fsnotify/pull/178) (thanks @pattyshack)
9 * Fix flaky inotify stress test on Linux [#177](https://github.com/fsnotify/fsnotify/pull/177) (thanks @pattyshack)
11 ## v1.4.0 / 2016-10-01
13 * add a String() method to Event.Op [#165](https://github.com/fsnotify/fsnotify/pull/165) (thanks @oozie)
15 ## v1.3.1 / 2016-06-28
17 * Windows: fix for double backslash when watching the root of a drive [#151](https://github.com/fsnotify/fsnotify/issues/151) (thanks @brunoqc)
19 ## v1.3.0 / 2016-04-19
21 * Support linux/arm64 by [patching](https://go-review.googlesource.com/#/c/21971/) x/sys/unix and switching to to it from syscall (thanks @suihkulokki) [#135](https://github.com/fsnotify/fsnotify/pull/135)
23 ## v1.2.10 / 2016-03-02
25 * Fix golint errors in windows.go [#121](https://github.com/fsnotify/fsnotify/pull/121) (thanks @tiffanyfj)
27 ## v1.2.9 / 2016-01-13
29 kqueue: Fix logic for CREATE after REMOVE [#111](https://github.com/fsnotify/fsnotify/pull/111) (thanks @bep)
31 ## v1.2.8 / 2015-12-17
33 * kqueue: fix race condition in Close [#105](https://github.com/fsnotify/fsnotify/pull/105) (thanks @djui for reporting the issue and @ppknap for writing a failing test)
34 * inotify: fix race in test
35 * enable race detection for continuous integration (Linux, Mac, Windows)
37 ## v1.2.5 / 2015-10-17
39 * inotify: use epoll_create1 for arm64 support (requires Linux 2.6.27 or later) [#100](https://github.com/fsnotify/fsnotify/pull/100) (thanks @suihkulokki)
40 * inotify: fix path leaks [#73](https://github.com/fsnotify/fsnotify/pull/73) (thanks @chamaken)
41 * kqueue: watch for rename events on subdirectories [#83](https://github.com/fsnotify/fsnotify/pull/83) (thanks @guotie)
42 * kqueue: avoid infinite loops from symlinks cycles [#101](https://github.com/fsnotify/fsnotify/pull/101) (thanks @illicitonion)
44 ## v1.2.1 / 2015-10-14
46 * kqueue: don't watch named pipes [#98](https://github.com/fsnotify/fsnotify/pull/98) (thanks @evanphx)
48 ## v1.2.0 / 2015-02-08
50 * inotify: use epoll to wake up readEvents [#66](https://github.com/fsnotify/fsnotify/pull/66) (thanks @PieterD)
51 * inotify: closing watcher should now always shut down goroutine [#63](https://github.com/fsnotify/fsnotify/pull/63) (thanks @PieterD)
52 * kqueue: close kqueue after removing watches, fixes [#59](https://github.com/fsnotify/fsnotify/issues/59)
54 ## v1.1.1 / 2015-02-05
56 * inotify: Retry read on EINTR [#61](https://github.com/fsnotify/fsnotify/issues/61) (thanks @PieterD)
58 ## v1.1.0 / 2014-12-12
60 * kqueue: rework internals [#43](https://github.com/fsnotify/fsnotify/pull/43)
61 * add low-level functions
62 * only need to store flags on directories
63 * less mutexes [#13](https://github.com/fsnotify/fsnotify/issues/13)
64 * done can be an unbuffered channel
65 * remove calls to os.NewSyscallError
66 * More efficient string concatenation for Event.String() [#52](https://github.com/fsnotify/fsnotify/pull/52) (thanks @mdlayher)
67 * kqueue: fix regression in rework causing subdirectories to be watched [#48](https://github.com/fsnotify/fsnotify/issues/48)
68 * kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51)
70 ## v1.0.4 / 2014-09-07
72 * kqueue: add dragonfly to the build tags.
73 * Rename source code files, rearrange code so exported APIs are at the top.
74 * Add done channel to example code. [#37](https://github.com/fsnotify/fsnotify/pull/37) (thanks @chenyukang)
76 ## v1.0.3 / 2014-08-19
78 * [Fix] Windows MOVED_TO now translates to Create like on BSD and Linux. [#36](https://github.com/fsnotify/fsnotify/issues/36)
80 ## v1.0.2 / 2014-08-17
82 * [Fix] Missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso)
83 * [Fix] Make ./path and path equivalent. (thanks @zhsso)
85 ## v1.0.0 / 2014-08-15
87 * [API] Remove AddWatch on Windows, use Add.
88 * Improve documentation for exported identifiers. [#30](https://github.com/fsnotify/fsnotify/issues/30)
89 * Minor updates based on feedback from golint.
93 * Moved to [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify).
94 * Use os.NewSyscallError instead of returning errno (thanks @hariharan-uno)
98 * kqueue: fix incorrect mutex used in Close()
99 * Update example to demonstrate usage of Op.
103 * [API] Don't set the Write Op for attribute notifications [#4](https://github.com/fsnotify/fsnotify/issues/4)
104 * Fix for String() method on Event (thanks Alex Brainman)
105 * Don't build on Plan 9 or Solaris (thanks @4ad)
109 * Events channel of type Event rather than *Event.
110 * [internal] use syscall constants directly for inotify and kqueue.
111 * [internal] kqueue: rename events to kevents and fileEvent to event.
115 * Go 1.3+ required on Windows (uses syscall.ERROR_MORE_DATA internally).
116 * [internal] remove cookie from Event struct (unused).
117 * [internal] Event struct has the same definition across every OS.
118 * [internal] remove internal watch and removeWatch methods.
122 * [API] Renamed Watch() to Add() and RemoveWatch() to Remove().
123 * [API] Pluralized channel names: Events and Errors.
124 * [API] Renamed FileEvent struct to Event.
125 * [API] Op constants replace methods like IsCreate().
129 * Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98)
133 * [API] Remove current implementation of WatchFlags.
134 * current implementation doesn't take advantage of OS for efficiency
135 * provides little benefit over filtering events as they are received, but has extra bookkeeping and mutexes
136 * no tests for the current implementation
137 * not fully implemented on Windows [#93](https://github.com/howeyc/fsnotify/issues/93#issuecomment-39285195)
139 ## v0.9.3 / 2014-12-31
141 * kqueue: cleanup internal watch before sending remove event [#51](https://github.com/fsnotify/fsnotify/issues/51)
143 ## v0.9.2 / 2014-08-17
145 * [Backport] Fix missing create events on macOS. [#14](https://github.com/fsnotify/fsnotify/issues/14) (thanks @zhsso)
147 ## v0.9.1 / 2014-06-12
149 * Fix data race on kevent buffer (thanks @tilaks) [#98](https://github.com/howeyc/fsnotify/pull/98)
151 ## v0.9.0 / 2014-01-17
153 * IsAttrib() for events that only concern a file's metadata [#79][] (thanks @abustany)
154 * [Fix] kqueue: fix deadlock [#77][] (thanks @cespare)
155 * [NOTICE] Development has moved to `code.google.com/p/go.exp/fsnotify` in preparation for inclusion in the Go standard library.
157 ## v0.8.12 / 2013-11-13
159 * [API] Remove FD_SET and friends from Linux adapter
161 ## v0.8.11 / 2013-11-02
163 * [Doc] Add Changelog [#72][] (thanks @nathany)
164 * [Doc] Spotlight and double modify events on macOS [#62][] (reported by @paulhammond)
166 ## v0.8.10 / 2013-10-19
168 * [Fix] kqueue: remove file watches when parent directory is removed [#71][] (reported by @mdwhatcott)
169 * [Fix] kqueue: race between Close and readEvents [#70][] (reported by @bernerdschaefer)
170 * [Doc] specify OS-specific limits in README (thanks @debrando)
172 ## v0.8.9 / 2013-09-08
174 * [Doc] Contributing (thanks @nathany)
175 * [Doc] update package path in example code [#63][] (thanks @paulhammond)
176 * [Doc] GoCI badge in README (Linux only) [#60][]
177 * [Doc] Cross-platform testing with Vagrant [#59][] (thanks @nathany)
179 ## v0.8.8 / 2013-06-17
181 * [Fix] Windows: handle `ERROR_MORE_DATA` on Windows [#49][] (thanks @jbowtie)
183 ## v0.8.7 / 2013-06-03
185 * [API] Make syscall flags internal
186 * [Fix] inotify: ignore event changes
187 * [Fix] race in symlink test [#45][] (reported by @srid)
188 * [Fix] tests on Windows
189 * lower case error messages
191 ## v0.8.6 / 2013-05-23
193 * kqueue: Use EVT_ONLY flag on Darwin
194 * [Doc] Update README with full example
196 ## v0.8.5 / 2013-05-09
198 * [Fix] inotify: allow monitoring of "broken" symlinks (thanks @tsg)
200 ## v0.8.4 / 2013-04-07
202 * [Fix] kqueue: watch all file events [#40][] (thanks @ChrisBuchholz)
204 ## v0.8.3 / 2013-03-13
206 * [Fix] inoitfy/kqueue memory leak [#36][] (reported by @nbkolchin)
207 * [Fix] kqueue: use fsnFlags for watching a directory [#33][] (reported by @nbkolchin)
209 ## v0.8.2 / 2013-02-07
212 * [Fix] fix data races for map access [#29][] (thanks @fsouza)
214 ## v0.8.1 / 2013-01-09
216 * [Fix] Windows path separators
219 ## v0.8.0 / 2012-11-09
221 * kqueue: directory watching improvements (thanks @vmirage)
222 * inotify: add `IN_MOVED_TO` [#25][] (requested by @cpisto)
223 * [Fix] kqueue: deleting watched directory [#24][] (reported by @jakerr)
225 ## v0.7.4 / 2012-10-09
227 * [Fix] inotify: fixes from https://codereview.appspot.com/5418045/ (ugorji)
228 * [Fix] kqueue: preserve watch flags when watching for delete [#21][] (reported by @robfig)
229 * [Fix] kqueue: watch the directory even if it isn't a new watch (thanks @robfig)
230 * [Fix] kqueue: modify after recreation of file
232 ## v0.7.3 / 2012-09-27
234 * [Fix] kqueue: watch with an existing folder inside the watched folder (thanks @vmirage)
235 * [Fix] kqueue: no longer get duplicate CREATE events
237 ## v0.7.2 / 2012-09-01
239 * kqueue: events for created directories
241 ## v0.7.1 / 2012-07-14
243 * [Fix] for renaming files
245 ## v0.7.0 / 2012-07-02
247 * [Feature] FSNotify flags
248 * [Fix] inotify: Added file name back to event path
250 ## v0.6.0 / 2012-06-06
252 * kqueue: watch files after directory created (thanks @tmc)
254 ## v0.5.1 / 2012-05-22
256 * [Fix] inotify: remove all watches before Close()
258 ## v0.5.0 / 2012-05-03
260 * [API] kqueue: return errors during watch instead of sending over channel
261 * kqueue: match symlink behavior on Linux
262 * inotify: add `DELETE_SELF` (requested by @taralx)
263 * [Fix] kqueue: handle EINTR (reported by @robfig)
264 * [Doc] Godoc example [#1][] (thanks @davecheney)
266 ## v0.4.0 / 2012-03-30
268 * Go 1 released: build with go tool
269 * [Feature] Windows support using winfsnotify
270 * Windows does not have attribute change notifications
271 * Roll attribute notifications into IsModify
273 ## v0.3.0 / 2012-02-19
275 * kqueue: add files when watch directory
277 ## v0.2.0 / 2011-12-30
279 * update to latest Go weekly code
281 ## v0.1.0 / 2011-10-19
283 * kqueue: add watch on file creation to match inotify
284 * kqueue: create file event
285 * inotify: ignore `IN_IGNORED` events
287 * linux: common FileEvent functions
290 [#79]: https://github.com/howeyc/fsnotify/pull/79
291 [#77]: https://github.com/howeyc/fsnotify/pull/77
292 [#72]: https://github.com/howeyc/fsnotify/issues/72
293 [#71]: https://github.com/howeyc/fsnotify/issues/71
294 [#70]: https://github.com/howeyc/fsnotify/issues/70
295 [#63]: https://github.com/howeyc/fsnotify/issues/63
296 [#62]: https://github.com/howeyc/fsnotify/issues/62
297 [#60]: https://github.com/howeyc/fsnotify/issues/60
298 [#59]: https://github.com/howeyc/fsnotify/issues/59
299 [#49]: https://github.com/howeyc/fsnotify/issues/49
300 [#45]: https://github.com/howeyc/fsnotify/issues/45
301 [#40]: https://github.com/howeyc/fsnotify/issues/40
302 [#36]: https://github.com/howeyc/fsnotify/issues/36
303 [#33]: https://github.com/howeyc/fsnotify/issues/33
304 [#29]: https://github.com/howeyc/fsnotify/issues/29
305 [#25]: https://github.com/howeyc/fsnotify/issues/25
306 [#24]: https://github.com/howeyc/fsnotify/issues/24
307 [#21]: https://github.com/howeyc/fsnotify/issues/21