Closed7
パッケージ引っ越し大作戦
やっこさん、ついに始めちまったよ…
nyaosorg という organization を作って、そちらへ nyagos のレポジトリを引っ越しました。nyagos が依存するパッケージも順次そちらへ移動する予定です
go-readline-ny も nyaosorg/ へ引っ越しました。新URLでの import を有効にするため v0.5.0 のバージョンタグを打ちましたが、機能は特に変更ありません
(これ、新タグを打たないと、go.mod 関係でエラーになるみたいです)
import 文の zetamatta/hogehoge を nyaosorg/hogehoge へ全部置換するバッチファイル。Perl は -i オプションで、ファイルの書き換えができるので便利。ただし、Windows版だと改行コードが CRLF になってしまうので、安直に go fmt で元に戻す(これ Perl 側でなんとかできそうなもんだけどね)
set "TARGET=go-windows-mbcs"
for /R %%I in (*.go) do perl -i -p -e "s|github.com/zetamatta/%TARGET%|github.com/nyaosorg/%TARGET%|g" %%I & go fmt %%I
昨日、だいぶとやった。残りはあと6つ
- go-findfile
- go-inline-animation
- go-windows-consoleicon
- go-windows-dbg
- go-windows-su
- go-importconst
洗い出しは:
seek zetamatta **/*.go | goawk "{ t[$NF]++ } END{ for(i in t){ print i }}" | sort
でやった。
以下、GitHub の機能でレポジトリの譲渡を行った場合の話
- レポジトリを実際に引っ越ししても、GitHub 自身は旧URLを新URLへリダイレクトしてくれるので、既存の import の参照が切れることはない
- 逆に新URLへのアクセスは go.mod に記述されている URL と、実際の URL がズレるので、すぐできない
- 以下の go.mod の修正を行うことで、新URLで import できるようになる
- go.mod の修正:
module github.com/zetamatta/XXXXX
→module github.com/nyaosorg/XXXXX
- テストコードやサンプルコード、サブパッケージなどで、自分自身のパッケージ名を参照している import 文を修正する
- go.mod を修正した後に、新しいURL版のタグを打つ
- 以上を行うと、旧URLの時にセマンティックバージョニングによるタグが打たれていない場合、旧URLで import できなくなるので注意。おそらく、タグは後から打つことも一応できるが、その隙間をちゃんと作っておく必要あり
- go.mod の修正:
消化状況:
-
go-findfile(go-windows-findfile とリネーム) go-inline-animationgo-windows-consoleicongo-windows-dbggo-windows-su- go-importconst
置換バッチファイル(toNYAOSORG.cmd )を改良
- findstr でヒットしたファイルだけを処理することでスピードアップ
- 置換するレポジトリをパラメータ化(例
toNYAOSORG.cmd go-windows-su
)
setlocal
set "TARGET=%~1"
for /F %%I in ('findstr /S /M "%TARGET%" *.go') do perl -i -p -e "s|github.com/zetamatta/%TARGET%|github.com/nyaosorg/%TARGET%|g" %%I & go fmt %%I
endlocal
exit /b
nyagos から import されてるパッケージの引っ越し完了!
16レポジトリに分割・分散していたとは…作った自分もびっくり!
このスクラップは2021/09/14にクローズされました