revert: remove task inheritance from parent configs in monorepos#7851
Merged
revert: remove task inheritance from parent configs in monorepos#7851
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR reverts task inheritance functionality from monorepos, where tasks defined in parent directories were automatically visible and runnable from child subdirectories using their monorepo paths.
Changes:
- Removed task inheritance logic that loaded parent configs up to monorepo root
- Simplified subdirectory task loading to only load tasks explicitly defined in each subdirectory
- Deleted the test file
test_task_monorepo_task_inheritancethat validated inheritance behavior
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| src/config/mod.rs | Removed helper functions for loading parent configs and simplified subdirectory task loading to only load tasks from the subdirectory itself |
| e2e/tasks/test_task_monorepo_task_inheritance | Deleted test file that verified task inheritance from parent to child directories |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
2 tasks
8d0f969 to
26b2004
Compare
Hyperfine Performance
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.1.8 x -- echo |
19.8 ± 0.5 | 19.0 | 21.8 | 1.00 |
mise x -- echo |
21.0 ± 1.0 | 19.6 | 37.5 | 1.06 ± 0.06 |
mise env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.1.8 env |
19.6 ± 0.4 | 18.7 | 22.7 | 1.00 |
mise env |
19.9 ± 0.7 | 18.7 | 25.2 | 1.01 ± 0.04 |
mise hook-env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.1.8 hook-env |
19.0 ± 0.3 | 18.5 | 21.9 | 1.00 |
mise hook-env |
19.5 ± 0.5 | 18.7 | 24.6 | 1.02 ± 0.03 |
mise ls
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.1.8 ls |
16.8 ± 0.3 | 16.4 | 21.4 | 1.00 |
mise ls |
17.8 ± 0.9 | 16.8 | 30.4 | 1.06 ± 0.06 |
xtasks/test/perf
| Command | mise-2026.1.8 | mise | Variance |
|---|---|---|---|
| install (cached) | 111ms | 111ms | +0% |
| ls (cached) | 68ms | 68ms | +0% |
| bin-paths (cached) | 72ms | 71ms | +1% |
| task-ls (cached) | 284ms | 302ms | -5% |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with Cloud Agents, enable Autofix in the Cursor dashboard.
Reverts commit 84fb5f3 which added task inheritance in monorepos. Task inheritance allowed tasks defined in parent directories to be automatically visible/runnable from child subdirectories. This caused confusion and issues: - Running `//packages/app:lint` when `app` doesn't define `lint` is surprising - Wildcards like `//...:test` matched inherited tasks, causing circular deps Also fixes pre-existing issues in monorepo subdirectory task loading: - Glob pattern expansion: properly expands patterns like `.config/mise/conf.d/*.toml` - Config precedence: uses `.rev()` so `mise.local.toml` overrides `mise.toml` - Glob result ordering: reverses glob results so later files override earlier - Task deduplication: uses IndexMap so file tasks override config tasks Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
02d0193 to
f702f8c
Compare
mise-en-dev
added a commit
that referenced
this pull request
Jan 28, 2026
### 🚀 Features - **(doctor)** add backend mismatch warnings by @jdx in [#7847](#7847) - **(http)** add rename_exe support for archive extraction by @jdx in [#7874](#7874) - **(http)** send x-mise-ci header for CI environment tracking by @jdx in [#7875](#7875) - **(install)** auto-install plugins from [plugins] config section by @jdx in [#7856](#7856) - **(registry)** add vercel by @mikecurtis in [#7844](#7844) - **(task)** support glob patterns in task_config.includes by @jdx in [#7870](#7870) - **(task)** add task templates for reusable task definitions by @jdx in [#7873](#7873) ### 🐛 Bug Fixes - **(backend)** change registry mismatch log from info to debug by @jdx in [#7858](#7858) - **(ci)** use squash merge for auto-merge-release workflow by @jdx in [7e5e71e](7e5e71e) - **(ci)** remove --auto flag to merge immediately when CI passes by @jdx in [23ed2ed](23ed2ed) - **(github)** select platform-matching provenance file for SLSA verification by @jdx in [#7853](#7853) - **(go)** filter out version "1" from available versions by @jdx in [#7871](#7871) - **(install)** skip CurDir components when detecting archive structure by @jdx in [#7868](#7868) - **(pipx)** ensure Python minor version symlink exists for postinstall hooks by @jdx in [#7869](#7869) - **(registry)** prevent duplicate -stable suffix in Flutter download URLs by @jdx in [#7872](#7872) - **(task)** pass env to usage parser for env-backed arguments by @jdx in [#7848](#7848) - **(task)** propagate MISE_ENV to child tasks when using -E flag by @jdx in [06ee776](06ee776) - **(vfox-dotnet)** use os.execute() to fix Windows installation by @prodrigues1912 in [#7843](#7843) ### 📚 Documentation - update cache-behavior with env_cache information by @jdx in [#7849](#7849) ###◀️ Revert - remove task inheritance from parent configs in monorepos by @jdx in [#7851](#7851) - Revert "fix(ci): remove --auto flag to merge immediately when CI passes" by @jdx in [0606187](0606187) ### 📦 Registry - add mago ([aqua:carthage-software/mago](https://github.com/carthage-software/mago)) by @scop in [#7845](#7845) ### Chore - **(ci)** auto-merge release branch into main daily at 4am CST by @jdx in [#7852](#7852) ### New Contributors - @mikecurtis made their first contribution in [#7844](#7844) - @prodrigues1912 made their first contribution in [#7843](#7843)
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.
Summary
Reverts commit 84fb5f3 which added task inheritance in monorepos.
What was inheritance? Tasks defined in parent directories would automatically be visible/runnable as if they were defined in child subdirectories. For example, if root defined
lint, thenmise run //packages/app:lintwould work even ifpackages/appdidn't definelint.Why revert? This behavior is confusing and causes issues:
//packages/app:lintwhenappdoesn't definelintis surprising//...:testwould match inherited tasks, causing circular dependencies when root definestest = { depends = ['//...:test'] }See discussion: #6564 (comment)
Additional fixes
While reverting, also fixed pre-existing issues in the monorepo subdirectory task loading code:
.config/mise/conf.d/*.tomlusingglob().rev()iteration somise.local.tomlcorrectly overridesmise.toml02-override.toml) override earlier ones (like01-base.toml).mise/tasks/) correctly override config tasks with the same nameAlso adds
revertto allowed PR title types in the semantic PR lint workflow.Test plan
test_task_monorepo_task_inheritancetest (tested inheritance)test_task_monorepo_syntaxandtest_task_monorepo_nested_config(test other features)🤖 Generated with Claude Code
Note
Reverts monorepo task inheritance so subdirectories no longer auto-expose tasks from parent configs. Subdir tasks are now loaded only from their own config files and task include dirs, with names prefixed to the subdir when applicable.
DEFAULT_CONFIG_FILENAMES, with proper glob expansion) and default includes when no config is found; tasks deduped by name with later files winning (e.g.,mise.local.tomloverridesmise.toml)e2e/tasks/test_task_monorepo_task_inheritance[monorepo].config_roots/auto-discovery and loads subdirs only for--allor path-hinted contextsreverttypeWritten by Cursor Bugbot for commit f702f8c. This will update automatically on new commits. Configure here.