コードのバージョン管理、コメントで明示しちゃうのってどうなの?という話
― unreleased now | Currently released latest version - {v1.2.3} を添えるメリット ―
ソフトウェアのバージョンって、普段は Git のタグや CHANGELOG の中で管理することが多いですよね。でも実際のところ、コードの冒頭や最後あたりに “現在のバージョン” を変数として置いているプロジェクトって、かなり見かけます。
例えばこんなやつ:
__version__ = "1.3.0"
# unreleased now | Currently released latest version - v1.2.7
これ、ただバージョンを変数に入れるだけよりも 「コメントで状態を併記する」 ことで、地味に便利になるよね?という話を書き残しておきます。
なぜコメントで “unreleased now” と “latest released version” を置くのか
1. 作業中ブランチの “立ち位置” が一瞬でわかる
Git のタグを見れば済む話なんだけど、
人間は基本めんどくさい生き物なので、わざわざ git tag 見ない。
コード開いた瞬間に、
- この
__version__は「次のリリース候補なのか」 - 今公開されてる最新版はどれなのか
がわかるだけで事故率が下がる。
2. レビュー時に「これ、本当にそのバージョンでいい?」の会話が減る
PR を出したときに、
- 「あれ、1.4.0 ってもう出してたっけ?」
- 「いやまだ。これは unreleased です」
みたいなやりとりが発生しがち。
コメントで書いておけば、レビュアーとの認識ズレが発生しにくい。
3. CHANGELOG を更新し忘れても気づきやすい
良くないけど、よくある話。
- コード側のバージョン → 上げた
- CHANGELOG → まだ書いてない
そういうとき、 “unreleased now” を残しておけば
自分の未来の自分へのメッセージになる。
(それでも書き忘れるときは書き忘れるけどね…。)
4. マルチ言語・複数レポジトリを跨ぐ場合に強い
フロント、バックエンド、ライブラリ、CLIツール…。
プロジェクトが複数レイヤーに分かれてると
- どのパーツがどの段階?
- このコードのバージョンは今どう扱えばいい?
が混乱しやすい。
コード内に状態を書いておくのは ローカルな情報源として強い。
コメントを書く場所は「冒頭 or 末尾」どっちがいいの?
どっちでもいいけど、ざっくり特徴をまとめると:
冒頭に書くパターン
- Python で
__version__を置く場所として自然 - ファイル開いて即状態がわかる
- 言語によっては冒頭コメントの存在が慣習化している
最後に書くパターン
- “メタ情報” 感が強くて好きな人もいる
- コードが長くても邪魔になりにくい
- ただし気づかれづらい
結論:
冒頭に書く方が無難かな?状況次第かも…
実際のテンプレ
Python
__version__ = "1.3.0"
# unreleased now | Currently released latest version - v1.2.7
JavaScript / Node.js
export const VERSION = "1.3.0";
// unreleased now | Currently released latest version - v1.2.7
Go
var Version = "1.3.0"
// unreleased now | Currently released latest version - v1.2.7
Rust
pub const VERSION: &str = "1.3.0";
// unreleased now | Currently released latest version - v1.2.7
まとめ:コメントで “バージョンの今” を書いておくの、意外とコスパ良いよ
- 開発中の状態が見える化する
- レビューが楽になる
- 認識ズレが起きにくい
- 未来の自分が助かる
別に標準化されてるプラクティスではないけど、
小さなチームや個人開発では特に、効果が大きめ。
「コードの冒頭にメタ情報を書く」という昔ながらの文化、実はまだまだ使えるじゃん…というお話でした。