monorepoの外部依存は単一バージョンに縛るべきか
単一バージョンに絞るモチベーション
simplicity
アップデートノウハウが一斉に適用できて効率的
利用するツールの制限
yarn workspacesやlernaのように依存がhoistingされる系
チャレンジ
依存バージョンの変更をatomicにやらないとbuildが落ちるかもしれないので、diffが大きくなることがある
アップデートするPRの責務の拡大?
Googleが後方非互換なJUnitのアップデートに苦労したという有名な話
例えば全く非互換なアップデートが降ってきたときに、たまたまパッケージの名前が同じだというだけで大変なatomic updateを余儀なくされるのは理不尽なのか
互換性をどう担保するかはそのパッケージのメンテナの責任
OSSなら自前でなんとかせえという話ではある
monorepoとはそういうものだと言われるとそうかもしれない
社で単一のmonorepoとこだわるから大変説
パッケージの名前が同じことが問題であると捉えると、OSのパッケージマネージャでいうpython27やpython36のように、勝手に別名を付けて管理するような仕組みがあればよいのかもしれない