e-dant / watcher

Filesystem watcher. Works anywhere. Simple, efficient and friendly.
MIT License
639 stars 32 forks source link

macOS CI runner occasionally fails due to missing CMake binary #33

Closed e-dant closed 3 months ago

e-dant commented 1 year ago

Every so often, we get an error like this: https://github.com/e-dant/watcher/actions/runs/5920128540/job/16051048104#step:5:33

I tried to address this in https://github.com/e-dant/watcher/commit/38d93a4e09bbcfa2298a3430212690814825b24a by adding a GitHub action to install cmake. Maybe that cmake action isn't working, or maybe something else is off. The path which make is looking for cmake in hints that the brew version of cmake isn't always there. I'm not sure why make keeps looking there.

Maybe the CMake cache needs to be reset? Maybe we should use Nix and just not worry about these kinds of issues?

coderr01 commented 1 year ago

@e-dant i would like to contribute. Can you please let me know from where to start in code ?

e-dant commented 12 months ago

@e-dant i would like to contribute. Can you please let me know from where to start in code ?

Hi! More than happy to have you here. (Sorry for a bit of a late response.) I think this issue is resolved, but I haven't closed it just in case it comes back up again.

However, there are a few other issues I'm happy to offer you.

These are probably the best:


https://github.com/e-dant/watcher/issues/23

For the windows building issue, I'm just not too familiar with all the caveats, and have generally found building on Windows difficult. If you know that system, I could use your input. If you know Nix, I think that can smooth over a lot of the odd differences between platforms.


https://github.com/e-dant/watcher/issues/16

This is almost entirely a readme task. Just want to help users along with how we report errors. Maybe a bit of context on why we report them that way, too. Exceptions aren't universal, some people disable them entirely, and I've sometimes had the thought that this library's adapters should be in C, which would make exceptions irrelevant, anyway. So, we pass up strings, attached to paths, along with the special watcher type to give (rare) status updates, including errors.


https://github.com/e-dant/watcher/issues/5

For the runtime performance benchmarks, we're really just trying to see if any watcher is less efficient, and if so by how much, than the baseline IO throughput of creating and removing files. Bonus points for accuracy tests across the watcher, but a bit of a separate issue.

I think this one can be done just with shell scripts in containers (we don't want to run on someone's "real" filesystem). Most of these watching libraries come with CLI interfaces as well.

e-dant commented 10 months ago

https://github.com/e-dant/watcher/actions/runs/6449445323/job/17507767533#step:5:33