作業用環境の構築にあたってツールのバージョンマネージャーの選定基準
Discussion
解決したいこと
2024年の春もすぐそこということで、ローカルの開発環境を再整備して、来る新人教育に向けてツールの選定基準の検討と実際の選定まで考えたい。
- 小中規模程度のチーム(≠一人、個人ではなくなるべくチームで統一したい。強者は自己責任で別のものを選定してもよい)
- 多数のツール、cliを使用するため、バージョン管理を行いたい(設定ファイルの配置等で使用するバージョンを指定、dependabot等でのバージョンアップ等を自動化、浸透させたい{気がついたら一人だけ使用バージョンが違うなどの不具合を避けたい})
- なるべく長く使えるとよい
- OS に依存せず使えることが望ましい。優先順位は Mac, WSL2, Windows, Linux(MacとWSL2のlinuxで使用できるならWindowsは使えなくても許容)
- 複数のプロジェクト(ディレクトリ)で別のツール、バージョンを使用する可能性に配慮する
管理したいツール
- JavaScript (Node, Deno, Bun など)とそのパッケージマネージャー(以下大体同じ)
- PHP
- Python
- Ruby
- direnv などの環境変数管理ツール
- HashiCorp 製品(terraform, and other)
- コンテナ関連(docker, or other, k8s 周辺を含む)
要はサーバではなく開発時に使用するツール類
管理しなくてもいいツール
- フロント、バックエンドのサーバサービス類(nginx をローカルにサーバインストールさせないでしょう?)
- OS環境に依存するチーム必須ではないツール
- brew などのパッケージマネージャ(きりがない)
イメージ
- パッケージはバージョン管理が面倒(brewだめ)
- 言語ランタイムもバージョン管理が面倒(anyenvでもいいけど管理が煩雑)
- 各種ツールで対応可能なものはそれぞれバージョンを指定して複数使いたい
要は
- asdf がデファクトなのかなと思っているけど
- aqua ってのもあってね(JetBrains Aqua と検索ががが)
- anyenv で頑張らせるのもそろそろ違うかなとか
- mise (旧 rtx) とどっちがいいのとか
- AlternativeTo で探しても良さそうなものがないし
- 他に見落としやいいやり方や考え方、選択肢などがあれば、と思った次第
というわけで、コメントで、うちはこうしてるとか、こういうのがあるとか、いろいろ教えていただけると助かります。
0