fix(named-inputs): match everything under a glob-free fileset path - #99
Draft
shaharkazaz wants to merge 1 commit into
Draft
shaharkazaz wants to merge 1 commit into
shaharkazaz wants to merge 1 commit into
Conversation
{workspaceRoot}/config compiled to a pattern matching only a file literally named config, and the trailing-slash form matched nothing. Both Nx (a fileset entry with no glob syntax is the path or everything under it) and Turborepo (globwalk's add_doublestar_to_dir expands a metacharacter-free directory pattern to dir/**) read such an entry as a directory. The Nx namedInputs and turbo globalDependencies paths now compile a glob-free entry to the literal plus <path>/**. An empty path is skipped rather than widened. The comment records two divergences left deliberately: * crossing / (glob crate), and Nx's ! handling.
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Sep 22, 2026
Contributor
📦 Preview Release AvailableA preview release has been published for commit fb1f42a. Installationnpm install https://github.com/frontops-dev/domino/releases/download/pr-99-fb1f42a/front-ops-domino-2.0.2.tgzRunning the previewnpx https://github.com/frontops-dev/domino/releases/download/pr-99-fb1f42a/front-ops-domino-2.0.2.tgz affectedDetails |
This branch has not been deployed
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.
Problem
{workspaceRoot}/configcompiled to aglob::Patternmatching only a file literally namedconfig, not anything inside it; the trailing-slash form{workspaceRoot}/config/matched nothing at all. So asharedGlobalsentry pointing at a directory silently never fired.Solution
A glob-free entry now compiles to the literal and
<path>/**(after stripping a trailing/), in both the NxnamedInputspath and the TurborepoglobalDependenciespath. Glob syntax includes braces, so{a,b}is never widened into a directory prefix. An empty path ({workspaceRoot}/) is skipped rather than widened to every file.The code comment records two divergences from Nx that are left deliberately:
require_literal_separator: falsemeans*crosses/, so{workspaceRoot}/config/*selects more than Nx. Aligning means swapping theglobcrate wholesale. Domino is knowingly wider.!handling is not a target: feat(core): opt in to selecting affected tasks instead of projects nrwl/nx#36825 documents its extglob reading of!as a bug pending its own fix.Key changes
src/named_inputs.rs:compile_global_pattern,has_glob_syntax, andGlobalPattern::directory: Option<Pattern>;matches_global_patternORs the directory pattern in.Testing
config/app.jsonassertion. The brace-set test was mutation-checked (fails with{/}removed from the glob-syntax set).config.json,configs/app.json) do not match; an empty path matches nothing.Non-Nx workspaces
Turbo
globalDependenciesget the same expansion, and that matches Turborepo's own behaviour: its globwalk expands a metacharacter-free pattern that names a directory todir/**(add_doublestar_to_dirincrates/turborepo-globwalk, mirrored inturborepo-scm). Rush and generic workspaces have no global-input config, so they are unaffected.Breaking changes
None. Glob-free directory entries that previously matched nothing now match the directory's contents.
Sources
a_glob_free_path_matches_everything_under_it)add_doublestar_to_dir: https://github.com/vercel/turborepo/blob/main/crates/turborepo-globwalk/src/lib.rsglobalDependenciesdocs: https://turborepo.dev/docs/reference/configuration