Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make fsevents2 the default implementation on macOS #623

Closed
BoboTiG opened this issue Jan 30, 2020 · 3 comments
Closed

Make fsevents2 the default implementation on macOS #623

BoboTiG opened this issue Jan 30, 2020 · 3 comments

Comments

@BoboTiG
Copy link
Collaborator

BoboTiG commented Jan 30, 2020

The primary idea is to get ride of the C extension on macOS.

There is some work on fsevents2 that is is fsevents using PyObjC. Current tests are disabled, and will be fixed with #546.

At term the goal is to remove fsevents.py and watchdog_fsevents.c; and rename fsevents2.py to fsevents.py. A fsevents2.py will be kept for compatibility and display a deprecation warning.
This will allow us to publish one wheel for every platform (#428) and fix a lot of compilation errors happening from time to time.

This issue is here to track the remaining tasks that we are not yet aware.

@samschott
Copy link
Contributor

Uh, this would mean depending on PyObjC which is quite a heavy dependency. It's effectively outsourcing our single extension module to a dependency which covers the entire macOS API.

If you really want to get rid of watchdog_fsevents.c, could you be convinced to use rubicon-objc for the bridging instead? It's based on ctypes, it's light-weight and despite still being at v0.4.0 it is very stable. Though with the recent work which we have put into the extension module, I would not mind keeping it around either.

@BoboTiG
Copy link
Collaborator Author

BoboTiG commented Jul 13, 2021

Of course, given what was done lastly, there is no need to change anything. The C code is quite robust and we have more contributors knowing its internals. And we have wheels for all platforms. So my initial concerns are no longer valid.

What could be interesting, for the future, may be to port fsevents2 to rubicon-objc. And at some point migrating from fsevents to fsevents2. But this is really not a priority and I am fine with the current state of fsevents. Of course, being able to skip C compilation is always a good point IMO.

@samschott
Copy link
Contributor

Thanks for the update, this sounds good to me. I just stumbled upon this issue when considering to port the changes from #815 to fsevents2.

@BoboTiG BoboTiG removed this from the 0.12.0 milestone Aug 24, 2021
@BoboTiG BoboTiG closed this as completed Sep 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants