fix(lock): remove experimental flag requirement for lockfiles#8011
Conversation
Lockfiles were graduated from experimental in v2026.2.0 (#7929), but the `mise lock` command still had `ensure_experimental("lock")` gating it. This removes that check and cleans up MISE_EXPERIMENTAL=1 from all lockfile e2e tests and the docs reference. Closes #8009 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Summary of ChangesHello @jdx, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request officially graduates the lockfile feature in Highlights
Changelog
Activity
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Pull request overview
This PR removes the experimental flag requirement for lockfiles, which were graduated to stable in v2026.2.0 but still had an experimental check in the CLI command and documentation.
Changes:
- Removed experimental feature gate from
mise lockcommand - Updated documentation to reflect lockfiles as stable feature
- Cleaned up 15 e2e test files by removing
MISE_EXPERIMENTAL=1environment variable
Reviewed changes
Copilot reviewed 17 out of 17 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| src/cli/lock.rs | Removed experimental feature check from lock command |
| docs/tips-and-tricks.md | Updated documentation to remove experimental mode reference |
| e2e/lockfile/test_lockfile_use | Removed experimental flag from test |
| e2e/lockfile/test_lockfile_urls | Removed experimental flag from test |
| e2e/lockfile/test_lockfile_upgrade_prune | Removed experimental flag from test |
| e2e/lockfile/test_lockfile_local | Removed experimental flag from test |
| e2e/lockfile/test_lockfile_install | Removed experimental flag from test |
| e2e/lockfile/test_lockfile_exec | Removed experimental flag from test |
| e2e/lockfile/test_lockfile_env_resolution | Removed experimental flag from test |
| e2e/lockfile/test_lockfile_env | Removed experimental flag from test |
| e2e/lockfile/test_lockfile_backend | Removed experimental flag from test |
| e2e/lockfile/test_lockfile_assets | Removed experimental flag from test |
| e2e/lockfile/test_lockfile_aqua_format_mismatch | Removed experimental flag from test |
| e2e/cli/test_lock_platform_merge | Removed experimental flag from test |
| e2e/cli/test_lock_future | Removed experimental flag from test |
| e2e/cli/test_lock_creation | Removed experimental flag from test |
| e2e/cli/test_lock | Removed experimental flag from test |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Code Review
This pull request correctly removes the experimental flag requirement for lockfiles, which have been graduated to a stable feature. The changes are clean and comprehensive, covering the core logic in src/cli/lock.rs, updating documentation in docs/tips-and-tricks.md, and removing the unnecessary MISE_EXPERIMENTAL=1 environment variable from all 15 end-to-end tests. The implementation is straightforward and aligns perfectly with the stated goal. Excellent work!
Hyperfine Performance
|
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.2.4 x -- echo |
21.3 ± 0.5 | 20.1 | 25.9 | 1.00 |
mise x -- echo |
22.2 ± 0.7 | 20.6 | 29.3 | 1.04 ± 0.04 |
mise env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.2.4 env |
20.8 ± 0.6 | 19.4 | 25.5 | 1.00 |
mise env |
21.1 ± 0.5 | 19.7 | 22.7 | 1.02 ± 0.04 |
mise hook-env
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.2.4 hook-env |
21.6 ± 0.4 | 20.4 | 23.0 | 1.00 |
mise hook-env |
22.0 ± 0.5 | 20.7 | 25.3 | 1.02 ± 0.03 |
mise ls
| Command | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
mise-2026.2.4 ls |
19.5 ± 0.5 | 18.4 | 24.0 | 1.00 |
mise ls |
19.9 ± 0.5 | 18.7 | 21.4 | 1.02 ± 0.04 |
xtasks/test/perf
| Command | mise-2026.2.4 | mise | Variance |
|---|---|---|---|
| install (cached) | 114ms | 115ms | +0% |
| ls (cached) | 73ms | 73ms | +0% |
| bin-paths (cached) | 77ms | 78ms | -1% |
| task-ls (cached) | 542ms | 547ms | +0% |
### 🐛 Bug Fixes - **(lock)** remove experimental flag requirement for lockfiles by @jdx in [#8011](#8011) ### Chore - add tone calibration to release notes prompt by @jdx in [#8010](#8010) ## 📦 Aqua Registry Updates #### Updated Packages (1) - [`uutils/coreutils`](https://github.com/uutils/coreutils)
## Summary
- Remove `settings.ensure_experimental("lock")` check from `mise lock`
command — lockfiles were graduated from experimental in v2026.2.0
(jdx#7929) but this gate was missed
- Update docs in `tips-and-tricks.md` to no longer reference
experimental mode for lockfiles
- Remove unnecessary `MISE_EXPERIMENTAL=1` from all 15 lockfile e2e
tests
Fixes jdx#8009
## Test plan
- [ ] `mise lock` works without `experimental=true` setting
- [ ] Existing lockfile e2e tests pass without `MISE_EXPERIMENTAL=1`
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Low Risk**
> Removes a feature gate and updates docs/tests; behavior change is
limited to allowing `mise lock` to run without experimental settings.
>
> **Overview**
> **Lockfiles are no longer gated behind experimental mode.** The `mise
lock` CLI command now runs without calling
`settings.ensure_experimental("lock")`.
>
> Docs and e2e coverage were updated accordingly: the lockfile tip now
refers to lockfiles being enabled (not experimental mode), and all
lockfile-related e2e tests drop the `MISE_EXPERIMENTAL=1` env var while
continuing to run with `MISE_LOCKFILE=1`.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
5273aac. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
### 🐛 Bug Fixes - **(lock)** remove experimental flag requirement for lockfiles by @jdx in [jdx#8011](jdx#8011) ### Chore - add tone calibration to release notes prompt by @jdx in [jdx#8010](jdx#8010) ## 📦 Aqua Registry Updates #### Updated Packages (1) - [`uutils/coreutils`](https://github.com/uutils/coreutils)
Summary
settings.ensure_experimental("lock")check frommise lockcommand — lockfiles were graduated from experimental in v2026.2.0 (feat(lockfile): graduate lockfiles from experimental #7929) but this gate was missedtips-and-tricks.mdto no longer reference experimental mode for lockfilesMISE_EXPERIMENTAL=1from all 15 lockfile e2e testsFixes #8009
Test plan
mise lockworks withoutexperimental=truesettingMISE_EXPERIMENTAL=1🤖 Generated with Claude Code
Note
Low Risk
Removes a feature gate and updates docs/tests; behavior change is limited to allowing
mise lockto run without experimental settings.Overview
Lockfiles are no longer gated behind experimental mode. The
mise lockCLI command now runs without callingsettings.ensure_experimental("lock").Docs and e2e coverage were updated accordingly: the lockfile tip now refers to lockfiles being enabled (not experimental mode), and all lockfile-related e2e tests drop the
MISE_EXPERIMENTAL=1env var while continuing to run withMISE_LOCKFILE=1.Written by Cursor Bugbot for commit 5273aac. This will update automatically on new commits. Configure here.