Retire BRINGUP.md and CAMPAIGN-LOG.md

Every fact in the two documents is now on the documentation site, which
is the single source of truth. This repository carries no project
documentation any more: it is the build and release base plus the
acceptance tool, the bench tools and the fixture firmware.

BRINGUP.md was the runbook, the hardware facts bank and the open-work
list. CAMPAIGN-LOG.md was the dated record of how each result was
obtained. What replaces them: the site for present state, and the
commit message for the record of what a change did and how it was
proven, so the change and its record stay together. Local open work is
the developer's own file at the tree root and is not tracked here.

README.md becomes an index card: what this is, build, test, and where
the documentation is.

The release pipeline tags the documentation. Firmware on a machine
needs the documentation that agrees with it, so release.sh now tags the
forgefirm-docs checkout with the same v<version> as the release, and
prints the command that pushes the tag with the release. The checkout
must exist and be clean, which is a new gate before the signature.
FORGEFIRM_DOCS_DIR names the checkout (default: the sibling one) and
FORGEFIRM_DOCS_SKIP releases without a tag, loudly, and is never the
default. The tag is made at staging and pushed with the release, never
before: a documentation tag for a release that never shipped is worse
than no tag.

No catalog consequence. release.sh is host-side and is in no image.
The commission.py change is one sentence of a test description, not
behavior. accel_crash_probe.py and the kas header lose pointers to the
retired files.

Checks: bash -n and sh -n on release.sh, and the tracked trees carry no
reference to either retired file.
This commit is contained in:
ScottW514
2026-09-08 13:29:43 -04:00
parent 81df43e7a4
commit e36a322ec5
8 changed files with 512 additions and 11250 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""De-risk drill for the head-accelerometer crash detector (BRINGUP item 6).
"""De-risk drill for the head-accelerometer crash detector.
The LIS2HH12 on the head bus (i2c-3 @0x1e) carries an on-chip interrupt
generator: a per-axis high-event threshold (IG_THS_X1/Y1/Z1), a duration
+37
View File
@@ -30,6 +30,13 @@
# bundle. The licenses of the software in the image
# make source necessary, so this is never the
# default.
# FORGEFIRM_DOCS_DIR the forgefirm-docs checkout to tag with this
# release (default: <repo>/../forgefirm-docs). The
# firmware and the documentation that describes it
# share a tag, so the documentation that agrees with
# a machine can be found from its version.
# FORGEFIRM_DOCS_SKIP set to 1 to release without tagging the
# documentation. Never the default.
#
# The source bundle: a release build merges kas/source-bundle.yml, so the
# build writes the source of every recipe of the image beside the image.
@@ -309,6 +316,32 @@ fi
( cd "$STAGE" && sha256sum $(echo "$ASSETS" | tr ' ' '\n' | grep -v '^sha256sums.txt$') > sha256sums.txt )
ls -la "$STAGE"
# --- the documentation tag ----------------------------------------------------
#
# Firmware on a machine needs the documentation that agrees with it, so the
# docs repository carries the same tag as the release. The tag is made here and
# pushed with the release, never before: a tag on documentation that never
# shipped is worse than no tag at all.
DOCS_TAG_CMD=""
if [ -n "${FORGEFIRM_DOCS_SKIP:-}" ]; then
warn "docs tag SKIPPED by FORGEFIRM_DOCS_SKIP - this release ships no matching documentation tag"
else
DOCS_DIR="${FORGEFIRM_DOCS_DIR:-$REPO/../forgefirm-docs}"
[ -d "$DOCS_DIR/.git" ] \
|| die "no forgefirm-docs checkout at $DOCS_DIR (set FORGEFIRM_DOCS_DIR, or FORGEFIRM_DOCS_SKIP=1 to release without one)"
[ -z "$(git -C "$DOCS_DIR" status --porcelain)" ] \
|| die "forgefirm-docs has uncommitted changes; commit them before a release"
if git -C "$DOCS_DIR" rev-parse -q --verify "refs/tags/v$VERSION" >/dev/null 2>&1; then
echo "docs: tag v$VERSION already exists in $DOCS_DIR"
else
git -C "$DOCS_DIR" tag -a "v$VERSION" -m "ForgeFIRM v$VERSION" \
|| die "cannot tag forgefirm-docs"
echo "docs: tagged $DOCS_DIR at v$VERSION"
fi
echo "docs: v$VERSION -> $(git -C "$DOCS_DIR" rev-parse --short HEAD)"
DOCS_TAG_CMD="git -C $DOCS_DIR push origin v$VERSION"
fi
cat <<EOF
== release v$VERSION staged ==
@@ -317,12 +350,16 @@ Pre-publish checklist (docs.forgefirm.org, Developers, "Release flow"):
- meta-openglow pushed; kas config flipped to the pinned-remote block
- kas lock refreshed
- self-containment proven from a fresh clone
- forgefirm-docs current for this release (the currency rule) and pushed
Publish (from a directory with an authenticated gh):
cd "$STAGE"
gh release create "v$VERSION" --repo openglow-org/forgefirm \\
--title "ForgeFIRM v$VERSION" --generate-notes $PRERELEASE \\
$ASSETS
Push the documentation tag with it:
$DOCS_TAG_CMD
EOF
if [ "$PUBLISH" = "1" ]; then