Repository navigation
chore(deps): update dependency watchdog to v7 - #2849
Open
renovate[bot] wants to merge 1 commit into
Open
renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/watchdog-7.x
branch
2 times, most recently
from
November 5, 2026 09:27
42574cb to
7f9074a
Compare
Signed-off-by: Renovate Bot <bot@renovateapp.com>
renovate
Bot
force-pushed
the
renovate/watchdog-7.x
branch
from
November 5, 2026 11:07
7f9074a to
349c777
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==6.0.0→==7.0.0Release Notes
gorakhargosh/watchdog (watchdog)
v7.0.0: 7.0.0Compare Source
Breaking Changes
path.match()topath.full_match(). Users must update patterns to glob-like syntax: e.g.,*.pyto**/*.py. (#1101)FileAttribEventandDirAttribEventfor file and directory metadata modifications (such as permissions or timestamps), separate from content modifications. These events no longer triggeron_modified(); implementon_attrib()to handle them. On Windows 10 (1709+) and Windows Server 2016+,ReadDirectoryChangesExWis used to differentiate attribute modifications, with fallback toReadDirectoryChangesWon older versions or unsupported file shares. (#260)--patternsvalue from"*"to"**", so the default matches absolute paths at any depth under thefull_match()semantics introduced by #1101, and updated the CLI help text and docs to the**/glob syntax. (#1212)Other Changes
Observerclass. The observer can now be used with awithstatement for automatic start/stop management. (#1090)follow_symlinkkeyword argument toObservedWatch. (#1086)ignore_policyargument toPatternMatchingEventHandlerandRegexMatchingEventHandlerto configure multi-path event filtering (moves/renames).PatternMatchingEventHandleris now strict by default, aligning withRegexMatchingEventHandler. (#412, #423)watchdog.utils.Secondstype alias and used it for the time-duration parameters (timeout,polling_interval,kill_after, ...) instead of documenting the unit in each docstring. Duration parameters previously hinted asintnow acceptfloat.Observer.schedule()pathtype annotation to reflect thepathlib.Pathsupport. (#1096)Observer.schedule(). (#1034)task_done()for the stop sentinel indispatch_events()to preventjoin()from hanging. (#1159)case_sensitive=Falsematching now really ignores case on Python<3.13. ThePurePath.full_match()fallback compiled its regex withoutre.IGNORECASE, so only the patterns were lower-cased and a path such asFOO.PYnever matched**/*.py. (#1263)dispatch_events()no longer re-adds a watch thatunschedule()removed, which leaked one_handlersentry per watch that had an event in flight. (#1261)Observer.schedule()fails to create or start its emitter.EventEmitterandEventDispatcherreject a booltimeout.boolsubclassesint, sotimeout=Truewas stored and treated as1.0seconds. (#1287)generate_sub_moved_events()corrupting paths when the directory name appears multiple times in the path. (#1158)ObservedWatchequality now includesfollow_symlink, so scheduling a path a second time with a differentfollow_symlinkvalue no longer collapses onto the first watch and silently drops the request. (#1262)RegexMatchingEventHandlerno longer matches its regexes against an empty destination path for events that are not moves. Since events became dataclasses,hasattr(event, "dest_path")is always true, so a regex matching the empty string (e.g.^(?!.*\.pyc$).*$) let every event through, and such an ignore regex dropped every event.PatternMatchingEventHandlerhad the same check.remove_handler_for_watch()no longer re-adds a watch thatunschedule()removed, which leaked one empty_handlersentry per call. (#1285)win_arm64to the list of platform-specific wheels published to PyPI. (#1137)manylinux_2_17to the list of platform-specific wheels published to PyPI. (#1125)follow_symlinkkeyword argument. (#1086)FileNotFoundErrorfromobserver.start(), or fromobserver.schedule()when already running. Recursive descendant failures remain tolerated. (#1157)InotifyEmitter.queue_events()so stopping the emitter cannot raiseAttributeErroron a clearedself._inotify.latencykeyword argument toFSEventsEmitterandFSEventsObserver(defaulting towatchdog.observers.fsevents.DEFAULT_FSEVENTS_LATENCY), exposing the FSEvents stream latency previously hard-coded at 10 ms. Raising it coalesces duplicate events. (#835)follow_symlinkkeyword argument. (#1086)RENAMED_OLDandRENAMED_NEWrecords arrive in differentget_events()batches no longer emits a move event with an emptysrc_path. (#1286)WindowsApiEmitter._reader:queue_events()nowreads it under the same lock used by
on_thread_stop(). (#1170)read_directory_changesto avoid missed events under high load. (#1152)OSErrorwhile polling, such as a network share that is briefly unreachable, no longer emits aDirDeletedEventfor the watched directory and stops the emitter. The error is logged and the next poll tries again, so changes made in the meantime are still reported. OnlyFileNotFoundErrorandNotADirectoryErrorare still treated as a deletion. (#1065)DirectorySnapshotDiffand emitFileAttribEventandDirAttribEventinPollingObserver. (#881)PermissionErrorraised while registering a kevent kill the emitter thread. (#1115)inotifyon FreeBSD 15+. (#1147)Noneitems inSkipRepeatsQueue. (#1348)debounce_interval_secondsargument and attribute ofEventDebouncerandAutoRestartTrickin favour ofdebounce_interval, and theDelayedQueue.delay_secattribute in favour ofdelay. The old names still work but emit aDeprecationWarning.DirectorySnapshotDiff(ignore_device=True)now detects moved files and directories when the device ID changes between snapshots.EventDebouncerstarvation on high frequency events and ensure pending events are delivered upon stop. (#998)DirectorySnapshotDiffreporting a newly created symlink as a move of its target (and a removed symlink as a move onto its target), soPollingObservernow emits a create/delete event to match the native observers. (#1176)repr(EmptyDirectorySnapshot), before that it was throwing anAttributeError: 'EmptyDirectorySnapshot' object has no attribute '_stat_info'.len(DirectorySnapshotDiff)to return the total number of changes.SkipRepeatsQueue.put()andput_nowait()reject duplicate items aftershutdown()on Python 3.13+.SkipRepeatsQueueproducers to prevent consecutive duplicates, respecting blocking and timeout limits while acquiring the producer lock. (#1338)DelayedQueuedelays so system clock adjustments do not stall or prematurely release events. (#1296)shell_executableandcwdforShellCommandTrickandwatchmedo shell-command. (#921)python -m watchdog. (#1162)AutoRestartTrickstop signal is now actually delivered on Windows. The subprocess is started in its own process group and signalled withCTRL_BREAK_EVENT, so it can run cleanup handlers and its descendants are no longer orphaned on every restart. (#1221)AutoRestartTrick's--signal SIGBREAKnow routes throughCTRL_BREAK_EVENTon Windows too, instead of falling back to the hard kill that skips the child's cleanup handlers. (#1221)watchmedo log. (#913)eventlettests and test dependency.BaseThreadalways runs as a daemon thread, instead of inheritingdaemonfrom the creating thread as the inheritedthreading.Threaddocumentation states. (#1117)FileSystemEventno longer claims to be immutable; its fields stay writable and the hash is derived from them, so mutating an event held in a dict or set strands it there. (#1240)FileClosedEvent,FileClosedNoWriteEventandFileOpenedEvent, and theiron_closed(),on_closed_no_write()andon_opened()handlers, are emitted only byInotifyObserveron Linux. (#1235)💟 Thanks to our beloved contributors: @BoboTiG, @Corentin-pro, @Liam-DeVoe, @kirkhansen, @JoachimCoenen, @HaoZeke, @LincolnPuzey, @adicohen1005, @zastrowm, @ngoldbaum, @QWERTIOX, @cclauss, @blitztide, @nascheme, @Prosperibe12, @bysiber, @abra-code, @toroleapinc, @maxtaran2010, @gorakhargosh, @Sanjays2402, @prateek-dagar, @BortnikMaxim, @MohammedAlkindi, @Skeletor-Pirate, @btschwertfeger, @zain-asif-dev, @subikshajegadish, @FanWu-ai, @ryanchou1994, @Rosuav, @TobiasRzepka, @GreatBahram, @arindamsikder, @apoorvdarshan, @kokotatan, @Om-singhaI, @amprew, @Pitchfork-and-Torch, @Dev-iL, @CLCK0622, @Enesuygurs, @galafis, @vaibhav8a, @ivg, @newchannelid432-code, @Aschenbath, @Joelbit-io, @Alex0AI
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about these updates again.
This PR was generated by Mend Renovate. View the repository job log.