Recent updates broke exclude resolution on windows:
exclude entries are supposed to use / forward slashes since they are "glob" patterns, regardless of platform (\ back slashes are reserved as the escape character)
However, during config load, these entries were resolved to absolute paths. For posix paths, this was fine: given exclude: my/pattern it would give /my/full/path/my/pattern. However for windows, it was more like C:\my\full\path\my/pattern.
We did another pass to normalize all slashes to forward slashes - this fixed the windows paths so glob pattern matching was happy with them. However it also turned escape characters into path separators...
I removed this last normalization step, optimistically to prevent issues with escaped symbols. Unfortunately, this resulted in all windows paths being invalid glob patterns, since they no longer had forward slash separators.
In this PR, I changed the approach slightly.
exclude entries are no longer resolved to absolute paths; they are kept as original patterns
This means we must glob/watch these exclude entries relative to the myst project directory - this matches closer to how we handle glob patterns in the toc.
Recent updates broke
exclude
resolution on windows:exclude
entries are supposed to use/
forward slashes since they are "glob" patterns, regardless of platform (\
back slashes are reserved as the escape character)exclude: my/pattern
it would give/my/full/path/my/pattern
. However for windows, it was more likeC:\my\full\path\my/pattern
.In this PR, I changed the approach slightly.
exclude
entries are no longer resolved to absolute paths; they are kept as original patternsglob
/watch
these exclude entries relative to the myst project directory - this matches closer to how we handleglob
patterns in thetoc
.