本格的にモジュール対応モードへ移行する前に,以下の準備を行う。ルールに則ってバージョン番号を設定することが推奨されている2。Versioningこのように後方互換性のない変更がある場合にはメジャーバージョンを,後方互換性が担保された変更や追加についてはマイナーバージョンを,不具合や脆弱性の修正については第3位のパッチバージョンを上げるようにする。メジャーバージョンを上げる際には,図のようにディレクトリを分離するか,旧バージョン用にブランチを切るのがよいだろう3。バージョンタグによってバージョン管理を行うのであればきちんとルールを決めて管理する必要がある。参考になるかも知れない。バージョンタグを使ったリリース管理がやりやすいように構成されているし,上手く使ってほしい。ファイルでモジュール管理を行う。ファイルを作ってしまおう。適当なディレクトリで以下のコマンドを実行する。いうのがモジュール名(厳密にはモジュール・パス)になる。言語の名前として使えるものであれば何でもいいが,パッケージ名(厳密にはパッケージ・パス)と合わせておくと面倒がない。github.com/my/packageとしておくのがいいだろう。ファイルがない場合は親ディレクトリに遡って探すようだ。サブパッケージはディレクトリで階層化されているから当然なんだけど。ファイルと見なして処理を継続する4。ファイルを追加する場合も同様の操作でよい。ファイルに組み込んでくれる。ファイルの中身を見てみよう。ファイルの内容は以下の通り。命令(directive)と呼ばれるもので,これらの命令を使ってモジュールの管理を行う。ファイルの記述で使える命令は以下の通り。カレント以下のディレクトリにあるパッケージに対するモジュール名を定義する。前述したようにモジュール名(モジュール・パス)はパッケージ名(パッケージ・パス)と合わせておくほうが面倒がない。言語のバージョンを指定する。指定しなくても動作に支障はない。ファイルの後方互換性が確保できなくなった場合の保険だろう。カレントのモジュールが要求するモジュール名とバージョンを指定する。指定したモジュールが,カレント・モジュールが依存する外部モジュールとなるわけだ。管理から除外するモジュールを指定する。不具合等で特定のバージョンのモジュールを使いたくないときなどに使える。モジュール名の置き換えである。パッケージ・パスのリダイレクトなどで名前と実体が一致しないときなどに使える。latestこの件については後ほど詳しく説明する。モジュール対応モードで使う主なコマンドそれではモジュール対応モードで色々と操作してみよう。ようなコマンドは,モジュール対応モードでも変わりなく使える。みたいなことはしなくていいようだ。挙動については後ほど詳しく紹介する。オプションを付けることでモジュールに対応した。新しいバージョンがあることが分かる。調整していけばいいだろう。