{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":21306961,"defaultBranch":"main","name":"fsnotify","ownerLogin":"fsnotify","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-06-28T16:47:01.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8013877?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715870183.0","currentOid":""},"activityList":{"items":[{"before":"800ed8332bfeddcb97dce7733ce2674c17170eb4","after":"c1467c02fba575afdb5f4201072ab8403bbf00f4","ref":"refs/heads/main","pushedAt":"2024-05-16T15:13:26.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"test/kqueue: watch symlinks","shortMessageHtmlLink":"test/kqueue: watch symlinks"}},{"before":"c8492813711f4b94149bda12b2d4104409f577d4","after":null,"ref":"refs/heads/nonex","pushedAt":"2024-05-16T15:12:40.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"}},{"before":"ad7424447bfedb6409dddced3d418e093fe7e9f4","after":"800ed8332bfeddcb97dce7733ce2674c17170eb4","ref":"refs/heads/main","pushedAt":"2024-05-16T15:12:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"kqueue: don't change internal state when Add() returns error (#638)\n\nFixes #637","shortMessageHtmlLink":"kqueue: don't change internal state when Add() returns error (#638)"}},{"before":null,"after":"c8492813711f4b94149bda12b2d4104409f577d4","ref":"refs/heads/nonex","pushedAt":"2024-05-16T14:36:23.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"kqueue: don't change internal state when Add() returns error\n\nFixes #637","shortMessageHtmlLink":"kqueue: don't change internal state when Add() returns error"}},{"before":"bec89034c5c5a875b2077b6b876cb085b527e7ee","after":"ad7424447bfedb6409dddced3d418e093fe7e9f4","ref":"refs/heads/main","pushedAt":"2024-05-15T16:13:22.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"remove extra \"to\" from doc comment (#634)","shortMessageHtmlLink":"remove extra \"to\" from doc comment (#634)"}},{"before":"13c962ecd53f1c73312e19951e0f31234288f172","after":null,"ref":"refs/heads/backend","pushedAt":"2024-05-02T02:45:41.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"}},{"before":"a618f076c8cfc422e6d1f6f1f881af9152aa7c82","after":"bec89034c5c5a875b2077b6b876cb085b527e7ee","ref":"refs/heads/main","pushedAt":"2024-05-02T02:45:40.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Split out Watcher and backends (#632)\n\nRather than have a bunch of Watcher types guarded by build tags, have\r\none Watcher that's always available which proxies to a backend\r\ninterface.\r\n\r\nThis will allow adding a polling watcher, fanotify, fsevents, and things\r\nlike that. There are no backends to select from yet, and I'm not 100%\r\nsure yet what an API for that would look like, but this sets up the\r\nscaffolding for all of it.\r\n\r\nBackends are per-watcher; originally I prototyped something that allows\r\nselecting it per-Add() call, but the bookkeeping on that became rather\r\ncomplex, and this use case is probably far too rare to spend a lot of\r\neffort on. People can still use different backends by using different\r\nWatchers; they'll just have to do the bookkeeping themselves.","shortMessageHtmlLink":"Split out Watcher and backends (#632)"}},{"before":"3fa20e8b367590082a047c9bc0997e96948922fe","after":"13c962ecd53f1c73312e19951e0f31234288f172","ref":"refs/heads/backend","pushedAt":"2024-05-02T02:13:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Split out Watcher and backends\n\nRather than have a bunch of Watcher types guarded by build tags, have\none Watcher that's always available which proxies to a backend\ninterface.\n\nThis will allow adding a polling watcher, fanotify, fsevents, and things\nlike that. There are no backends to select from yet, and I'm not 100%\nsure yet what an API for that would look like, but this sets up the\nscaffolding for all of it.\n\nBackends are per-watcher; originally I prototyped something that allows\nselecting it per-Add() call, but the bookkeeping on that became rather\ncomplex, and this use case is probably far too rare to spend a lot of\neffort on. People can still use different backends by using different\nWatchers; they'll just have to do the bookkeeping themselves.","shortMessageHtmlLink":"Split out Watcher and backends"}},{"before":"de770b84b5db04fa7fa4d64e93370777c7b523b2","after":"3fa20e8b367590082a047c9bc0997e96948922fe","ref":"refs/heads/backend","pushedAt":"2024-05-02T01:59:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Split out Watcher and backends\n\nRather than have a bunch of Watcher types guarded by build tags, have\none Watcher that's always available which proxies to a backend\ninterface.\n\nThis will allow adding a polling watcher, fanotify, fsevents, and things\nlike that. There are no backends to select from yet, and I'm not 100%\nsure yet what an API for that would look like, but this sets up the\nscaffolding for all of it.\n\nBackends are per-watcher; originally I prototyped something that allows\nselecting it per-Add() call, but the bookkeeping on that became rather\ncomplex, and this use case is probably far too rare to spend a lot of\neffort on. People can still use different backends by using different\nWatchers; they'll just have to do the bookkeeping themselves.","shortMessageHtmlLink":"Split out Watcher and backends"}},{"before":"c001e54cdc8d4b4ead921ecb3803ad7cf7ea8205","after":"de770b84b5db04fa7fa4d64e93370777c7b523b2","ref":"refs/heads/backend","pushedAt":"2024-05-02T01:54:39.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Split out Watcher and backends\n\nRather than have a bunch of Watcher types guarded by build tags, have\none Watcher that's always available which proxies to a backend\ninterface.\n\nThis will allow adding a polling watcher, fanotify, fsevents, and things\nlike that. There are no backends to select from yet, and I'm not 100%\nsure yet what an API for that would look like, but this sets up the\nscaffolding for all of it.\n\nBackends are per-watcher; originally I prototyped something that allows\nselecting it per-Add() call, but the bookkeeping on that became rather\ncomplex, and this use case is probably far too rare to spend a lot of\neffort on. People can still use different backends by using different\nWatchers; they'll just have to do the bookkeeping themselves.","shortMessageHtmlLink":"Split out Watcher and backends"}},{"before":"f4d08152c2f1da83be2e719502f39773544585e2","after":"c001e54cdc8d4b4ead921ecb3803ad7cf7ea8205","ref":"refs/heads/backend","pushedAt":"2024-05-01T22:23:32.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"fixup tests","shortMessageHtmlLink":"fixup tests"}},{"before":"5bd662fe5b75da802914e44cda59c97914e8c312","after":"f4d08152c2f1da83be2e719502f39773544585e2","ref":"refs/heads/backend","pushedAt":"2024-05-01T22:18:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"more","shortMessageHtmlLink":"more"}},{"before":null,"after":"5bd662fe5b75da802914e44cda59c97914e8c312","ref":"refs/heads/backend","pushedAt":"2024-05-01T22:05:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Split out Watcher and backends\n\nRather than have a bunch of Watcher types guarded by build tags, have\none Watcher that's always available which proxies to a backend\ninterface.\n\nThis will allow adding a polling watcher, fanotify, fsevents, and things\nlike that. There are no backends to select from yet, and I'm not 100%\nsure yet what an API for that would look like, but this sets up the\nscaffolding for all of it.\n\nBackends are per-watcher; originally I prototyped something that allows\nselecting it per-Add() call, but the bookkeeping on that became rather\ncomplex, and this use case is probably far too rare to spend a lot of\neffort on. People can still use different backends by using different\nWatchers; they'll just have to do the bookkeeping themselves.","shortMessageHtmlLink":"Split out Watcher and backends"}},{"before":"17d64486cd440bf48521ac824651572a323b6191","after":null,"ref":"refs/heads/inotify-recurse","pushedAt":"2024-05-01T20:24:38.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"}},{"before":"17d905351249492aab4599fb177a947b119d2094","after":"a618f076c8cfc422e6d1f6f1f881af9152aa7c82","ref":"refs/heads/main","pushedAt":"2024-05-01T20:24:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"inotify: add recursive watcher (#472)\n\nThis adds a recursive watcher for inotify.","shortMessageHtmlLink":"inotify: add recursive watcher (#472)"}},{"before":"f4c00e58deebb78a4be6ee304e3287c301d1f3fe","after":"17d64486cd440bf48521ac824651572a323b6191","ref":"refs/heads/inotify-recurse","pushedAt":"2024-05-01T20:17:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"inotify: add recursive watcher\n\nThis adds a recursive watcher for inotify.","shortMessageHtmlLink":"inotify: add recursive watcher"}},{"before":"d3727c39014dcedf3f777d2ceb1cb583cc85d66a","after":"f4c00e58deebb78a4be6ee304e3287c301d1f3fe","ref":"refs/heads/inotify-recurse","pushedAt":"2024-05-01T20:10:16.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"inotify: add recursive watcher\n\nThis adds a recursive watcher for inotify.","shortMessageHtmlLink":"inotify: add recursive watcher"}},{"before":"53b06a884d7164e2d93c1dcdda52b1e966b76aba","after":"17d905351249492aab4599fb177a947b119d2094","ref":"refs/heads/main","pushedAt":"2024-05-01T19:36:06.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Print diffs for test failures\n\nVendor my ztest diff library in here, so we don't add a dependency. This gives\nmuch nicer test failures:\n\n --- FAIL: TestScript (0.00s)\n --- FAIL: TestScript/watch-dir/bug-277 (0.96s)\n helpers_test.go:1021:\n\n --- have\n +++ want\n @@ -1,6 +1,5 @@\n RENAME /apple\n REMOVE /pear\n REMOVE /foo\n -have CREATE /pear ← /apple\n CREATE /foo\n CREATE /apple\n\nInstead of:\n\n --- FAIL: TestScript (0.00s)\n --- FAIL: TestScript/watch-dir/bug-277 (0.96s)\n helpers_test.go:1020:\n have:\n CREATE /foo\n REMOVE /foo\n CREATE /apple\n RENAME /apple\n CREATE /pear ← /apple\n REMOVE /pear\n want:\n CREATE /foo\n REMOVE /foo\n CREATE /apple\n RENAME /apple\n REMOVE /pear\n FAIL","shortMessageHtmlLink":"Print diffs for test failures"}},{"before":"fd34385b5231762612880276b47f5ae0d5501616","after":"b8c7b3f7db4e5952d37ea807de28fc9869c5f821","ref":"refs/heads/ci","pushedAt":"2024-05-01T08:07:42.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Run tests several times in CI\n\nI've been wanting to do this for ages to catch/fix flaky tests sooner,\nbut the tests were always too flaky and/or too slow (especially with the\nold vmactions), but now it seems to work quite well.","shortMessageHtmlLink":"Run tests several times in CI"}},{"before":"a3dc38e8e0a2837bfe812bac5b9286764b1771bf","after":"fd34385b5231762612880276b47f5ae0d5501616","ref":"refs/heads/ci","pushedAt":"2024-05-01T07:38:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Run tests several times in CI\n\nI've been wanting to do this for ages to catch/fix flaky tests sooner,\nbut the tests were always too flaky and/or too slow (especially with the\nold vmactions), but now it seems to work quite well.","shortMessageHtmlLink":"Run tests several times in CI"}},{"before":"2347d295afd6153d3ff06134fffb3b06e75eb1a5","after":"a3dc38e8e0a2837bfe812bac5b9286764b1771bf","ref":"refs/heads/ci","pushedAt":"2024-05-01T07:34:29.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Run tests several times in CI\n\nI've been wanting to do this for ages to catch/fix flaky tests sooner,\nbut the tests were always too flaky and/or too slow (especially with the\nold vmactions), but now it seems to work quite well.","shortMessageHtmlLink":"Run tests several times in CI"}},{"before":"6f0a0fa8903abeff3009ec58808694e5a73908a8","after":"2347d295afd6153d3ff06134fffb3b06e75eb1a5","ref":"refs/heads/ci","pushedAt":"2024-05-01T07:21:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"Run tests several times in CI\n\nI've been wanting to do this for ages to catch/fix flaky tests sooner,\nbut the tests were always too flaky and/or too slow (especially with the\nold vmactions), but now it seems to work quite well.","shortMessageHtmlLink":"Run tests several times in CI"}},{"before":"e6d40349b0f20d77178c2b2fc01acbf54e768253","after":"6f0a0fa8903abeff3009ec58808694e5a73908a8","ref":"refs/heads/ci","pushedAt":"2024-05-01T07:10:29.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"c","shortMessageHtmlLink":"c"}},{"before":"4d241405cec7217c6567ebb9cc14331e437a9e40","after":"e6d40349b0f20d77178c2b2fc01acbf54e768253","ref":"refs/heads/ci","pushedAt":"2024-05-01T06:59:54.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"ci","shortMessageHtmlLink":"ci"}},{"before":null,"after":"4d241405cec7217c6567ebb9cc14331e437a9e40","ref":"refs/heads/ci","pushedAt":"2024-05-01T06:46:02.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"ci","shortMessageHtmlLink":"ci"}},{"before":"452fddd24db315a9ef462850eaac8c74a6d67545","after":"d3727c39014dcedf3f777d2ceb1cb583cc85d66a","ref":"refs/heads/inotify-recurse","pushedAt":"2024-05-01T06:20:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"wip","shortMessageHtmlLink":"wip"}},{"before":"08e056d5add3119ce83d50f2425811bbf905d1b4","after":"53b06a884d7164e2d93c1dcdda52b1e966b76aba","ref":"refs/heads/main","pushedAt":"2024-05-01T06:19:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"inotify: implement WithNoFollow() (#631)\n\nOption to not follow symlinks, but watch the links themselves.\r\n\r\nUnexported for now, until it's supported everywhere.\r\n\r\nUpdates #227","shortMessageHtmlLink":"inotify: implement WithNoFollow() (#631)"}},{"before":"25efcb74e70358b750cdf1a464f8afa56fc052a7","after":null,"ref":"refs/heads/link","pushedAt":"2024-05-01T06:19:39.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"}},{"before":"e25545ee5c605037f8fae4c0240759a9070e955e","after":"25efcb74e70358b750cdf1a464f8afa56fc052a7","ref":"refs/heads/link","pushedAt":"2024-05-01T06:06:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"inotify: implement WithNoFollow()\n\nOption to not follow symlinks, but watch the links themselves.\n\nUpdates 227","shortMessageHtmlLink":"inotify: implement WithNoFollow()"}},{"before":"f3cbeebe590abea1baa68e1987b868f6df446a3f","after":"e25545ee5c605037f8fae4c0240759a9070e955e","ref":"refs/heads/link","pushedAt":"2024-05-01T05:49:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"arp242","name":"Martin Tournoij","path":"/arp242","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1032692?s=80&v=4"},"commit":{"message":"inotify: implement WithNoFollow()\n\nOption to not follow symlinks, but watch the links themselves.\n\nUpdates 227","shortMessageHtmlLink":"inotify: implement WithNoFollow()"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAES8e-3gA","startCursor":null,"endCursor":null}},"title":"Activity · fsnotify/fsnotify"}