Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
ma8ma opened this issue Jul 5, 2024 · 6 comments
Open

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

ma8ma opened this issue Jul 5, 2024 · 6 comments
Labels
feature 機能の追加と削除

Comments

@ma8ma
Copy link
Collaborator

ma8ma commented Jul 5, 2024

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

背景や動機

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

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

Note

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

:

  • 0.12.0-20240820
  • 0.13.0-beta20241225

現状の問題点

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

解決方法

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

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

alphaタグ:

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

  • 開発中バージョンのフォーマットは <次期リリースの番号>-alpha<日付> とします。
  • alpha タグは、リリース作業直後ではなく、次の更新作業開始時に付与します。
    • リリース直後はsnapパッケージのビルドが完了していないため。
    • リリース後にGitリポジトリからソースを更新するユーザーへの配慮のため。

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

  • 0.13.0-alpha20240820

バージョン表記例:

状況 現行バージョン表記 更新案バージョン表記
0.12.0 リリース 0.12.0-20240706 0.12.0-20240706
0.13.0 開発中 0.12.0-20240820 0.13.0-alpha20240820 🆕
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を作成し、その際にブランチを作成します。

代替案

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

  • alpha
    理由: 多くのソフトウェアで開発版リリースに使用されていますが、
    alpha版は次のバージョンに入る主要な機能が追加された段階を指すことが多く、
    リリース直後の早期開発段階には合わないため候補から外しました。

  • nightly
    理由: 毎日更新される開発バージョンに使用されますが、
    JDim は CI/CD でsnapパッケージを毎日更新しているわけではないため候補から外しました。

  • weeklymonthly
    理由: 毎週/毎月更新される開発バージョンに使用されますが、定期的リリースを行わない場合は適切ではないため候補から外しました。

  • canary
    理由: Webブラウザ Google Chrome やその派生物で使用されていますが、
    JDim は Chrome と技術的に無関係であるため、誤解を避けるために候補から外しました。

  • 通常の開発では到達不可能な、次のリリースバージョンに近い値にする (例: 開発中: 0.12.99 → リリース: 0.13.0)
    理由: 一部のソフトウェアでは、大きなバージョンアップを予告するために使用されますが、
    開発に関わっていないと意味やニュアンスが伝わりにくい可能性があるため、候補から外しました。

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

追加の情報

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

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

参考資料

@ma8ma
Copy link
Collaborator Author

ma8ma commented Jul 5, 2024

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

@ma8ma ma8ma moved this to Todo in State of JDim-v0.12.0+ Jul 5, 2024
@ma8ma ma8ma moved this from Todo to In Progress in State of JDim-v0.12.0+ Jul 6, 2024
@mtasaka
Copy link
Collaborator

mtasaka commented Jul 8, 2024

個人的な意見としては:

  • dev を使われると、alphaa とか betab よりも d の方が後ろなので、そのまま使うと dev から beta だとバージョンが巻き戻っているように判断されかねないので、好みではないんですよね...
    • (Fedoraのメンテナをやってますが、特にrpmのversioningでは上のように判断されるので、rpmのパッケージ化する時には結局別のversioningをしないといけない)
    • alpha, beta, rc はよく使われますが、これはalphabet 順にもなっている
  • 個人的には、GNOMEのように、奇数開発 + 偶数stable , 0.12.0 -> 0.13.1 -> 0.13.2 -> 0.13.900 -> 0.13.901 -> 0.14.0 のやり方が一番慣れています

@ma8ma
Copy link
Collaborator Author

ma8ma commented Jul 8, 2024

@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のほうが伝わりやすいかなと…

@ma8ma ma8ma changed the title devタグ導入による開発バージョン管理の提案 alphaタグ導入による開発バージョン管理の提案 Jul 8, 2024
@mtasaka
Copy link
Collaborator

mtasaka commented Jul 11, 2024

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

@ma8ma
Copy link
Collaborator Author

ma8ma commented Jul 12, 2024

ma8ma added a commit that referenced this issue Jul 13, 2024
開発中のバージョンであることを明らかにするためalpha版に更新します。

関連のissue:
#1411
ma8ma added a commit that referenced this issue Jul 13, 2024
開発中のバージョンであることを明らかにするためalpha版に更新します。

関連のissue:
#1411
@ma8ma
Copy link
Collaborator Author

ma8ma commented Jul 13, 2024

alpha版に更新しました。 #1414

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature 機能の追加と削除
Projects
Status: In Progress
Development

No branches or pull requests

2 participants