Skip to content

chore: ツール管理を mise 中心に再構成#322

Merged
tak848 merged 14 commits intomainfrom
chore/remove-aqua-directly
Jan 5, 2026
Merged

chore: ツール管理を mise 中心に再構成#322
tak848 merged 14 commits intomainfrom
chore/remove-aqua-directly

Conversation

@tak848
Copy link
Owner

@tak848 tak848 commented Jan 5, 2026

Summary

  • 大部分の CLI ツールを mise の aqua backend で管理
  • mise lock で checksum 取得不可のツール(aws-cli, 1password/cli, zoxide)のみ aqua CLI で管理
  • aqua CLI 自体は mise (github:aquaproj/aqua) でインストール

アーキテクチャ

mise (bootstrap)
  ├─ ランタイム: go, node, pnpm (core backend)
  ├─ CLI ツール: fzf, ripgrep, starship, etc. (aqua backend)
  ├─ npm グローバルパッケージ
  └─ aqua CLI (github backend)
       └─ checksum 取得不可: aws-cli, 1password/cli, zoxide

変更内容

追加・修正

  • dot_config/mise/config.toml: aqua CLI + CLI ツール追加
  • .mise.toml: aqua CLI 追加(リポジトリ作業用)
  • dot_config/aquaproj-aqua/: checksum 取得不可ツールのみ管理
  • CI を mise-action + aqua install に変更

削除

  • Homebrew からの aqua インストール
  • 不要な aqua 設定(大部分のツールは mise へ移行)

Test plan

  • CI が正常に動作することを確認
  • mise install && aqua install で全ツールがインストールされることを確認

- aqua で管理していた CLI ツールを mise の aqua backend に移行
- Go は mise の core backend を使用
- zsh 設定から aqua 関連の PATH/環境変数を削除
- Chezmoi スクリプトから aqua インストール処理を削除
- CI を mise ベースに変更
- Renovate から aqua-renovate-config を削除
- ドキュメントを更新
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 6375ce3c18

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines 28 to 32
- name: Install mise tools
run: |
aqua version
aqua install --test
cd dot_config/mise
mise install

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge CIでmiseのグローバル設定が読み込まれない

GitHub Actions で cd dot_config/mise && mise install を実行していますが、MISE_GLOBAL_CONFIG_FILE を渡していないため runner はデフォルトの ~/.config/mise/config.toml しか探さず、リポジトリ内の dot_config/mise/config.toml で定義している gh/fzf/rg/jq/starship/direnv/nvim/go などの CLI がインストール対象になりません(.mise.toml 8-16 行には node/pnpm/go-jsonnet/go-task しか定義されていません)。その後のバージョン確認ステップでこれらのコマンドが存在せず CI が必ず失敗するため、mise install 実行前に MISE_GLOBAL_CONFIG_FILE=dot_config/mise/config.toml を指定するなど設定ファイルを読み込ませる必要があります。

Useful? React with 👍 / 👎.

tak848 added 3 commits January 5, 2026 09:38
- aws-cli: aqua → ubi backend に変更(PKG 形式の問題)
- gopls: aqua → go backend に変更(go_install 非サポート)
- 1password/cli: aqua → vfox backend に変更(404 エラー)
- path-setup.tmpl から不要な MISE_GLOBAL_CONFIG_FILE を削除
- 1password/cli: vfox → aqua に戻し、バージョンを v2.32.0 に修正
- aws-cli: ubi → aqua に戻す
- gopls: go backend を使用(aqua が go_install 非サポートのため)
- path-setup.tmpl から不要な MISE_GLOBAL_CONFIG_FILE を削除
mise の aqua backend では一部ツールの checksum が取得できないため、
それらのツールのみ aqua CLI で直接管理する構成に変更。

- aqua CLI 管理: aws-cli, 1password/cli, zoxide
- mise 管理: その他全ての CLI ツール、ランタイム、npm パッケージ
- aqua CLI 自体は mise (github:aquaproj/aqua) でインストール
@tak848 tak848 changed the title chore: aqua を削除し mise に完全移行 chore: ツール管理を mise 中心に再構成 Jan 5, 2026
tak848 added 10 commits January 5, 2026 11:17
bash スクリプトは zshenv を読まないため、path-setup.tmpl に
AQUA_GLOBAL_CONFIG が必要
- CI: mise shim が設定ファイルを見つけられるよう MISE_CONFIG_FILE を設定
- Ghostty: Shift+Return で改行を送信するよう keybind を追加
- mise-action に cache_key_prefix を追加
- aqua ツール用の actions/cache を追加
- aqua.yaml と checksums に基づくキャッシュキー
- actions/cache を v5.0.1 に更新(Node.js 24 対応)
- aqua キャッシュキーに runner.arch を追加
- install: false の理由をコメントで明記
mise-action のキャッシュは dot_config/mise/ をパターン検出しないため、
actions/cache で明示的にキャッシュする
actions/cache を別途使う代わりに、mise-action の cache_key で
カスタムハッシュを指定
- actions/cache を mise-action の前に配置
- mise-action は install: true(デフォルト)で cache: false
- キャッシュ復元後に mise install が実行され、既存ツールはスキップ
actions/cache の別ステップではなく、mise-action の cache_key で
カスタムキャッシュキーを指定
@tak848 tak848 merged commit 89aa3f1 into main Jan 5, 2026
4 checks passed
@tak848 tak848 deleted the chore/remove-aqua-directly branch January 5, 2026 03:01
tak848 added a commit that referenced this pull request Feb 16, 2026
## 問題

Ghostty / VSCode で dotfiles ディレクトリを開くと以下のエラーが発生:

```
mise ERROR no tasks defined in ~/repos/github.com/tak848/dotfiles. Are you in a project directory?
error: unexpected argument '--zsh' found
error: unexpected argument '--completion' found
```

## 根本原因

### 1. 残骸 shim

PR #322 (`89aa3f1`, Jan 5) で zoxide を mise → aqua CLI に移行した際、
`~/.local/share/mise/shims/zoxide` と
`~/.local/share/mise/installs/aqua-ajeetdsouza-zoxide/0.9.8/` が残った。
`mise reshim` は「インストール済みの全ツール」から shim を生成するため、インストールディレクトリが残っている限り shim
が再生成され続けていた。

→ `mise uninstall aqua:ajeetdsouza/zoxide@0.9.8` で別途解消済み

### 2. mise v2026.2.10 の "Shims as PATH fallback" 変更

[PR jdx/mise#8106](jdx/mise#8106)
により、`auto_install`(`not_found_auto_install`)有効時、
`mise activate zsh` が shims ディレクトリを PATH から除去しなくなった。

この変更の意図:
- サブシェルで未インストールツールの auto-install が発動しない問題の修正
- mise 未インストールでもシステムの同名コマンドが誤って使われる問題の修正

**v2026.2.9 以前**: `mise activate zsh` は `.zprofile` の `mise activate zsh
--shims` で追加された shims を PATH から明示的に除去していた
**v2026.2.10 以降**: shims が PATH にフォールバックとして残る

`diff <(mise-2026.2.9 activate zsh) <(mise-2026.2.11 activate zsh)` で確認:
v2026.2.9 にあった shims 除去の `export PATH=...` 行が v2026.2.11 で削除されている。

### エラー発生の流れ

```
.zprofile: mise activate zsh --shims → PATH に shims を追加
.zshrc:    mise activate zsh
  v2026.2.9以前 → shims を PATH から除去 → zoxide は aqua バイナリに解決 ✅
  v2026.2.10以降 → shims が PATH に残る → 残骸 shim が aqua より先にヒット ❌

.zshrc:    eval "$(zoxide init zsh)"
  → ~/.local/share/mise/shims/zoxide(残骸 shim)が実行される
  → shim → bootstrap → exec mise init zsh
  → "init" はサブコマンドでなく experimental=true でタスク名として解釈
  → "no tasks defined" エラー
```

### shims フォールバックの設計上の問題

`mise reshim` は config で active でないインストール済みツール全ての shim も生成する。
v2026.2.10 以降、activate 時に shims が PATH フォールバックとして残る仕様になったため、
mise 管理から別ツール管理に移行したツールで古い shim が本物のバイナリより先にヒットし得る。

## 修正

`.mise.toml` の `auto_install` を `true` → `false` に変更。

- `auto_install = false` にすることで shims フォールバックが無効化され、従来の shims 除去挙動に戻る
- グローバル config (`~/.config/mise/config.toml`) も `auto_install = false`
であり、プロジェクト config のみ `true` だった

## 検証

`MISE_AUTO_INSTALL=false mise activate zsh` の出力で shims 除去行の復活を確認済み。
`zsh -l -i -c 'exit' 2>&1` → mise エラーなし

## 関連リンク

- [mise v2026.2.10
リリースノート](https://github.com/jdx/mise/releases/tag/v2026.2.10)
- [PR jdx/mise#8106: feat(activate): add shims directory as fallback
when auto-install is enabled](jdx/mise#8106)
- PR #322: zoxide を mise → aqua CLI に移行

---------

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
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.

1 participant