Release train¶
Releases are cut as a release train: one repo-wide tag,
khflutterlib-v<x.y.z>, that every package is consumed at together.
Pin every kh_* package your app uses to the same release-train tag.
The packages depend on each other through that same tag, and pub won't
accept two git refs for one package. Mixing tags, using a branch, or using
the older per-package tags (such as kh_core-v0.1.1) makes flutter pub get
fail.
dependencies:
kh_core:
git:
url: https://github.com/msflib/flutter.git
path: packages/kh_core
ref: khflutterlib-v0.4.3
kh_ui:
git:
url: https://github.com/msflib/flutter.git
path: packages/kh_ui
ref: khflutterlib-v0.4.3
To upgrade, change every ref together.
Compatibility matrix¶
| Release train | kh_core |
kh_theme |
kh_ui |
kh_screens |
kh_utils |
|---|---|---|---|---|---|
khflutterlib-v0.4.3 |
0.2.0 ⚠️ | 0.1.2+2 | 0.2.2+2 | 0.1.1+8 | 0.1.2+1 |
khflutterlib-v0.4.2 |
0.2.0 ⚠️ | 0.1.2+2 | 0.2.2+1 | 0.1.1+7 | 0.1.2+1 |
khflutterlib-v0.4.1 |
0.2.0 ⚠️ | 0.1.2+1 | 0.2.2 | 0.1.1+6 | 0.1.2+1 |
khflutterlib-v0.4.0 |
0.2.0 ⚠️ | 0.1.2+1 | 0.2.1 | 0.1.1+5 | 0.1.2+1 |
khflutterlib-v0.3.0 |
0.1.3 | 0.1.2 | 0.2.0 ⚠️ | 0.1.1+4 | 0.1.2 |
khflutterlib-v0.2.0 |
0.1.2 | 0.1.2 | 0.1.2 | 0.1.1+3 | 0.1.1 |
⚠️ marks a breaking change:
kh_core0.2.0:KhEnvironmentConfig.apiBaseUrlis nowString?. Add a null check where you read it, or move backend settings to typed fields on a subclass. See kh_core, "Environment configuration".kh_ui0.2.0:KhErrorStateno longer showsKhFailure.message, only user-safe copy. See kh_ui, "Error copy" for the migration note.
Releases before khflutterlib-v0.2.0 used per-package tags only, and their
internal refs don't line up. Don't build new apps against them.
For how releases are cut, see §13 of
PHASE_0_ARCHITECTURE.md.