- [fsevents] Fix building the extension on PyPy 3.12 by updating the bundled
pythoncapi_compat.h. (#1397) - [inotify] Create the inotify instance lazily so observer and polling imports succeed when the inotify instance limit is reached. (#1389)
- [inotify] Reconcile recursively watched directories renamed before their source watch was registered, and simulate existing descendants so their initial changes are reported. (#1383)
- [inotify] Reconcile recursive watches after the kernel reports an inotify queue overflow so subsequent filesystem changes are observed. (#654)
- [inotify] Watch directories moved into a recursively watched directory from outside of it, so that changes inside them are reported. (#1094)
- [inotify] Fix the inotify thread dying with a
KeyErrorwhen a directory tree is copied or extracted into a recursively watched directory, which stopped all inotify observers in the process. (#1388) - [observers] Align
BaseObserverwithBaseThreadby usingon_thread_start()instead of overridingstart(). (#286) - [watchmedo] Fix
watchmedo generate-tricks-yamloutput so thatwatchmedo trickscan load it: trick options are now nested under the trick name instead of under unsupportedargs/kwargskeys. (#1403)
💟 Thanks to our beloved contributors: @BoboTiG, @prateek-dagar, @monosans, @taltal-beep, @Aschenbath, @yangfan-yf-yf, @alexruperez, @PDGGK, @Skeletor-Pirate