Version Release Guide
バージョン命名については、versioning ドキュメントで詳しく説明されています。major、minor、patch バージョニングを理解するために、まずそのページを読んでください。
Release Plan
-
マイナーバージョンは4か月ごとにリリースします。1月/2月、5月/6月、9月/10月に行います。
-
最新の3つのマイナーバージョンを維持します(minor はドットで区切られたバージョンの2番目の数字です。例えば、3.4.2 の場合、4 がマイナーバージョンです)。
マイナーバージョンは4か月ごとにリリースされるため、マイナーバージョンは最大で1年間サポートされると予想されます。
-
メンテナンス中のマイナーバージョンに対して、2〜3週間以内にパッチバージョンをリリースします。
Pull Request Type
StarRocks のすべてのプルリクエストは、feature、enhancement、bugfix などのタイプでタイトルを付ける必要があります。
Feature
- 定義: Feature は、データベースに以前は存在しなかった新しい機能や機能性です。新しい動作を追加したり、既存の機能を大幅に拡張します。
- 例:
- 新しいデータ構造のタイプを追加する(例: 新しいテーブルタイプやインデックスタイプ)。
- 新しいクエリ言語機能を実装する(例: 新しい SQL 関数や Operator)。
- データベースと対話するための新しい API エンドポイントやインターフェースを導入する。
Enhancement
- 定義: Enhancement は、既存の機能や機能性の改善です。完全に新しい動作を導入するのではなく、既存の機能をより良く、より速く、またはより効率的にします。
- 例:
- クエリ実行プランのパフォーマンスを最適化する。
- データベース管理ツールのユーザーインターフェースを改善する。
- より細かいアクセス制御を追加してセキュリティ機能を強化する。
Bugfix
- 定義: Bugfix は、既存のコードのエラーや欠陥の修正です。データベースが正しくまたは意図したとおりに機能しない問題に対処します。
- 例:
- 特定のクエリ条件下で発生するクラッシュを修正する。
- クエリによって返される不正確な結果を修正する。
- メモリリークやリソース管理の問題を解決する。
Cherry-pick Rule
マイナーバージョンの cherry-pick 管理を支援するために、いくつかのステータスを定義しています。バージョンのステータスは .github/.status
ファイルで確認できます。
例えば、このドキュメントが公開された時点で、StarRocks バージョン 3.4 は feature-freeze
状態であり、バージョン 3.3 は bugfix-only
です。これを確認するには:
git switch branch-3.3
cat .github.status
bugfix-only
open
: feature、enhancement、bugfix を含むすべてのタイプのプルリクエストをマージできます。feature-freeze
: enhancement と bugfix のプルリクエストのみをマージできます。bugfix-only
: bugfix のプルリクエストのみをマージできます。code-freeze
: 重大な CVE 修正を除き、プルリクエストをマージできません。
マイナーバージョンのステータスは、以下に示すような基準トリガーで変更され、必要に応じて事前に変更することもできます。
- マイナーバージョンのブランチが作成されると、それは
open
になり、リリースされるまでopen
のままです。 - マイナーバージョンがリリースされると、それは
feature-freeze
になります。 - 次のマイナーバージョンがリリースされると、前のマイナーバージョンは
bugfix-only
になります。 - マイナーバージョンは、さらに3つのマイナーバージョンがリリースされるまで
bugfix-only
のままで、その後code-freeze
になります。
Example
- branch-5.1 が作成され、このブランチはリリース候補を通過して公開リリースされるまで
open
状態です。 - バージョン 5.1 が公開リリースされると、それは
feature-freeze
状態に入ります。 - バージョン 5.2 が公開リリースされると、5.1 は
bugfix-only
に切り替わります。 - バージョン 5.1、5.2、5.3、5.4 がすべてリリースされると:
- 5.4 は
feature-freeze
状態です - 5.3 は
bugfix-only
状態です - 5.2 も
bugfix-only
状態です - 5.1 は
code-freeze
状態です
- 5.4 は