Comments (17)
0.4.0.0
is on Hackage now!
from hfsnotify.
It's fine by me to bump the major version and note in the changelog that debouncing is yet to be implemented :)
from hfsnotify.
See also this comment: #91 (comment)
from hfsnotify.
Hmm, looking in to this a bit more, it seems that Windows has no equivalent of CLOSE_WRITE
, and downstream debouncing workarounds are almost universally necessary.
So releasing 0.4 without any debouncing support might be seen as a serious regression.
from hfsnotify.
See also this comment: #91 (comment)
The only blocker for 0.4.0.0 is that one of the breaking changes is ripping out the flawed old debounce mechanism, and replacing it with something based on this suggestion: #55 (comment).
To my mind, #55 seems like overkill anyway. Restricting debounce so that an event is only ignored if the previous event was of the same type would be a much simpler solution to that problem.
from hfsnotify.
I agree getting a new release is very important because the current version of the hackage is really too old and has many glitches which has been fixed in the github version.
from hfsnotify.
releasing 0.4 without any debouncing support might be seen as a serious regression
I agree -- that's why shipping a reasonable debounce mechanism is sort of a prerequisite to getting 0.4 out the door. Different opinions might exist about what "reasonable" means. For example, your suggestion of ignoring an event if the previous event is of the same type seems pretty flawed to me, because the OS is free to insert an unrelated event in between those two things, which would cause the debouncing to fail.
But, this is why I've been working to make debouncing an orthogonal concern to the rest of this library, so people can apply the debouncing they prefer. Basically any debouncing mechanism should simply be a function with the signature Action -> IO Action
.
I can see two potential ways to get a release out quickly:
- Finish filling out the state machine for the "fancy" debouncer described here.
- Implement something "good enough" and clearly label its limitations.
I'll try to get to this as soon as I can but PRs are always welcome :)
from hfsnotify.
For example, your suggestion of ignoring an event if the previous event is of the same type seems pretty flawed to me
Yeah, you're probably right. There's no elegant solution here, so it's a pretty thankless task. I won't rush you in to making the wrong choice!
(To be honest, my OP here is kind of an excitable, unfocussed thought dump. The shoddiness of the Windows API has pretty much ruined my plans for what I was intending to do when I started off anyway...)
from hfsnotify.
I just stopped by to see if I could remove the shelly dependency only to discover you'd already done so. :)
Lovely package. Let me know if you need any help?
from hfsnotify.
@istathar want to fill in the details of a debouncing state machine? :)
from hfsnotify.
@thomasjm sure, although I got the impression above that it was kinds of an optional enhancement? If that's true, then the rest of the improvements you've made probably deserve to see the light of day and this feature could wait for 0.4.1.
from hfsnotify.
Well, as discussed above, releasing without any debouncing mechanism built-in might be seen as a regression. I haven't polled users of this library so I don't know how many depend on it. So the best thing would be to finish the proposed solution before releasing--I'm not dead set on it, but it would be nice. I just haven't been able to find time to finish it up, but if you're offering!
from hfsnotify.
I'm hitting multiple issues with the current version, can I help somehow with denouncing? I agree with others that it's fine to do it after the bugfix release.
EDIT: #103
from hfsnotify.
@thomasjm We are likely to release a fork in following weeks if there is not progress on this front.
This is a temporary solution to fix a number of issues we've been facing at https://github.com/cachix/cachix,
but we're open to helping out in any way to get a release out.
from hfsnotify.
What issues are you hitting?
I'd be fine with releasing the current version with rudimentary or no debouncing. Depending on what problems you're having we may also be able to backport fixes and do a bugfix release without an actual breaking change.
from hfsnotify.
Okay, by popular demand we'll release 0.4.0.0
as-is. Just working on getting the tests passing on all the platforms now...
from hfsnotify.
Thanks @thomasjm ❤️
from hfsnotify.
Related Issues (20)
- No modification notifications for symlinks HOT 5
- Doesn't work on macOS unless -N is specified HOT 1
- Allow debouncing regardless of if event is same file HOT 5
- Exceptions in Action gets swallowed HOT 7
- Drop shelly dependency HOT 1
- Does creation/deletion of a hard-link trigger a modification event? HOT 2
- Windows 10, no Event unless Pulling is forced. HOT 6
- Debounce config works in very unexpected way (only on Win32) HOT 1
- When events fire too quickly, the whole watch stops HOT 1
- `watchDir` misses some Git events, `watchTree` shows them all on Linux HOT 6
- Fire event variety "CloseWrite" HOT 3
- removeWatch: invalid argument (Bad file descriptor)
- Likely O(n^2) behaviour for `watchTree` HOT 17
- stuck when compiling HOT 13
- Build failure on FreeBSD HOT 14
- Problems with fsnotify-0.4.0.1 on Windows HOT 6
- System.FSNotify does not export type WatchConfig HOT 9
- Build failure on windows for fsnotify-0.4.0.1 HOT 1
- Windows error tag (-1) is outside of enumeration's range (0,4) HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from hfsnotify.