JDimproved / JDim

2ch browser for linux
https://jdimproved.github.io/JDim/
GNU General Public License v2.0
44 stars 11 forks source link

alphaタグ導入による開発バージョン管理の提案 #1411

Open ma8ma opened 3 weeks ago

ma8ma commented 3 weeks ago

alphaタグ導入による開発バージョン管理の提案

背景や動機

JDim のバージョンは番号、開発段階タグ、日付の3つで構成されています。

区分 説明
番号 ドット(.)で区切られた3つの数値(メジャー . マイナー . マイクロ)
開発段階タグ 開発段階を表す省略可能な文字列、機能フリーズからリリースまで beta を使用します。
日付 ソースコードが修正された日時、形式は YYYYMMDD, 例えば2024年7月10日なら 20240710 となります。

[!NOTE]
開発段階タグはGitタグとして作成するものではなく、 jdim --versionで表示するバージョン情報に含まれる開発段階を表すタグ(リリース修飾子)です。

:

現状の問題点

リリース後に修正が加えられてもバージョン番号が変わらなければ、一見して最新版かそうでないか判別できません。 このため、ユーザーがリリース版と開発版どちらを使っているか判断しづらく、issue や掲示板での対応が難しくなっています。

解決方法

edit(2024-07-09): 下記コメントで指摘がありalphaを使います。

0.12.0をリリースした後からdev alphaタグ、ならびにバグ修正版のブランチを試験的に導入することを提案します。

alphaタグ:

リリース後から機能フリーズまでの開発期間中は、master ブランチのバージョンに alpha タグを追加します。

alphaタグを用いたバージョンの例:

バージョン表記例:

状況 現行バージョン表記 更新案バージョン表記
0.12.0 リリース 0.12.0-20240706 0.12.0-20240706
0.13.0 開発中 0.12.0-20240820 0.13.0-alpha20240820 :new:
0.13.0 機能フリーズ 0.13.0-beta20241225 0.13.0-beta20241225
0.13.0 リリース 0.13.0-20250110 0.13.0-20250110

※バージョンは例です。実際のバージョンとは異なります。

バグ修正版のブランチ:

リリース後 master ブランチに alpha タグを付与する場合、バグ修正版をリリースする必要が生じた際は旧バージョンへ戻す必要があります。 一つのブランチで管理すると、リリース版と開発版が混在し、履歴を追跡するのが困難になるため Gitリポジトリの tag が付けられたリリースのコミットからブランチを分岐して管理します。

バグ修正版のリリースは、リソース状況を考慮し、メンテナーが判断します。 バグ修正版が必要になった場合は、改めてissueを作成し、その際にブランチを作成します。

代替案

タグの案と候補から外した理由

追加の情報

~~開発中のバージョンを表すために "dev" を使用しているソフトウェアの例として、Android 用2ch互換掲示板アプリの ChMate があります。 "dev" は、ユーザーにとって他の案より馴染みのある表記である可能性が高いです。~~

バージョンの付け方の更新は開発保守に影響を与えるため RFC があるとよいですが、 まずは試験的に導入し、RFC の草案を公開して検討したいと思います。

参考資料

ma8ma commented 3 weeks ago

RFCのpull requestを開きました。 https://github.com/JDimproved/rfcs/pull/10 コメントやフィードバックはこちらでも募集しています。

mtasaka commented 2 weeks ago

個人的な意見としては:

ma8ma commented 2 weeks ago

@mtasaka コメントありがとうございます。 パッケージでバージョンの順序がどう処理されるのかは頭から抜けていました。

dev を使われると、alpha の a とか beta の b よりも d の方が後ろなので、そのまま使うと dev から beta だとバージョンが巻き戻っているように判断されかねないので、

アルファベット順になるalphaでやってみます。

奇数開発 + 偶数stable , 0.12.0 -> 0.13.1 -> 0.13.2 -> 0.13.900 -> 0.13.901 -> 0.14.0 のやり方

JDimは開発者やテスターじゃない方もソースからビルドして使うので 偶数奇数の使い分けや番号で開発を表現するのに馴染みがない方が少なからずいると思います。 知名度で考えるとalphaのほうが伝わりやすいかなと…

mtasaka commented 2 weeks ago

了解です。では alpha タグでお願いします。

ma8ma commented 2 weeks ago

RFC の草案を更新しました。 https://github.com/JDimproved/rfcs/blob/1625b6d34ac6351d13067caf49850991d38e89e8/docs/0014-jdim-versioning-with-dev-tag.md

ma8ma commented 1 week ago

alpha版に更新しました。 https://github.com/JDimproved/JDim/pull/1414