Skip to content

fix(lock): remove experimental flag requirement for lockfiles#8011

Merged
jdx merged 1 commit into
mainfrom
fix/lockfile-experimental-flag
Feb 5, 2026
Merged

fix(lock): remove experimental flag requirement for lockfiles#8011
jdx merged 1 commit into
mainfrom
fix/lockfile-experimental-flag

Conversation

@jdx

@jdx jdx commented Feb 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • Remove settings.ensure_experimental("lock") check from mise lock command — lockfiles were graduated from experimental in v2026.2.0 (feat(lockfile): graduate lockfiles from experimental #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 #8009

Test plan

  • mise lock works without experimental=true setting
  • Existing lockfile e2e tests pass without MISE_EXPERIMENTAL=1

🤖 Generated with Claude Code


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.

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

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>
Copilot AI review requested due to automatic review settings February 5, 2026 11:39
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Summary of Changes

Hello @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 mise from experimental status. It removes the programmatic checks that enforced experimental mode for lockfile usage, updates user-facing documentation to reflect this change, and cleans up associated end-to-end tests by removing the experimental flag requirement, ensuring a smoother experience for users leveraging lockfiles.

Highlights

  • Lockfile Experimental Flag Removal: The settings.ensure_experimental("lock") check has been removed from the mise lock command, signifying that lockfiles are no longer an experimental feature in mise.
  • Documentation Update: The documentation in docs/tips-and-tricks.md has been updated to reflect that lockfiles are no longer in experimental mode, removing references to enabling experimental features for their use.
  • E2E Test Simplification: The MISE_EXPERIMENTAL=1 environment variable has been removed from all 15 lockfile end-to-end tests, streamlining the test setup now that the feature is stable.
Changelog
  • docs/tips-and-tricks.md
    • Updated the description of mise.lock to state 'When lockfiles are enabled' instead of 'If you enable experimental mode', reflecting its stable status.
  • e2e/cli/test_lock
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/cli/test_lock_creation
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/cli/test_lock_future
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/cli/test_lock_platform_merge
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/lockfile/test_lockfile_aqua_format_mismatch
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/lockfile/test_lockfile_assets
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/lockfile/test_lockfile_backend
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/lockfile/test_lockfile_env
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/lockfile/test_lockfile_env_resolution
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/lockfile/test_lockfile_exec
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/lockfile/test_lockfile_install
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/lockfile/test_lockfile_local
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/lockfile/test_lockfile_upgrade_prune
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/lockfile/test_lockfile_urls
    • Removed export MISE_EXPERIMENTAL=1.
  • e2e/lockfile/test_lockfile_use
    • Removed export MISE_EXPERIMENTAL=1.
  • src/cli/lock.rs
    • Removed the line settings.ensure_experimental("lock")?; from the run method of the Lock struct, allowing lockfiles to be used without an experimental flag.
Activity
  • The pull request was created with a clear summary of changes and a test plan.
  • The author has outlined two specific test cases to ensure the changes work as expected: mise lock without experimental=true and existing lockfile e2e tests passing without MISE_EXPERIMENTAL=1.
  • The PR description indicates it was generated with 'Claude Code', suggesting AI assistance in its creation.
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

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 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 lock command
  • Updated documentation to reflect lockfiles as stable feature
  • Cleaned up 15 e2e test files by removing MISE_EXPERIMENTAL=1 environment 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.

@gemini-code-assist gemini-code-assist Bot 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.

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!

@github-actions

github-actions Bot commented Feb 5, 2026

Copy link
Copy Markdown

Hyperfine Performance

mise x -- echo

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%

@jdx jdx merged commit e37399b into main Feb 5, 2026
38 checks passed
@jdx jdx deleted the fix/lockfile-experimental-flag branch February 5, 2026 12:06
mise-en-dev added a commit that referenced this pull request Feb 6, 2026
### 🐛 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)
lucasew pushed a commit to lucasew/CONTRIB-mise that referenced this pull request Feb 18, 2026
## 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>
lucasew pushed a commit to lucasew/CONTRIB-mise that referenced this pull request Feb 18, 2026
### 🐛 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)
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