Skip to content

refactor(registry): remove [key=value] options syntax from backends#8146

Merged
jdx merged 3 commits intojdx:mainfrom
risu729:registry-options-no-brackets
Feb 15, 2026
Merged

refactor(registry): remove [key=value] options syntax from backends#8146
jdx merged 3 commits intojdx:mainfrom
risu729:registry-options-no-brackets

Conversation

@risu729
Copy link
Contributor

@risu729 risu729 commented Feb 14, 2026

This prevents #8039

Copilot AI review requested due to automatic review settings February 14, 2026 08:08
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @risu729, 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 standardizes the configuration of backend options within the registry TOML files. By transitioning from an inline bracket syntax to a dedicated options table, it enhances the readability and maintainability of these configuration files. This change also addresses a reported issue related to the previous format, improving the robustness of the registry definitions.

Highlights

  • Configuration Format Refactoring: The pull request refactors the way backend options are defined in registry TOML files, moving from an inline [key=value] bracket notation within the backends string to a more structured [backends.options] table format.
  • Automated Migration Script: A new Python script, xtasks/remove-bracket-opts.py, has been introduced to automate the conversion of existing registry TOML files to the new configuration format, ensuring consistency across the codebase.
  • Schema Update: The schema/mise-registry-tool.json file has been updated to reflect the new configuration structure, specifically allowing boolean values for backend options, which was previously restricted to strings.
Changelog
  • registry/ansible.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/astro.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/aws-amplify.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/azure.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/babashka.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/bitwarden-secrets-manager.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/bosh-backup-and-restore.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/buck2.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/carp.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/clusterawsadm.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/codefresh.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/codeql.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/coursier.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/d2.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/databricks-cli.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/daytona.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/depot.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/djinni.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/doppler.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/dtm.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/dynatrace-monaco.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/elm.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/figma-export.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/flarectl.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/flatc.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/fluttergen.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/flyway.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/gam.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/glab.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/grain.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/graphite.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/helm-diff.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/jwtui.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/k3kcli.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/kotlin.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/kpack.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/kube-controller-tools.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/libsql-server.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/localstack.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/mdbook-linkcheck.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/micronaut.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/odin.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/opam.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/openbao.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/opsgenie-lamp.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/podman.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/protoc-gen-js.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/purescript.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/railway.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/schemacrawler.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/signadot.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/soft-serve.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/solidity.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/sourcery.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/starknet-foundry-sncast.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/starknet-foundry.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/swiftformat.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/swiftgen.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/tanzu.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/tfswitch.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/transifex.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/tsuru.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/weave-gitops.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/yt-dlp.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • registry/zprint.toml
    • Refactored backend options from inline bracket notation to a dedicated [backends.options] table.
  • schema/mise-registry-tool.json
    • Updated the schema to allow boolean values for additionalProperties within backend options.
  • xtasks/remove-bracket-opts.py
    • Added a new Python script to automate the migration of TOML registry files from inline bracket options to the new [backends.options] table format.
Activity
  • The pull request was created to address and prevent issues discussed in https://github.com/jdx/mise/discussions/8039 by refactoring registry option formatting.
  • A new Python script xtasks/remove-bracket-opts.py was added to facilitate the automated migration of existing registry files to the new format.
  • Numerous registry/*.toml files were modified to apply the new structured [backends.options] table format, replacing the old inline bracket notation.
  • The schema/mise-registry-tool.json was updated to support the new boolean option types introduced by the refactoring.
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.

@risu729 risu729 changed the title refactor: remove [key=value] formatting from registry options refactor(registry): remove [key=value] syntax from backends Feb 14, 2026
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

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 is a large-scale refactoring to remove a custom [key=value] syntax from backend definitions in registry TOML files, replacing it with a more standard TOML structure. This is a good improvement for maintainability. The changes are applied via a new script, xtasks/remove-bracket-opts.py. While the refactoring is generally correct, the script has a flaw that leads to generating invalid TOML for files where multiple backends have options, as seen in registry/glab.toml. I've provided comments on how to fix the script and the resulting invalid file.

I am having trouble creating individual review comments. Click here to see my feedback.

registry/glab.toml (4-19)

critical

The generated TOML in this file is invalid because the table [backends.options] is defined multiple times. TOML table names must be unique. This will cause parsing errors for this tool definition.

To fix this, you should use inline tables for the options, which is valid, more portable, and supported by the schema. The script in xtasks/remove-bracket-opts.py should be updated to generate this format.

[[backends]]
full = "gitlab:gitlab-org/cli"
platforms = ["linux", "macos"]
options = { exe = "glab" }

[[backends]]
full = "gitlab:gitlab-org/cli"
platforms = ["windows"]
options = { exe = "glab" }

[[backends]]
full = "asdf:mise-plugins/mise-glab"

xtasks/remove-bracket-opts.py (161-165)

high

This logic for generating [backends.options] is flawed. If multiple backends in a file have options (like in registry/glab.toml), this will generate multiple [backends.options] tables, which is invalid TOML and will cause parsing to fail. A similar issue exists in process_table_array.

You should modify the script to generate options as an inline table within each [[backends]] block, for example options = { key = "value" }. This is valid, portable, and avoids the issue of redefining tables.

        if opts:
            opts_str = ", ".join(f'{k} = {format_opts_value(v)}' for k, v in opts.items())
            result_lines.append(f'options = {{ {opts_str} }}')

@risu729 risu729 changed the title refactor(registry): remove [key=value] syntax from backends refactor(registry): remove [key=value] options syntax from backends Feb 14, 2026
Copy link
Contributor

Copilot AI left a comment

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 legacy inline [key=value] bracket option syntax from registry backend strings by converting those options into explicit TOML backends.options tables, preventing parsing/formatting ambiguity reported in the linked discussion.

Changes:

  • Added an xtask script to migrate registry entries away from [key=value] backend formatting.
  • Updated the registry tool JSON schema to allow boolean option values (in addition to strings).
  • Converted affected registry/*.toml entries from bracketed backend options (and some inline backends = [...] arrays) into [[backends]] tables with [backends.options].

Reviewed changes

Copilot reviewed 66 out of 66 changed files in this pull request and generated no comments.

Show a summary per file
File Description
xtasks/remove-bracket-opts.py New migration script to rewrite bracket options into TOML tables.
schema/mise-registry-tool.json Schema update to allow boolean values in backend options.
registry/ansible.toml Converted pipx backend bracket options to [backends.options].
registry/astro.toml Converted GitHub backend bracket options to [backends.options].
registry/aws-amplify.toml Converted GitHub backend bracket options to [backends.options].
registry/azure.toml Converted pipx backend bracket options to [backends.options].
registry/babashka.toml Converted GitHub backend bracket options to [backends.options].
registry/bitwarden-secrets-manager.toml Converted GitHub backend bracket options to [backends.options].
registry/bosh-backup-and-restore.toml Converted inline array backends to [[backends]] + [backends.options].
registry/buck2.toml Converted GitHub backend bracket options to [backends.options].
registry/carp.toml Converted GitHub backend bracket options to [backends.options].
registry/clusterawsadm.toml Converted inline array backends to [[backends]] + [backends.options].
registry/codefresh.toml Converted inline array backends to [[backends]] + [backends.options].
registry/codeql.toml Converted GitHub backend bracket options to [backends.options] (preserving platform sub-tables).
registry/coursier.toml Converted inline array backends to [[backends]] + [backends.options].
registry/d2.toml Split mixed backends into [[backends]] entries; moved bracket option to [backends.options].
registry/databricks-cli.toml Converted GitHub backend bracket options to [backends.options].
registry/daytona.toml Converted GitHub backend bracket options to [backends.options] (preserving existing options/platform overrides).
registry/depot.toml Converted inline array backends to [[backends]] + [backends.options].
registry/djinni.toml Converted inline array backends to [[backends]] + [backends.options].
registry/doppler.toml Converted inline array backends to [[backends]] + [backends.options].
registry/dtm.toml Converted inline array backends to [[backends]] + [backends.options].
registry/dynatrace-monaco.toml Converted inline array backends to [[backends]] + [backends.options].
registry/elm.toml Converted inline array backends to [[backends]] + [backends.options].
registry/figma-export.toml Converted inline array backends to [[backends]] + [backends.options].
registry/flarectl.toml Converted inline array backends to [[backends]] + [backends.options].
registry/flatc.toml Converted inline array backends to [[backends]] + [backends.options].
registry/fluttergen.toml Converted inline array backends to [[backends]] + [backends.options].
registry/flyway.toml Converted GitHub backend bracket options to [backends.options] (preserving platform sub-tables).
registry/gam.toml Converted inline array backends to [[backends]] + [backends.options].
registry/glab.toml Expanded inline tables with bracket opts into multiple [[backends]] entries with [backends.options].
registry/graphite.toml Converted inline array backends to [[backends]] + [backends.options].
registry/grain.toml Converted inline array backends to [[backends]] + [backends.options].
registry/helm-diff.toml Converted inline array backends to [[backends]] + [backends.options].
registry/jwtui.toml Converted inline array backends to [[backends]] + [backends.options].
registry/k3kcli.toml Converted inline array backends to [[backends]] + [backends.options].
registry/kotlin.toml Converted inline array backends to [[backends]] + [backends.options].
registry/kpack.toml Converted inline array backends to [[backends]] + [backends.options].
registry/kube-controller-tools.toml Converted inline array backends to [[backends]] + [backends.options].
registry/libsql-server.toml Converted inline array backends to [[backends]] + [backends.options].
registry/localstack.toml Converted inline array backends to [[backends]] + [backends.options].
registry/mdbook-linkcheck.toml Converted inline array backends to [[backends]] + [backends.options].
registry/micronaut.toml Converted inline array backends to [[backends]] + [backends.options].
registry/odin.toml Converted inline array backends to [[backends]] + [backends.options].
registry/opam.toml Converted inline array backends to [[backends]] + [backends.options].
registry/openbao.toml Converted GitHub backend bracket options to [backends.options].
registry/opsgenie-lamp.toml Converted inline array backends to [[backends]] + [backends.options].
registry/podman.toml Converted inline array backends to [[backends]] + [backends.options].
registry/protoc-gen-js.toml Converted inline array backends to [[backends]] + [backends.options].
registry/purescript.toml Converted inline array backends to [[backends]] + [backends.options].
registry/railway.toml Converted inline array backends to [[backends]] + [backends.options].
registry/schemacrawler.toml Converted GitHub backend bracket options to [backends.options].
registry/signadot.toml Converted inline array backends to [[backends]] + [backends.options].
registry/soft-serve.toml Converted inline array backends to [[backends]] + [backends.options].
registry/solidity.toml Converted inline array backends to [[backends]] + [backends.options].
registry/sourcery.toml Converted inline array backends to [[backends]] + [backends.options].
registry/starknet-foundry-sncast.toml Converted GitHub backend bracket options to [backends.options].
registry/starknet-foundry.toml Converted GitHub backend bracket options to [backends.options].
registry/swiftformat.toml Converted inline array backends to [[backends]] + [backends.options] (introduces boolean option).
registry/swiftgen.toml Converted inline array backends to [[backends]] + [backends.options].
registry/tanzu.toml Converted GitHub backend bracket options to [backends.options].
registry/tfswitch.toml Converted inline array backends to [[backends]] + [backends.options].
registry/transifex.toml Converted inline array backends to [[backends]] + [backends.options].
registry/tsuru.toml Converted inline array backends to [[backends]] + [backends.options].
registry/weave-gitops.toml Converted inline array backends to [[backends]] + [backends.options].
registry/yt-dlp.toml Converted inline array backends to [[backends]] + [backends.options].
registry/zprint.toml Converted GitHub backend bracket options to [backends.options] (preserving platform sub-tables).

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@jdx jdx merged commit eb9e9b7 into jdx:main Feb 15, 2026
40 checks passed
@risu729 risu729 deleted the registry-options-no-brackets branch February 15, 2026 13:54
mise-en-dev added a commit that referenced this pull request Feb 16, 2026
### 🚀 Features

- **(vfox)** allow plugins to request env var redaction via
MiseEnvResult by @jdx in [#8166](#8166)
- add a default_host setting for rust by @aacebedo in
[#8154](#8154)
- add github_content package support for aqua backend by @risu729 in
[#8147](#8147)
- support devEngines.runtime in deno by @risu729 in
[#8144](#8144)

### 🐛 Bug Fixes

- **(asset_matcher)** penalize vsix files by @risu729 in
[#8151](#8151)
- **(edit)** strip formatting whitespace from TOML values in `mise edit`
by @jdx in [#8162](#8162)
- **(install)** improve --locked support for python and ubi backends by
@jdx in [#8163](#8163)
- **(npm)** suppress npm update notifier while npm install by @risu729
in [#8152](#8152)
- **(schema)** add task_templates, extends, and timeout by @risu729 in
[#8145](#8145)

### 🚜 Refactor

- **(registry)** remove [key=value] options syntax from backends by
@risu729 in [#8146](#8146)

### 📚 Documentation

- **(settings)** remove wrong tip for github_attestations by @risu729 in
[#8158](#8158)

### Chore

- **(release-plz)** delete embedded plugins directory before update by
@risu729 in [#8149](#8149)
- adds necessary env var to the mcp help message in cli by @joaommartins
in [#8133](#8133)

### New Contributors

- @joaommartins made their first contribution in
[#8133](#8133)

## 📦 Aqua Registry Updates

#### New Packages (5)

- [`containers/podlet`](https://github.com/containers/podlet)
-
[`hickford/git-credential-azure`](https://github.com/hickford/git-credential-azure)
-
[`hickford/git-credential-oauth`](https://github.com/hickford/git-credential-oauth)
- [`kovetskiy/mark`](https://github.com/kovetskiy/mark)
- [`openbao/openbao/bao`](https://github.com/openbao/openbao/bao)
lucasew pushed a commit to lucasew/CONTRIB-mise that referenced this pull request Feb 18, 2026
lucasew pushed a commit to lucasew/CONTRIB-mise that referenced this pull request Feb 18, 2026
### 🚀 Features

- **(vfox)** allow plugins to request env var redaction via
MiseEnvResult by @jdx in [jdx#8166](jdx#8166)
- add a default_host setting for rust by @aacebedo in
[jdx#8154](jdx#8154)
- add github_content package support for aqua backend by @risu729 in
[jdx#8147](jdx#8147)
- support devEngines.runtime in deno by @risu729 in
[jdx#8144](jdx#8144)

### 🐛 Bug Fixes

- **(asset_matcher)** penalize vsix files by @risu729 in
[jdx#8151](jdx#8151)
- **(edit)** strip formatting whitespace from TOML values in `mise edit`
by @jdx in [jdx#8162](jdx#8162)
- **(install)** improve --locked support for python and ubi backends by
@jdx in [jdx#8163](jdx#8163)
- **(npm)** suppress npm update notifier while npm install by @risu729
in [jdx#8152](jdx#8152)
- **(schema)** add task_templates, extends, and timeout by @risu729 in
[jdx#8145](jdx#8145)

### 🚜 Refactor

- **(registry)** remove [key=value] options syntax from backends by
@risu729 in [jdx#8146](jdx#8146)

### 📚 Documentation

- **(settings)** remove wrong tip for github_attestations by @risu729 in
[jdx#8158](jdx#8158)

### Chore

- **(release-plz)** delete embedded plugins directory before update by
@risu729 in [jdx#8149](jdx#8149)
- adds necessary env var to the mcp help message in cli by @joaommartins
in [jdx#8133](jdx#8133)

### New Contributors

- @joaommartins made their first contribution in
[jdx#8133](jdx#8133)

## 📦 Aqua Registry Updates

#### New Packages (5)

- [`containers/podlet`](https://github.com/containers/podlet)
-
[`hickford/git-credential-azure`](https://github.com/hickford/git-credential-azure)
-
[`hickford/git-credential-oauth`](https://github.com/hickford/git-credential-oauth)
- [`kovetskiy/mark`](https://github.com/kovetskiy/mark)
- [`openbao/openbao/bao`](https://github.com/openbao/openbao/bao)
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.

3 participants