selmertsxの素振り日記

ひたすら日々の素振り内容を書き続けるだけの日記

自作ライブラリのバージョンの上げ方

モチベーション

github.com

  • iioptのupdateをしたい
  • updateに際して必要な対応を理解し、まとめたい

※ 自作ライブラリの管理は初めてなので、おかしい点があればコメント頂けるとうれしいです!

libraryのupdateで必要なこと

Libraryのバージョンを上げるときには、機能開発とは別に下記2点の対応が必要となってきます。

  • CHANGELOG.mdの作成
  • libraryのversionを上げる

この記事では、それぞれについて、資料を読んだのでまとめます。

CHANGELOG.mdの作成

CHANGELOGの作り方については、下記の資料を参考にしました。

keepachangelog.com

Wiki で一番最初に参照されているので、それなりの知名度があるのでしょう。 Changelog - Wikipedia

この Keep a ChangeLog のホームーページ上で記載されている内容について、簡単にまとめようと思います。

Change Logを作る意味

Change Logとは、このプロジェクトの各リリース間における変更について、何が注目に値するのか、開発者や利用者に対して、正確に把握して貰うために作るものです。

開発者も利用者も、新しく追加された機能や、その背景が気になるはずです。なのでChage Logを作って、それらを追えるようにする必要があります。

Change Logに書く内容

keep-a-changelog/CHANGELOG.md at master · olivierlacan/keep-a-changelog · GitHub

具体的にどのように書くのか把握するため、Keep a Change Logのサイト自体の Change Logを確認しました。抜粋したものを下に書きます。

Changelog
All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

Unreleased
1.0.0 - 2017-06-20
Added
New visual identity by @tylerfortune8.
Version navigation.

Changed
Start using "changelog" over "change log" since it's the common usage.
Start versioning based on the current English version at 0.3.0 to help translation authors keep things up-to-date.

0.0.3 - 2014-08-09
Added
"Why should I care?" section mentioning The Changelog podcast.

Change Logは上から最新のものを記載します。 それぞれのバージョンについて、更新内容と更新した日付を書きます。 更新内容については、added, changed, removed, fixed, Security の5つの項目に分けて記載します。それぞれ、書く内容は下記のようになっています。

  • Added: そのバージョンアップで追加した新しい機能
  • Changed: 既存の機能の修正
  • Removed: 機能の削除
  • Fixed: バグの修正
  • Security: 脆弱性対策

小ネタとして、まだリリースしていないけれども開発した内容は Unreleasedに乗せておくとよいとのことです。その理由は下記の通りです。

  • 人々は次のリリースで使えるようになる機能を見ることができる
  • releaseするときに、unreleased sectionを次のリリースバージョンに置き換えれば良い。

libraryのバージョンの上げ方

セマンティック バージョニング 2.0.0 | Semantic Versioning

libraryのバージョンの決め方は、こちらのサイトを参考にしました。

  • APIの変更に互換性のない場合はメジャーバージョンを、
  • 後方互換性があり機能性を追加した場合はマイナーバージョンを、
  • 後方互換性を伴うバグ修正をした場合はパッチバージョンを上げます

ということです。今回のiioptのupdateは機能追加だけなので、v0.2.0 としました。

まとめ

以上、自作ライブラリのバージョンの上げ方をまとめました。SemVerについては深掘りが足りてないので、おいおいちゃんと読んでいこうと思います。