Open9

安全に aqua をリネームする方法を考える

Shunsuke SuzukiShunsuke Suzuki

https://github.com/aquaproj/aqua/issues/881

最終的には org と repository, command をリネームすることになると思うが、
いきなりやると色々混乱が生じると思うので、

  • いきなりやると具体的にどういったことが起こるか
  • 安全に移行するにはどうしたらよいか

を検討する

Shunsuke SuzukiShunsuke Suzuki

以前の Organization プロフィールページ (https://github.com/previousorgname など) にリンクすると、404 エラーが返されます。 他のサイト (LinkedIn や Twitter のプロフィールなど) からの Organization へのリンクを更新するよう推奨します。
古い Organization 名を使用する API リクエストでは、404 エラーが返されます。 API リクエストにある古い Organization 名を更新するようおすすめします。

  • aqua init で standard registry のバージョンの取得に失敗しそう
  • Renovate が aqua や aqua-installer, aqua-registry, aqua-renovate-config などの update に失敗するかも
  • aqua-proxy や aqua, aqua-registry のダウンロードは API ではないので多分大丈夫?
Shunsuke SuzukiShunsuke Suzuki

org ごと名前変えたあとに aquaproj を再び作成してリポジトリを Fork したら動くかな。でもその場合リダイレクトしてくれなくなる
1, 2 週間 aquaproj を archive した状態で置いといて消す?消す必要ないか?

Shunsuke SuzukiShunsuke Suzuki

設定ファイルの名前とかも変わるとまぁまぁ混乱しそう。
aqua.yaml => foo.yaml みたいな

Shunsuke SuzukiShunsuke Suzuki

Fork しても Releases と asset は引き継がれないので
Organizations を rename したあとに aquaproj org 作ってリポジトリ fork しても asset がなくて install に失敗してしまう。 asset もスクリプトか何かでコピーするという方法もなくはないが、それやるよりは Fork しないほうが楽

Shunsuke SuzukiShunsuke Suzuki

前準備

PR 作成

  • aquaproj.github.io
  • aqua-installer
  • aqua
  • aqua-registry
  • aqua-renovate-config

Rename

  • org rename
  • repo rename
  • リポジトリ更新
  • release 作成
Shunsuke SuzukiShunsuke Suzuki

できるだけ互換性を維持して、古い環境変数とかもサポートすることも考えたが、
どのみちツールの名前が変わる時点で破壊的変更で major version up になる。
であれば major version up は 1 回で済ませたい。

Shunsuke SuzukiShunsuke Suzuki

aqua 本体の変更

  • 環境変数のリネーム
  • 設定ファイル名の変更
  • デフォルトのルートディレクトリ名の変更
  • aqua-proxy のリネーム。というか aqua-proxy は PATH 配下にある必要はない
  • aqua-proxy のリポジトリの修正
  • aqua init で生成されるファイル名とコメントの修正
  • standard registry のリポジトリの修正
  • JSON Schema のファイル名の変更