Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
51a5bf0
refactor(registry): convert to nested TOML sections format
jdx Sep 21, 2025
c8a11e3
refactor: replace toml-sort with taplo for TOML formatting
jdx Sep 21, 2025
d0c06c1
fix: remove toml-sort from lint-fix script
jdx Sep 21, 2025
b4723b2
fix: remove taplo fmt from lint-fix script
jdx Sep 21, 2025
94aab19
[autofix.ci] apply automated fixes
autofix-ci[bot] Sep 21, 2025
e9934b2
feat(registry): format TOML files with description fields first
jdx Sep 21, 2025
52f90f6
feat(registry): sort TOML fields alphabetically
jdx Sep 21, 2025
621c49d
feat(schema): add JSON schema for settings.toml
jdx Sep 21, 2025
4b24006
feat(lint): improve taplo linting to check formatting
jdx Sep 21, 2025
82bd214
feat(render): update generated files after registry refactoring
jdx Sep 21, 2025
daaccfd
refactor(schema): remove unnecessary docs/schema copy
jdx Sep 21, 2025
a80b688
fix(schema): revert unintended enum reordering in mise.json
jdx Sep 21, 2025
86efccd
[autofix.ci] apply automated fixes
autofix-ci[bot] Sep 21, 2025
a2e8883
fix(taplo): preserve logical enum ordering in settings.toml
jdx Sep 21, 2025
90b9a9d
fix(schema): regenerate mise.json with correct enum ordering
jdx Sep 21, 2025
f47c8fe
fix(taplo): disable array reordering to preserve semantic order
jdx Sep 21, 2025
7c52fac
[autofix.ci] apply automated fixes
autofix-ci[bot] Sep 21, 2025
0c9c41d
refactor(registry): convert from flat to nested TOML format
jdx Sep 21, 2025
c976dab
[autofix.ci] apply automated fixes
autofix-ci[bot] Sep 21, 2025
205e224
Merge branch 'main' into registry-refactor
jdx Sep 21, 2025
1027ae8
chore: remove conversion tool and fix CI
jdx Sep 21, 2025
bc976c3
[autofix.ci] apply automated fixes
autofix-ci[bot] Sep 21, 2025
5628322
Merge branch 'main' into registry-refactor
jdx Sep 21, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .taplo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Taplo configuration for mise

exclude = ["docs/registry.toml", "docs/settings.toml"]


[formatting]
align_entries = false
array_auto_collapse = true
array_auto_expand = true
indent_tables = false
reorder_keys = false

[[rule]]
include = ["registry.toml"]
schema.path = "./schema/mise-registry.json"

[rule.formatting]
reorder_keys = true
reorder_arrays = false

[[rule]]
include = ["settings.toml"]
schema.path = "./schema/mise-settings.json"

[rule.formatting]
reorder_keys = true
reorder_arrays = false
12 changes: 10 additions & 2 deletions hk.pkl
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
amends "package://github.com/jdx/hk/releases/download/v1.14.0/hk@1.14.0#/Config.pkl"
import "package://github.com/jdx/hk/releases/download/v1.14.0/hk@1.14.0#/Builtins.pkl"
amends "package://github.com/jdx/hk/releases/download/v1.15.1/hk@1.15.1#/Config.pkl"
import "package://github.com/jdx/hk/releases/download/v1.15.1/hk@1.15.1#/Builtins.pkl"

local bash_glob = List("*.sh", "xtasks/**", "scripts/**", "e2e/**")
local bash_exclude = List("*.ps1", "**/*.fish", "*.ts", "*.js", "*.json", "*.bat", "**/.*", "src/assets/bash_zsh_support/**", "e2e/shell/xonsh_script")
Expand Down Expand Up @@ -40,6 +40,14 @@ fi
glob = "*.pkl"
check = "pkl eval {{files}} >/dev/null"
}

// uses taplo for TOML formatting and validation
["taplo"] {
glob = List("*.toml")
exclude = List("docs/registry.toml") // exclude docs/registry.toml symlink
check = "taplo fmt --check {{files}} && taplo check {{files}}"
fix = "taplo fmt {{files}} && taplo check {{files}}"
}
}

hooks {
Expand Down
4 changes: 0 additions & 4 deletions mise.lock
Original file line number Diff line number Diff line change
Expand Up @@ -139,10 +139,6 @@ backend = "npm:markdownlint-cli"
version = "3.6.2"
backend = "npm:prettier"

[[tools."pipx:toml-sort"]]
version = "0.24.3"
backend = "pipx:toml-sort"

[[tools.pkl]]
version = "0.29.1"
backend = "aqua:apple/pkl"
Expand Down
1 change: 0 additions & 1 deletion mise.toml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,6 @@ hk = "latest"
"npm:markdownlint-cli" = "latest"
"npm:prettier" = "3"
"npm:ajv-cli" = "latest"
"pipx:toml-sort" = "latest"
pkl = "latest"
pre-commit = "latest"
#"python" = { version = "latest", virtualenv = "{{env.HOME}}/.cache/venv" }
Expand Down
8,580 changes: 4,941 additions & 3,639 deletions registry.toml

Large diffs are not rendered by default.

114 changes: 114 additions & 0 deletions schema/mise-registry.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://mise.jdx.dev/schema/mise-registry.json",
"title": "mise registry schema",
"description": "Schema for the mise tool registry",
"type": "object",
"properties": {
"tools": {
"type": "object",
"description": "Registry of all available tools",
"patternProperties": {
"^[a-zA-Z0-9_.-]+$": {
"$ref": "#/definitions/tool"
}
},
"additionalProperties": false
}
},
"required": ["tools"],
"additionalProperties": false,
"definitions": {
"tool": {
"type": "object",
"properties": {
"description": {
"type": "string",
"description": "A brief description of the tool"
},
"aliases": {
"type": "array",
"items": {
"type": "string"
},
"description": "Alternative names for the tool"
},
"backends": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"description": "Backend specification as a string (e.g., 'asdf:plugin-name')"
},
{
"type": "object",
"properties": {
"full": {
"type": "string",
"description": "Full backend specification"
},
"platforms": {
"type": "array",
"items": {
"type": "string"
},
"description": "Specific platforms this backend supports"
}
},
"required": ["full"],
"additionalProperties": false
}
]
},
"description": "List of backends that can install this tool",
"minItems": 1
},
"test": {
"type": "array",
"items": {
"type": "string"
},
"description": "Command to test the tool installation [command, expected_output]",
"minItems": 2,
"maxItems": 2
},
"os": {
"type": "array",
"items": {
"type": "string",
"enum": [
"linux",
"macos",
"windows",
"freebsd",
"openbsd",
"netbsd",
"dragonfly",
"solaris",
"android",
"ios"
]
},
"description": "Operating systems this tool supports (empty means all)"
},
"depends": {
"type": "array",
"items": {
"type": "string"
},
"description": "Other tools this tool depends on"
},
"idiomatic_files": {
"type": "array",
"items": {
"type": "string"
},
"description": "Files that indicate this tool should be used in a project"
}
},
"required": ["backends"],
"additionalProperties": false
}
}
}
127 changes: 127 additions & 0 deletions schema/mise-settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://mise.jdx.dev/schema/mise-settings.json",
"title": "Mise Settings Schema",
"description": "JSON schema for mise settings.toml configuration file",
"type": "object",
"patternProperties": {
"^[a-zA-Z0-9_]+$": {
"oneOf": [
{
"$ref": "#/definitions/setting"
},
{
"type": "object",
"patternProperties": {
"^[a-zA-Z0-9_]+$": {
"$ref": "#/definitions/setting"
}
},
"additionalProperties": false
}
]
}
},
"additionalProperties": false,
"definitions": {
"setting": {
"type": "object",
"properties": {
"aliases": {
"type": "array",
"items": {
"type": "string"
},
"description": "Alternative names for this setting"
},
"default": {
"description": "Default value for this setting"
},
"default_docs": {
"type": "string",
"description": "Documentation for the default value shown in docs"
},
"deprecated": {
"type": "string",
"description": "Deprecation message if this setting is deprecated"
},
"description": {
"type": "string",
"description": "Brief description of what this setting does"
},
"deserialize_with": {
"type": "string",
"description": "Custom deserialization function to use"
},
"docs": {
"type": "string",
"description": "Detailed documentation for this setting"
},
"enum": {
"type": "array",
"description": "List of allowed values for this setting",
"items": {
"oneOf": [
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 2
},
{
"type": "string"
}
]
}
},
"env": {
"type": "string",
"description": "Environment variable name that can set this setting"
},
"hide": {
"type": "boolean",
"description": "Whether to hide this setting from documentation"
},
"optional": {
"type": "boolean",
"description": "Whether this setting is optional"
},
"parse_env": {
"type": "string",
"enum": [
"bool_string",
"list_by_comma",
"list_by_colon",
"set_by_comma",
"parse_url_replacements"
],
"description": "How to parse the environment variable value"
},
"rust_type": {
"type": "string",
"description": "Rust type used internally for this setting"
},
"type": {
"type": "string",
"enum": [
"Bool",
"String",
"Integer",
"Path",
"Url",
"Duration",
"ListString",
"ListPath",
"SetString",
"IndexMap<String, String>"
],
"description": "Type of this setting"
}
},
"required": ["description"],
"additionalProperties": false
}
}
}
Loading
Loading