Skip to content

Commit 64ea26a

Browse files
committed
docs: sync Bering v0.3.4 compatibility
1 parent 3a33342 commit 64ea26a

11 files changed

Lines changed: 58 additions & 8 deletions

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Changelog
22

3+
## Unreleased
4+
5+
- recorded app-level sync with the published Bering `v0.3.4` release/package in `compatibility-manifest.json`
6+
- refreshed compatibility docs and README badges to distinguish Bering app-package sync from unchanged `1.0.0` / `1.1.0` schema contract pins
7+
38
## v0.2.4 - 2026-05-31
49

510
Technical-preview feature release focused on trustable gate evidence, benchmark packaging, and explainable gate decisions for the `v0.2.x` line.

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
[![Go version](https://img.shields.io/github/go-mod/go-version/MB3R-Lab/Sheaft)](https://github.com/MB3R-Lab/Sheaft/blob/main/go.mod)
88
[![Technical preview](https://img.shields.io/badge/preview-v0.2.4-orange)](https://github.com/MB3R-Lab/Sheaft/releases/tag/v0.2.4)
99
[![Bering support](https://img.shields.io/badge/Bering-1.0%20%7C%201.1-blue)](https://github.com/MB3R-Lab/Sheaft/blob/main/docs/compatibility-matrix.md)
10+
[![Bering app](https://img.shields.io/badge/Bering%20app-v0.3.4-informational)](https://github.com/MB3R-Lab/Bering/releases/tag/v0.3.4)
1011

1112
Sheaft is a downstream resilience posture engine and CI/CD gate for model artifacts produced by Bering or another compatible upstream producer.
1213

@@ -59,6 +60,8 @@ Unknown or mismatched contracts are rejected. There is no silent fallback for un
5960

6061
`1.0.0` remains the baseline semantics line and the reference artifact line for cross-version comparisons. `1.1.0` adds richer typed metadata for timeout, retry, placement, shared-resource, and edge-scoped analysis when the artifact provides it.
6162

63+
The current `main` line has also been app-level synced against the published Bering `v0.3.4` release/package. That sync does not change the accepted Bering schema contract pins.
64+
6265
## Installation
6366

6467
Preferred path for the current technical preview release:
@@ -139,7 +142,7 @@ sheaft run --model <artifact.json> --analysis <analysis.yaml> --contract-policy
139142

140143
## Service mode
141144

142-
The long-running service remains experimental in `v0.1.x`, but it is included in the public technical preview.
145+
The long-running service remains experimental in `v0.2.x`, but it is included in the public technical preview.
143146

144147
The checked-in example is runnable without editing paths:
145148

@@ -172,6 +175,7 @@ Sheaft is intentionally downstream of Bering artifacts and schemas.
172175
- `1.0.0` is kept as the stable fail-stop baseline semantics line.
173176
- `1.1.0` enables additive path-aware diagnostics and fault-profile analysis when metadata exists.
174177
- Compatibility metadata is published in [compatibility-manifest.json](compatibility-manifest.json).
178+
- The current app-level Bering release/package sync target is `v0.3.4`; schema acceptance still comes only from the pinned contracts above.
175179
- Schema ownership stays with Bering; Sheaft does not redefine those schema versions.
176180
- `--contract-policy` can narrow or deprecate accepted contracts for a specific project, but it cannot expand support beyond the built-in whitelist.
177181

RELEASING.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Releasing Sheaft
22

3-
Sheaft release automation is tag-driven and platform-neutral. The `v0.1.x` line is intentionally published as a technical preview, so release notes and README language should stay explicit about what is stable versus experimental.
3+
Sheaft release automation is tag-driven and platform-neutral. The `0.x` line is intentionally published as a technical preview, so release notes and README language should stay explicit about what is stable versus experimental.
44

55
The canonical release contract is the generated payload:
66

@@ -10,14 +10,15 @@ The canonical release contract is the generated payload:
1010

1111
GitHub Releases publish that payload, but GitHub metadata is not the source of truth.
1212

13-
`compatibility-manifest.json` is intentionally checked in because it mirrors the current strict upstream contract pins and is drift-checked in CI. `release-manifest.json` is release-specific and must not be committed from `main`; it is generated during `make release-dry-run`, `make release-local`, and tag-driven release publishing, then uploaded as a release asset.
13+
`compatibility-manifest.json` is intentionally checked in because it mirrors the current strict upstream contract pins plus tested upstream app release metadata, and is drift-checked in CI. `release-manifest.json` is release-specific and must not be committed from `main`; it is generated during `make release-dry-run`, `make release-local`, and tag-driven release publishing, then uploaded as a release asset.
1414

1515
## Ownership Boundary
1616

1717
- Bering owns upstream artifact schemas and release metadata.
1818
- Sheaft stays downstream and only declares compatibility with Bering-produced artifacts.
1919
- Sheaft must not redefine or silently mutate Bering schema versions.
2020
- Strict contract validation remains in `internal/modelcontract/contract.go` and is mirrored into `compatibility-manifest.json`.
21+
- Tested upstream Bering app release/package syncs are recorded in `compatibility-manifest.json`; they do not expand schema acceptance.
2122

2223
## Version Surfaces
2324

compatibility-manifest.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,5 +46,7 @@
4646
"schema_digest": "sha256:53b127608b2aaa4fabb352b998cd6b2c5ed558764729a09abea56f4f9b40fa01"
4747
}
4848
],
49-
"tested_bering_app_versions": []
49+
"tested_bering_app_versions": [
50+
"v0.3.4"
51+
]
5052
}

docs/compatibility-matrix.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,12 @@ Sheaft is a strict downstream consumer of Bering-produced artifacts. It does not
44

55
The machine-readable equivalent of this page is the repo-root `compatibility-manifest.json`.
66

7+
## Current App-Level Sync
8+
9+
The current `main` line has been synced against the published Bering `v0.3.4` release/package. This is recorded in `compatibility-manifest.json` as `tested_bering_app_versions: ["v0.3.4"]`.
10+
11+
That package sync does not widen or narrow the accepted upstream schema contracts. The strict contract pins remain the `1.0.0` and `1.1.0` Bering model/snapshot lines below.
12+
713
## Current Matrix
814

915
| Sheaft line | Status | Bering model contract | Model URI | Model digest | Bering snapshot contract | Snapshot URI | Snapshot digest | Notes |
@@ -32,4 +38,4 @@ Overlapping metrics produce diffs. Metrics that are unavailable on one side rema
3238

3339
## Release Note
3440

35-
This repository currently has no Git tags or published Sheaft release lines. The `main` row therefore represents the active unreleased consumer pin. When versioned Sheaft releases start, add one row per released line and keep `main` as the forward-looking row.
41+
Published Sheaft releases through `v0.2.4` use the same accepted Bering `1.0.0` and `1.1.0` contract pins. The `main` row represents the active post-`v0.2.4` consumer pin; when a future Sheaft release changes accepted upstream contracts, add one row per released line and keep `main` as the forward-looking row.

docs/compatibility.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,9 @@ Runtime truth lives in `internal/modelcontract/contract.go`.
2525
- required schema digests
2626
- tested Bering app versions, if known
2727

28-
An empty `tested_bering_app_versions` array means Sheaft has not published an app-level Bering compatibility statement beyond the schema pins that are already required.
28+
`tested_bering_app_versions` lists Bering product tags this Sheaft line has been app-level synced against. The current line records Bering `v0.3.4`; schema acceptance is still controlled only by `supported_contracts`.
29+
30+
An empty `tested_bering_app_versions` array would mean Sheaft has not published an app-level Bering compatibility statement beyond the schema pins that are already required.
2931

3032
## How Downstream CI Should Use It
3133

@@ -82,6 +84,7 @@ When a contract is still supported globally but deprecated for a given project,
8284
- Sheaft declares compatibility with Bering `1.0.0` and `1.1.0` model/snapshot release lines.
8385
- `1.0.0` remains the baseline fail-stop semantics line and the cross-version comparison reference.
8486
- `1.1.0` enables additive path-aware timeout, retry, placement, shared-resource, and edge-scoped analysis when the artifact carries that metadata.
87+
- The current app-level Bering release/package sync target is `v0.3.4`; no Bering schema contract pins changed for that package release.
8588
- Missing advanced metadata is surfaced as unavailable rather than guessed.
8689
- Changing the Sheaft app version does not automatically widen or narrow compatibility.
8790

docs/contract-release-workflow.md

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,20 @@ Keep Sheaft as a strict downstream consumer:
1212

1313
## Current Upstream Metadata Source
1414

15-
The canonical published Bering release manifest currently consumed by Sheaft is:
15+
The canonical published Bering schema metadata currently consumed by Sheaft is:
1616

1717
- `https://mb3r-lab.github.io/Bering/schema/index.json`
1818

1919
Sheaft CI verifies that this published metadata matches the currently published `1.1.0` model and snapshot contracts in `internal/modelcontract/contract.go`.
2020
Published remote schema sync is verified separately for every supported versioned model and snapshot schema mirror.
2121

22+
The current app-level Bering release/package sync target is:
23+
24+
- Release: `https://github.com/MB3R-Lab/Bering/releases/tag/v0.3.4`
25+
- Release manifest asset: `release-manifest.json` (`sha256:d7f4b3d61ff8e36bd370dadd351e51a2b2803677ae12a5e0fbb81faacfd01e20`)
26+
- Contracts pack asset: `bering-contracts_0.3.4.tar.gz` (`sha256:3865a8e7152c8a383f34d99334bc392cfd0ec793325b530d392723f67839ddbf`)
27+
- Schema contract pins consumed by Sheaft remain `1.0.0` and `1.1.0`.
28+
2229
## Release Policy
2330

2431
### Non-breaking upstream schema release
@@ -39,6 +46,16 @@ When Bering publishes a new contract line that Sheaft wants to support:
3946
- compatibility matrix check
4047
- `go test ./...`
4148

49+
### Upstream app/package release with unchanged schemas
50+
51+
When Bering publishes a product release that keeps the same schema contract lines:
52+
53+
1. confirm the Bering release and package assets are published;
54+
2. update `tested_bering_app_versions` through the compatibility manifest generator;
55+
3. update `README.md`, [compatibility matrix](compatibility-matrix.md), and this workflow note with the Bering release/package checkpoint;
56+
4. regenerate `compatibility-manifest.json`;
57+
5. run the compatibility-manifest check and `go test ./...`.
58+
4259
### Breaking upstream schema release
4360

4461
If the new Bering contract is not backward compatible for Sheaft:

docs/release-assets.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ The GitHub Release also publishes the fixed benchmark slice quality report as re
3131
`compatibility-manifest.json` answers:
3232

3333
- which upstream Bering contracts does this Sheaft line accept?
34+
- which Bering app release packages has this Sheaft line been synced against, if known?
3435

3536
`release-manifest.json` answers:
3637

@@ -39,6 +40,7 @@ The GitHub Release also publishes the fixed benchmark slice quality report as re
3940
Keep them separate:
4041

4142
- compatibility changes track Bering schema support
43+
- tested app-version entries track app-level Bering release/package syncs that keep the same schema pins
4244
- release-manifest changes track build outputs for a specific Sheaft release
4345

4446
## CI Consumption Pattern

docs/roadmap.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ This file captures the repository-side audit refreshed on 2026-05-31: current Gi
2323
- Active backlog milestone: `Post-v0.2.4 technical preview`
2424
- Previous release-tracking issue: [#82](https://github.com/MB3R-Lab/Sheaft/issues/82)
2525
- Current release-tracking issue: [#83](https://github.com/MB3R-Lab/Sheaft/issues/83)
26+
- Current upstream Bering app/package sync target: [Bering v0.3.4](https://github.com/MB3R-Lab/Bering/releases/tag/v0.3.4), with unchanged `1.0.0` / `1.1.0` schema contract pins.
2627
- GitHub issue and milestone sync was refreshed on 2026-05-31 after shipping the `v0.2.4` technical-preview release.
2728

2829
## Latest Release/Package Checkpoint
@@ -197,4 +198,5 @@ Goal: make the Bering -> Sheaft workflow repeatable beyond a technical preview.
197198
- R4.3 landed on 2026-05-30 as the first trustable-gate documentation step: `docs/assumptions-and-limitations.md` now contains the do-not-trust signal catalogue and detector field shape.
198199
- R4.1/R4.2 landed on 2026-05-31: `make benchmark-slice` now runs the fixed Sheaft-on-Bering benchmark and emits `quality-report.json`.
199200
- R9.1 landed on 2026-05-31: gate decisions now include machine-readable why reasons and CLI `--why` output.
201+
- Bering app/package sync refreshed on 2026-05-31 after Bering `v0.3.4`: `compatibility-manifest.json` now records `tested_bering_app_versions: ["v0.3.4"]`; schema contract pins are unchanged.
200202
- The next highest-priority repo task is **R9.2: add a debugging toolkit for common contract, path, and policy failures**.

internal/release/compatibility.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const (
2222
DefaultReleaseSchemaPath = "api/schema/release-manifest.schema.json"
2323
DefaultConfigPackSourceListPath = "release/packs/default-config-pack.files.txt"
2424
DefaultConfigPackMetadataOutputPath = "dist/default-config-pack.json"
25+
CurrentTestedBeringAppVersion = "v0.3.4"
2526
)
2627

2728
type CompatibilityContract struct {
@@ -98,10 +99,14 @@ func GenerateCompatibilityManifest() CompatibilityManifest {
9899
SupportedUpstreamSchemaNames: schemaNames,
99100
SupportedUpstreamSchemaVersions: schemaVersions,
100101
SupportedContracts: supportedContracts,
101-
TestedBeringAppVersions: []string{},
102+
TestedBeringAppVersions: TestedBeringAppVersions(),
102103
}
103104
}
104105

106+
func TestedBeringAppVersions() []string {
107+
return []string{CurrentTestedBeringAppVersion}
108+
}
109+
105110
func (m CompatibilityManifest) Validate() error {
106111
if m.SchemaVersion != CompatibilityManifestSchemaVersion {
107112
return fmt.Errorf("compatibility manifest schema_version must be %q", CompatibilityManifestSchemaVersion)

0 commit comments

Comments
 (0)