Open2
Go Module Version numbering
Goのモジュールのバージョンについての理解しなければならない理由
- モジュール作成者側として
- モジュールの安定性や広報互換性を周知するために、バージョンを適切に割り当てる必要があるため。
- モジュール利用者側として
- バージョン更新後のモジュールの安定性や広報互換性を、知る必要があるため。
概要
Semverに従う。
- v0.x.x (Major versionが0)
- 開発中であることを意味する。
- 安定していない。ちゃんと動かないかも。
- 開発中、後方互換性がない変更が入るかも。開発が進むにつれて、現在公開されているAPIの仕様が突然後方互換性のない変更がされる可能性があります、ということ。
- v1.x.x (Major versionが更新された)
- 公開されているAPIが、後方互換性のない更新がされたことを意味する。
- あるコードが、更新されたAPIを使用していた場合、そのコードは動かなくなる可能性がある。
- vx.4.x (Minor versionが更新された)
- 公開されているAPIが、後方互換性のある更新がされたことを意味する。
- あるコードが、更新されたAPIを使用していた場合、そのコードは今まで通り動く。
- 後方互換性のある更新とは、例えば、APIとして新しい関数が「追加」とか、enum値が追加された、などなど。
- vx.x.1 (Patch versionが更新された)
- 公開されているAPIに影響のない更新がされたことを意味する。
- v.x.x.x-beta.2 (Prerelease identifierが更新された)
- バージョンx.x.xのプレリリースバージョンであることを意味する。すなわち。
- 大体動くけど、一部動かないとかあるかも。
- バージョンx.x.xがリリースされるまでの間で、後方互換性がない変更が入るかも。。開発が進むにつれて、現在公開されているAPIの仕様が突然後方互換性のない変更がされる可能性があります、ということ。