Compare commits

...

1 Commits

Author SHA1 Message Date
be57181cdd fix: resolve shell startup errors and streamline tool management
- Guard brew shellenv in fish config with test -x for Linux compat
- Pin Python to 3.13 with compile=true (freethreaded builds broken)
- Pin neovim, go, terraform, aws-cli, cmake, dotnet-ef to stable versions
- Remove hugo and gdu from mise (unused / broken upstream)
- Comment out pipx-backed tools (mise can't find uvx when self-managed)
- Move mise [settings] above [tools] with pipx.uvx=true
- Fix dnf group name for dnf5 (development-tools lowercase)
- Remove vendored fzf binary (now managed by mise)
- Simplify Dotbot: force-relink mise config, targeted ~/.local clean,
  remove fzf custom linking (now via standard ~/.config/ glob)
- Fix lint gate hook to find yarn via mise shims
2026-03-21 22:05:51 +02:00
7 changed files with 58 additions and 47 deletions

View File

@@ -4,6 +4,11 @@
cd "$CLAUDE_PROJECT_DIR" || exit 0 cd "$CLAUDE_PROJECT_DIR" || exit 0
# Ensure node/yarn are on PATH via mise
eval "$(mise activate bash --shims)" 2> /dev/null
node_dir="$(mise where node 2> /dev/null)/bin"
[ -d "$node_dir" ] && export PATH="$node_dir:$PATH"
output=$(yarn lint 2>&1) output=$(yarn lint 2>&1)
status=$? status=$?

View File

@@ -1,4 +1,4 @@
[tools] [tools]
node = "24.14.0" node = "24.14.0"
python = "3.14.3" python = "3.13.12"
go = "1.26.1" go = "1.26.1"

View File

@@ -52,4 +52,4 @@ source ~/.orbstack/shell/init2.fish 2>/dev/null || :
if status is-interactive; and not set -q GITHUB_TOKEN if status is-interactive; and not set -q GITHUB_TOKEN
echo "Warning: GITHUB_TOKEN is not set" >&2 echo "Warning: GITHUB_TOKEN is not set" >&2
end end
eval "$(/opt/homebrew/bin/brew shellenv fish)" test -x /opt/homebrew/bin/brew; and eval "$(/opt/homebrew/bin/brew shellenv fish)"

View File

@@ -1,8 +1,34 @@
[settings]
# Use uvx (from uv) instead of requiring pipx to be installed separately
pipx.uvx = true
# Compile Python from source — precompiled freethreaded builds lack a lib/ dir
python.compile = true
trusted_config_paths = [
"~/Code/ivuorinen",
"~/Code/s",
"~/Code/masf",
]
# Respect .nvmrc, .python-version, .ruby-version, etc. in other projects.
# This repo uses .mise.toml at the repo root for pinned versions.
idiomatic_version_file = true
idiomatic_version_file_enable_tools = [
"node", "python", "ruby", "go", "java",
"terraform", "yarn", "bun", "deno", "dotnet",
]
# Generate mise.lock for reproducible installs
lockfile = true
# Save disk space — don't keep downloaded archives or failed installs
always_keep_download = false
always_keep_install = false
experimental = true
[tools] [tools]
# Language runtimes # Language runtimes
node = "lts" node = "lts"
python = "3" python = "3.13"
go = "latest" go = "1.26.1"
rust = "stable" rust = "stable"
# Pre-built binaries via aqua registry # Pre-built binaries via aqua registry
@@ -12,7 +38,7 @@ eza = "latest"
bottom = "latest" bottom = "latest"
zoxide = "latest" zoxide = "latest"
tree-sitter = "latest" tree-sitter = "latest"
neovim = "latest" # Neovim editor binary neovim = "0.11.6" # Neovim editor binary
delta = "latest" delta = "latest"
difftastic = "latest" difftastic = "latest"
@@ -38,25 +64,27 @@ editorconfig-checker = "latest"
"npm:corepack" = "latest" "npm:corepack" = "latest"
# Python tools (via pipx backend) # Python tools (via pipx backend)
"pipx:detect-secrets" = "latest" # Disabled: mise pipx backend can't find uvx when uv is mise-managed
"pipx:git-filter-repo" = "latest" # See https://github.com/jdx/mise/discussions/7477
# "pipx:detect-secrets" = "latest"
# "pipx:git-filter-repo" = "latest"
yamllint = "latest" yamllint = "latest"
ansible = "latest" # ansible = "13.4.0"
"pipx:ansible-lint" = "latest" # "pipx:ansible-lint" = "latest"
ruff = "latest" ruff = "latest"
"pipx:openapi-python-client" = "latest" # "pipx:openapi-python-client" = "latest"
"pipx:python-lsp-server[websockets]" = "latest" # "pipx:python-lsp-server[websockets]" = "latest"
# .NET tools (via dotnet backend) # .NET tools (via dotnet backend)
"dotnet:coverlet.console" = "latest" "dotnet:coverlet.console" = "latest"
"dotnet:csharpier" = "latest" "dotnet:csharpier" = "latest"
"dotnet:ilspycmd" = "latest" "dotnet:ilspycmd" = "latest"
"dotnet:dotnet-ef" = "latest" "dotnet:dotnet-ef" = "10.0.5"
# DevOps & security tools # DevOps & security tools
act = "latest" act = "latest"
age = "latest" age = "latest"
aws-cli = "latest" aws-cli = "2.34.14"
checkov = "latest" checkov = "latest"
grype = "latest" grype = "latest"
pinact = "latest" pinact = "latest"
@@ -71,12 +99,10 @@ lazygit = "latest"
bat = "latest" bat = "latest"
bats = "latest" bats = "latest"
choose = "latest" choose = "latest"
cmake = "latest" cmake = "4.3.0"
gdu = "latest"
github-cli = "latest" github-cli = "latest"
jq = "latest" jq = "latest"
hadolint = "latest" hadolint = "latest"
hugo = "latest"
just = "latest" just = "latest"
yq = "latest" yq = "latest"
"github:exercism/cli" = "latest" "github:exercism/cli" = "latest"
@@ -92,31 +118,9 @@ oh-my-posh = "latest"
"github:wakatime/wakatime-cli" = "latest" "github:wakatime/wakatime-cli" = "latest"
# Terraform (replaces tfenv) # Terraform (replaces tfenv)
terraform = "latest" terraform = "1.14.7"
tflint = "latest" tflint = "latest"
tfsec = "latest" tfsec = "latest"
# Other useful tools # Other useful tools
uv = "latest" uv = "latest"
[settings]
trusted_config_paths = [
"~/Code/ivuorinen",
"~/Code/s",
"~/Code/masf",
]
# Respect .nvmrc, .python-version, .ruby-version, etc. in other projects.
# This repo uses .mise.toml at the repo root for pinned versions.
idiomatic_version_file = true
idiomatic_version_file_enable_tools = [
"node", "python", "ruby", "go", "java",
"terraform", "yarn", "bun", "deno", "dotnet",
]
# Generate mise.lock for reproducible installs
lockfile = true
# Save disk space — don't keep downloaded archives or failed installs
always_keep_download = false
always_keep_install = false
experimental = true

View File

@@ -5,8 +5,10 @@
~/: ~/:
~/.config: ~/.config:
recursive: true recursive: true
~/.local: ~/.local/bin:
~/.local/man:
recursive: true recursive: true
~/.local/share:
~/.ssh: ~/.ssh:
recursive: true recursive: true
@@ -35,12 +37,16 @@
glob: true glob: true
path: base/* path: base/*
prefix: "." prefix: "."
# mise config — force-relink because mise may create the file before Dotbot runs
~/.config/mise/config.toml:
force: true
path: config/mise/config.toml
# Most of the configs # Most of the configs
~/.config/: ~/.config/:
glob: true glob: true
relink: true relink: true
path: config/* path: config/*
exclude: [config/fzf, config/op] exclude: [config/op, config/mise]
# 1Password CLI plugins # 1Password CLI plugins
~/.config/op/plugins.sh: ~/.config/op/plugins.sh:
relink: true relink: true
@@ -52,10 +58,6 @@
~/.local/bin: ~/.local/bin:
glob: true glob: true
path: local/bin/* path: local/bin/*
exclude: [local/bin/fzf]
~/.local/fzf:
glob: true
path: config/fzf/*
# Manuals # Manuals
~/.local/man: ~/.local/man:
glob: true glob: true

Binary file not shown.

View File

@@ -42,11 +42,11 @@ packages=(
# Install the Development Tools dnf group # Install the Development Tools dnf group
install_dev_tools_group() install_dev_tools_group()
{ {
if dnf group list installed 2> /dev/null | grep -q "Development Tools"; then if dnf group list installed 2> /dev/null | grep -q "development-tools"; then
msgr ok "@development-tools group already installed" msgr ok "@development-tools group already installed"
else else
msgr run "Installing @development-tools group" msgr run "Installing @development-tools group"
sudo dnf group install -y "Development Tools" sudo dnf group install -y "development-tools"
fi fi
return 0 return 0
} }