バージョニングと互換性方針
DB Testerはセマンティックバージョニング2.0.0に従います。リリースバージョンはMAJOR.MINOR.PATCHの形式です。公開モジュールはすべて同一バージョンを共有し、同時にリリースされます。
バージョンの増分
| 増分 | 条件 |
|---|---|
MAJOR | 安定APIに対する後方非互換な変更。 |
MINOR | 後方互換な機能追加。 |
PATCH | 後方互換なバグ修正。 |
1.0未満(0.x)の注意
バージョンが1.0.0未満の間、APIはまだ安定化の途上です。SemVerでは、0.xリリースはMINOR増分で後方非互換な変更を導入できます(例: 0.8.xから0.9.0)。0.x系列での破壊的変更は変更履歴に記録されます。
API安定性ティア
db-tester-apiモジュールは、対象ユーザーと安定性に応じてパッケージを分類します。モジュール記述子(module-info.java)も同じ分類を記録しています。
| ティア | パッケージ | 互換性 |
|---|---|---|
| ユーザーAPI | annotation, config, operation, exception, preparation | 安定。1.0以降はメジャーバージョン内で後方互換。 |
| アドバンストAPI | assertion, export, domain, dataset | 安定。上級者向けのプログラマティック面。 |
| 拡張SPI | spi, loader, context, scenario | 発展中。サポート対象だが機能拡張があり得る。インテグレーターは追加的変更を想定すること。 |
各モジュールのinternalパッケージ配下の型は、Javaの可視性に関わらず実装詳細であり、公開APIには含まれません。
破壊的変更の定義
安定ティアでは、以下は破壊的変更でありMAJOR増分を要します(1.0以降)。
- 公開型・メソッド・フィールド・アノテーション属性の削除または改名。
- メソッドシグネチャや戻り値型の変更。
- 受け入れ入力の狭小化、またはスローする検査例外の拡大。
- 適合する呼び出し側を壊す形での、文書化された実行時挙動の変更。
以下は破壊的ではありません。
- 新しい型・メソッド・オーバーロード・デフォルト付きアノテーション属性の追加。
requiresディレクティブのtransitiveへの拡大。- 新しいenum定数の追加(呼び出し側は未知の定数を防御的に扱うこと)。
非推奨方針
安定APIの要素を削除する前に、最低1つのMINORリリースの間、非推奨とします。
- 要素に
@Deprecatedを付与し、forRemoval = trueとsinceを指定します。 - Javadocで代替手段を明示します。
- 削除は非推奨化後の次の
MAJORリリース以降に行います。
拡張SPIティアは、フレームワークを密に追従するインテグレーターを対象とするため、より短い予告で変更されることがあります。