Skip to content

Commit 8f4f25b

Browse files
committed
Align release metadata and notes with upstream style
1 parent 8980095 commit 8f4f25b

9 files changed

Lines changed: 610 additions & 12 deletions

File tree

.github/workflows/release.yml

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,31 @@ jobs:
4141
helm push "$chart_file" "oci://ghcr.io/${repo_owner}/charts"
4242
4343
- name: Publish GitHub release
44-
uses: softprops/action-gh-release@v2
45-
with:
46-
prerelease: ${{ startsWith(github.ref_name, 'v0.') }}
47-
files: |
48-
dist/charts/*.tgz
49-
dist/assets/*.tgz
50-
dist/stack-manifest.json
51-
dist/compatibility-matrix.json
52-
dist/SHA256SUMS.txt
53-
dist/sbom.cdx.json
44+
shell: bash
45+
env:
46+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
47+
run: |
48+
set -euo pipefail
49+
title="$(python - <<'PY'
50+
import json
51+
from pathlib import Path
52+
print(json.loads(Path("dist/release-manifest.json").read_text(encoding="utf-8"))["title"])
53+
PY
54+
)"
55+
mapfile -t assets < dist/release-assets.txt
56+
args=()
57+
for asset in "${assets[@]}"; do
58+
args+=("dist/${asset}")
59+
done
60+
if gh release view "${GITHUB_REF_NAME}" >/dev/null 2>&1; then
61+
gh release upload "${GITHUB_REF_NAME}" "${args[@]}" --clobber
62+
gh release edit "${GITHUB_REF_NAME}" --title "${title}" --notes-file dist/release-notes.md
63+
else
64+
gh release create "${GITHUB_REF_NAME}" \
65+
--verify-tag \
66+
--title "${title}" \
67+
--notes-file dist/release-notes.md \
68+
"${args[@]}"
69+
fi
70+
release_id="$(gh release view "${GITHUB_REF_NAME}" --json id --jq .id)"
71+
gh api "repos/${GITHUB_REPOSITORY}/releases/${release_id}" -X PATCH -F prerelease=false -F draft=false >/dev/null

README.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ A stack release publishes:
1818
- a packaged asset archive with `collector/`, `dashboards/`, and `examples/`
1919
- `stack-manifest.json`
2020
- `compatibility-matrix.json`
21+
- `release-manifest.json`
22+
- `release-manifest.schema.json`
23+
- `release-notes.md`
2124
- `SHA256SUMS.txt`
2225
- a CycloneDX SBOM for the packaged release assets
2326

@@ -75,3 +78,7 @@ python scripts/tasks.py release-dry-run
7578
## Compatibility Notes
7679

7780
The compatibility files in `compat/` are the source of truth for stack-level assertions. The current `0.1.0` bundle is recorded as a `candidate` integration statement backed by upstream release manifests and Sheaft's published compatibility manifest, not as a broader verified operations guarantee.
81+
82+
## License
83+
84+
MIT, see [LICENSE](LICENSE).

RELEASING.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
This repository releases integration artifacts, not application binaries.
44

5+
The canonical source of truth is the local `dist/` payload plus `dist/release-manifest.json`. GitHub Releases and OCI chart publication are publishing surfaces around that payload.
6+
57
## Release Outputs
68

79
Each stack release is expected to publish:
@@ -10,6 +12,9 @@ Each stack release is expected to publish:
1012
- `mb3r-assets-<version>.tgz`
1113
- `stack-manifest.json`
1214
- `compatibility-matrix.json`
15+
- `release-manifest.json`
16+
- `release-manifest.schema.json`
17+
- `release-notes.md`
1318
- `SHA256SUMS.txt`
1419
- `sbom.cdx.json`
1520

release/v0.1.0.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
## mb3r-stack v0.1.0
2+
3+
First public MB3R integration bundle release for the stack-level packaging layer above released Bering and Sheaft artifacts.
4+
5+
### Upstream pins in this bundle
6+
7+
- Bering `v0.1.0` pinned to `ghcr.io/mb3r-lab/bering@sha256:8e8ce6599b43477b0653617e829d41c62a3189d16b60ecb424cca718fc0e2674`
8+
- Sheaft `v0.1.1` pinned to `ghcr.io/mb3r-lab/sheaft@sha256:eb1ebf9d96c55c5bb29e226e07496d152eb3a66b52dd9d34ba799fa4aef70624`
9+
10+
### What this release publishes
11+
12+
- the `mb3r-otel-addon` OCI-publishable Helm chart
13+
- the packaged `mb3r-assets` archive with collector snippets, dashboards, and examples
14+
- `stack-manifest.json`, `compatibility-matrix.json`, and `release-manifest.json`
15+
- `SHA256SUMS.txt`, `sbom.cdx.json`, and `release-notes.md`
16+
17+
### Compatibility statement
18+
19+
- bundle status is `candidate`, not `verified`
20+
- compatibility evidence is pinned to the published Bering `v0.1.0` release manifest plus the published Sheaft `v0.1.1` release and compatibility manifests
21+
- stack-level contracts remain `collectorExport`, `discoveryReport`, `gateDecision`, and `reportPayload` at `v1alpha1`
22+
- dashboards stay versioned at `1.0.0` for both Bering and Sheaft views
23+
24+
### CI and install surface
25+
26+
- GitHub, GitLab, and Jenkins adapters now default to immutable upstream image references instead of `TODO-*` placeholders
27+
- example values files ship concrete upstream image tags and digests for local and production-style installs
28+
- chart metadata and OCI publication now target the canonical `ghcr.io/mb3r-lab/charts` namespace
29+
30+
### Known limits
31+
32+
- this repository owns only the integration bundle, not upstream Bering or Sheaft binaries or source releases
33+
- compatibility claims are limited to published upstream artifacts and checked-in integration assets
34+
- broader operational support should remain conservative until this bundle graduates from `candidate` to `verified`

0 commit comments

Comments
 (0)