Skip to content

feat: change idiomatic_version_file to default disabled#6501

Merged
jdx merged 7 commits into
mainfrom
fix-idiomatic-version-default
Oct 1, 2025
Merged

feat: change idiomatic_version_file to default disabled#6501
jdx merged 7 commits into
mainfrom
fix-idiomatic-version-default

Conversation

@jdx

@jdx jdx commented Oct 1, 2025

Copy link
Copy Markdown
Owner

Summary

This PR removes the idiomatic version file deprecation warning and changes idiomatic_version_file_enable_tools to default to disabled (empty set) for the 2025.10.0 release.

BREAKING: this is breaking change that make mise no longer read from files like .node-version or .ruby-version by default. This has been planned for 6 months with warnings. See #4345 for more information.

Changes

  • Remove deprecation warning for idiomatic version files (warn_about_idiomatic_version_files function)
  • Change idiomatic_version_file_enable_tools default from None to empty set []
  • Hide and deprecate idiomatic_version_file and idiomatic_version_file_disable_tools settings
  • Update documentation to clarify that idiomatic version files are now disabled by default
  • Simplify load_idiomatic_files logic to only check enable_tools list
  • Update schema and completions

Related

Test plan

  • Pre-commit hooks pass
  • Schema validation passes
  • Code compiles successfully

🤖 Generated with Claude Code


Note

Disables idiomatic version file parsing by default and switches to an explicit per-tool allowlist via settings.idiomatic_version_file_enable_tools, removing the legacy warning and updating schema/settings/tests accordingly.

  • Config/Core:
    • Remove warn_about_idiomatic_version_files and related wiring.
    • Simplify load_idiomatic_files to only read tools in settings.idiomatic_version_file_enable_tools; no files loaded when list is empty.
  • Settings/Schema:
    • settings.idiomatic_version_file_enable_tools now defaults to [] (disabled by default) and uses BTreeSet<String>; add docs.
    • Hide/deprecate idiomatic_version_file and idiomatic_version_file_disable_tools; adjust handling in settings loader.
    • Update schema/mise.json to reflect new defaults and deprecations.
  • Tests:
    • Update e2e tests to explicitly enable idiomatic version files per tool (e.g., bun, deno, java, node, python, ruby, terraform, tiny); add disable case for python override.
  • Completions:
    • Minor zsh completion tweak (ensure #compdef mise).

Written by Cursor Bugbot for commit 2010fb0. This will update automatically on new commits. Configure here.

… disabled

- Remove deprecation warning for idiomatic version files
- Change idiomatic_version_file_enable_tools default from None to empty set []
- Hide and deprecate idiomatic_version_file and idiomatic_version_file_disable_tools settings
- Update documentation to clarify that idiomatic version files are now disabled by default
- Simplify load_idiomatic_files logic to only check enable_tools list
- Remove warn_about_idiomatic_version_files function
- This change is required for 2025.10.0 release

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings October 1, 2025 09:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR changes the default behavior for idiomatic version files in mise by disabling them by default for the 2025.10.0 release, removing associated deprecation warnings, and simplifying the configuration logic.

  • Remove deprecation warning for idiomatic version files and associated logic
  • Change idiomatic_version_file_enable_tools default from None to empty set []
  • Hide and deprecate legacy idiomatic version file settings

Reviewed Changes

Copilot reviewed 5 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
src/config/settings.rs Fix assignment to use Some(false) for optional boolean setting
src/config/mod.rs Remove deprecation warning function and simplify idiomatic file loading logic
settings.toml Update default values, hide deprecated settings, and add documentation
schema/mise.json Remove default value for deprecated setting and add default for new setting
completions/_mise Minor formatting change to completion file header

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment thread src/config/settings.rs
settings = sb.load()?;
if !settings.legacy_version_file {
settings.idiomatic_version_file = false;
settings.idiomatic_version_file = Some(false);

Copilot AI Oct 1, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This assignment suggests idiomatic_version_file is now an Option<bool> type, but the change from false to Some(false) indicates a type mismatch that may cause compilation issues. Verify that the field type has been updated accordingly in the Settings struct definition.

Copilot uses AI. Check for mistakes.
Comment thread src/config/mod.rs
use walkdir::WalkDir;

use crate::backend::ABackend;
use crate::cli::version;

Copilot AI Oct 1, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These new imports appear to be unused after removing the deprecation warning logic. The version import was previously used in the removed warn_about_idiomatic_version_files function.

Suggested change
use crate::cli::version;

Copilot uses AI. Check for mistakes.
jdx added 2 commits October 1, 2025 04:49
Update idiomatic_version_file_enable_tools docs to reference the
Idiomatic Version Files section in the configuration documentation
instead of the GitHub discussion.
@jdx jdx enabled auto-merge (squash) October 1, 2025 09:54
@jdx jdx changed the title feat(settings): change idiomatic_version_file_enable_tools to default disabled feat: change idiomatic_version_file_enable_tools to default disabled Oct 1, 2025
@jdx jdx changed the title feat: change idiomatic_version_file_enable_tools to default disabled feat: change idiomatic_version_file to default disabled Oct 1, 2025
@github-actions

github-actions Bot commented Oct 1, 2025

Copy link
Copy Markdown

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.9.25 x -- echo 19.3 ± 0.2 18.9 20.2 1.11 ± 0.02
mise x -- echo 17.4 ± 0.3 16.9 21.3 1.00
✅ Performance improvement for x -- echo is 11%

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.9.25 env 18.8 ± 0.4 18.3 23.8 1.12 ± 0.02
mise env 16.8 ± 0.2 16.4 17.4 1.00
✅ Performance improvement for env is 12%

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.9.25 hook-env 18.5 ± 0.4 17.9 25.9 1.12 ± 0.03
mise hook-env 16.6 ± 0.3 16.1 20.0 1.00
✅ Performance improvement for hook-env is 12%

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2025.9.25 ls 16.4 ± 0.2 16.0 17.3 1.13 ± 0.02
mise ls 14.5 ± 0.2 14.2 16.4 1.00
✅ Performance improvement for ls is 13%

xtasks/test/perf

Command mise-2025.9.25 mise Variance
install (cached) 166ms ✅ 102ms +62%
ls (cached) 63ms 62ms +1%
bin-paths (cached) 69ms 68ms +1%
task-ls (cached) 463ms 460ms +0%

✅ Performance improvement: install cached is 62%

jdx added 4 commits October 1, 2025 05:09
Update e2e tests that rely on idiomatic version files to explicitly
enable them since they are now disabled by default:
- test_deno: enable for deno
- test_node_slow: enable for node
- test_java: enable for java
- test_python_precompiled: enable for python, then disable to test override
- test_terraform: enable for terraform
@jdx jdx disabled auto-merge October 1, 2025 10:35
@jdx jdx merged commit 04cd380 into main Oct 1, 2025
23 of 25 checks passed
@jdx jdx deleted the fix-idiomatic-version-default branch October 1, 2025 10:35
@jdx jdx mentioned this pull request Oct 1, 2025
jdx added a commit that referenced this pull request Oct 1, 2025
### 📦 Registry

- add code by @TyceHerrman in
[#6492](#6492)

### 🚀 Features

- change idiomatic_version_file to default disabled by @jdx in
[#6501](#6501)

### 🐛 Bug Fixes

- **(self-update)** add missing functions to self_update stub by @jdx in
[#6502](#6502)
- **(set)** allow --prompt flag to work with `mise set` by @jdx in
[#6485](#6485)

### 📚 Documentation

- **(hooks)** clarify pre/post-install hooks description. by @minusfive
in [#6497](#6497)
- remove link to issue by @jdx in
[e13d980](e13d980)

### 🧪 Testing

- **(e2e)** remove deprecated MISE_LEGACY_VERSION_FILE assertions by
@jdx in [#6505](#6505)

### New Contributors

- @minusfive made their first contribution in
[#6497](#6497)

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Bumps project to v2025.10.0, updates changelog, packaging/docs, and
completion spec filenames.
> 
> - **Release/Versioning**:
> - Bump version to `2025.10.0` in `Cargo.toml`, `Cargo.lock`,
`default.nix`, `packaging/rpm/mise.spec`.
> - **Documentation**:
>   - Update `README.md` quickstart version output.
> - Add `2025.10.0` entry to `CHANGELOG.md` with registry, features,
fixes, docs, tests, and contributors.
> - **Shell Completions**:
> - Update cached spec filenames to
`usage__usage_spec_mise_2025_10_0.spec` in `completions/_mise`,
`completions/mise.bash`, `completions/mise.fish`.}
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
28930cf. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->

Co-authored-by: mise-en-dev <release@mise.jdx.dev>
mikavilpas added a commit to mikavilpas/dotfiles that referenced this pull request Oct 2, 2025
The tools are now disabled by default in the new mise version:
jdx/mise#6501
mikavilpas added a commit to mikavilpas/dotfiles that referenced this pull request Oct 2, 2025
The tools are now disabled by default in the new mise version:
jdx/mise#6501
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants