chore(release): prepare 0.2.0
CI / verify (pull_request) Successful in 1m5s
CI / infrastructure-smoke (pull_request) Successful in 35s
CI / migration-smoke (pull_request) Successful in 1m52s
CI / package-release (pull_request) Successful in 35s
CI / image-build (pull_request) Successful in 31s
CI / deploy-smoke (same-origin) (pull_request) Successful in 45s
CI / deploy-smoke (split) (pull_request) Successful in 1m30s
CI / package-publication (pull_request) Successful in 44s
CI / verify (pull_request) Successful in 1m5s
CI / infrastructure-smoke (pull_request) Successful in 35s
CI / migration-smoke (pull_request) Successful in 1m52s
CI / package-release (pull_request) Successful in 35s
CI / image-build (pull_request) Successful in 31s
CI / deploy-smoke (same-origin) (pull_request) Successful in 45s
CI / deploy-smoke (split) (pull_request) Successful in 1m30s
CI / package-publication (pull_request) Successful in 44s
Every platform workspace package and every public @ekklesia/* package declares 0.2.0, and the deploy README's image build example names it. templates/module keeps its own version. 0.2.0, not 0.1.3: before 1.0 a minor version is the breaking one (docs/development/releases.md, ADR 0054), and since 0.1.2 main has broken modules, module authors, and operators: - #64 (ADR 0048): one generic image; installed modules live outside it; - #66, #72 (ADR 0049, 0050): modules install as Module Package v1, and move to the Module Database ABI; - #71: the manifest v8 cutover; v7 manifests are refused; - #79 (ADR 0053): the curated SDK drops defineModuleSchema and the legacy ModuleDatabase type; plus #67 (AGPL), #74, #77 (licensing, native targets), and the public package train (#80, #81). It is also the first package train to publish: 0.1.2 never will be. Because 0.2.0 is outside ^0.1.0, the same change moves to ^0.2.0: - the standalone fixture's @ekklesia ranges and its exact module-pack pin; - the compatibility ranges of the modules built for this release: the template, the standalone fixture, and the native proof module; - the test fixtures that model a module of the current release, or the current platform's versions; - the module-development guide's examples, and the release guide, which now names what a minor bump moves. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
22404ea2d4
commit
98e59d4ba0
@@ -25,8 +25,16 @@ version set ─▶ build ─▶ test ─▶ pack the public package train ─▶
|
||||
1. **Version set.** A `chore(release): prepare X` pull request sets the release version: the root
|
||||
`package.json`, every platform workspace package (the module template versions as a module, not
|
||||
with the platform), the image build example in `deploy/README.md`, and the standalone fixture's
|
||||
exact `@ekklesia/module-pack` pin (`tests/fixtures/standalone-module/package.json`). The tag
|
||||
must point at a commit that carries the version it names.
|
||||
exact `@ekklesia/module-pack` pin and `@ekklesia/*` ranges
|
||||
(`tests/fixtures/standalone-module/package.json`). The tag must point at a commit that carries
|
||||
the version it names.
|
||||
|
||||
A minor version (0.x → 0.(x+1)) is a breaking release before 1.0, so manifests that declare
|
||||
`compatibility.platform` and `compatibility.moduleSdk` as `^0.x.0` no longer match it. In the
|
||||
same pull request, move to the new range every module built for this release (the template, the
|
||||
standalone fixture, the native proof module), the test fixtures that model a module of the
|
||||
current release or the current platform, and the module-development guide's examples. A patch
|
||||
version changes none of these.
|
||||
2. **Build and test.** `pnpm verify`, the integration suite, and the deploy smoke, as for any change.
|
||||
3. **Pack the public package train.** `pnpm packages:release` (below).
|
||||
4. **Standalone consumer proof.** A module outside the repository consumes exactly those
|
||||
@@ -111,17 +119,17 @@ registry and is not a registry catalog.
|
||||
```json
|
||||
{
|
||||
"packageTrain": 1,
|
||||
"version": "0.1.2",
|
||||
"version": "0.2.0",
|
||||
"source": { "modified": false, "revision": "<full commit id>" },
|
||||
"packages": [
|
||||
{
|
||||
"file": "ekklesia-contracts-0.1.2.tgz",
|
||||
"file": "ekklesia-contracts-0.2.0.tgz",
|
||||
"integrity": "sha512-<base64>",
|
||||
"name": "@ekklesia/contracts",
|
||||
"role": "implementation",
|
||||
"sha256": "<hex>",
|
||||
"size": 87379,
|
||||
"version": "0.1.2"
|
||||
"version": "0.2.0"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -343,7 +351,7 @@ public owners, a publisher team, and an outsider. In CI it publishes the very ar
|
||||
|
||||
### The first publication
|
||||
|
||||
The first train published is the **next** platform release version, not 0.1.2. The `v0.1.2` tag
|
||||
The first train published is **0.2.0**, the next platform release, not 0.1.2. The `v0.1.2` tag
|
||||
predates the curated SDK and this release tooling, so packages built now and called 0.1.2 would
|
||||
claim to be source that 0.1.2 never contained.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user