refactor(registry): remove [key=value] options syntax from backends#8146
refactor(registry): remove [key=value] options syntax from backends#8146
Conversation
Summary of ChangesHello @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
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.
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)
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)
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} }}')
There was a problem hiding this comment.
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/*.tomlentries from bracketed backend options (and some inlinebackends = [...]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.
### 🚀 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)
### 🚀 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)
This prevents #8039