Merge pull request 'docs: make release-path script the sole source' (#260) from build/251-release-path-doc into main
All checks were successful
CI / test (push) Successful in 3m48s
CI / release-exercise (push) Has been skipped
CI / self-guards (push) Successful in 21s
CI / action-exercise (push) Successful in 20s
CI / docs-sync-exercise (push) Successful in 20s
release / release (push) Successful in 21s
All checks were successful
CI / test (push) Successful in 3m48s
CI / release-exercise (push) Has been skipped
CI / self-guards (push) Successful in 21s
CI / action-exercise (push) Successful in 20s
CI / docs-sync-exercise (push) Successful in 20s
release / release (push) Successful in 21s
Reviewed-on: #260 Reviewed-by: glm-bot-andresmgsl <andres+5@heavyduty.builders> Reviewed-by: kimi-bot-andresmgsl <andres+4@heavyduty.builders> Reviewed-by: claude-bot-andresmgsl <andres+1@heavyduty.builders>
This commit is contained in:
commit
f6f2ec7fff
3 changed files with 22 additions and 4 deletions
3
changelog.d/251.md
Normal file
3
changelog.d/251.md
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
### Fixed
|
||||||
|
|
||||||
|
- Kept drill doctrine's release-path instructions aligned with the executable manifest by removing its duplicate path list (#251).
|
||||||
|
|
@ -84,10 +84,10 @@ drill owed, that verdict wins.
|
||||||
except the `CEREMONY_SELF_REF` pin line in
|
except the `CEREMONY_SELF_REF` pin line in
|
||||||
`.github/workflows/release.yml`.
|
`.github/workflows/release.yml`.
|
||||||
2. The release path is exactly the output of
|
2. The release path is exactly the output of
|
||||||
`.github/scripts/release-path.sh`: `.github/workflows/release.yml`, `bin/`,
|
`.github/scripts/release-path.sh`. Run the script and paste its output into
|
||||||
`lib/version.sh`, `lib/decide.sh`, `lib/facts.sh`, and
|
the record; measure the diff with
|
||||||
`lib/changelog.sh`. The script is the record author's copy-paste source;
|
`git diff <last-rehearsed-tag>..HEAD -- $(sh .github/scripts/release-path.sh)`.
|
||||||
its contract test keeps this inline list and the workflow's direct and
|
The script's contract test keeps its list and the workflow's direct and
|
||||||
transitive dependencies in agreement.
|
transitive dependencies in agreement.
|
||||||
3. The last rehearsed tag's own record is a full rehearsal, its release is
|
3. The last rehearsed tag's own record is a full rehearsal, its release is
|
||||||
published, and `main` was re-armed to `-dev` after it.
|
published, and `main` was re-armed to `-dev` after it.
|
||||||
|
|
|
||||||
|
|
@ -97,6 +97,19 @@ path_check() {
|
||||||
[ -z "$missing" ] && [ -z "$extra" ]
|
[ -z "$missing" ] && [ -z "$extra" ]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
readme_has_no_path_enumeration() {
|
||||||
|
local token found=no
|
||||||
|
for token in \
|
||||||
|
bin/ lib/version.sh lib/decide.sh lib/facts.sh lib/changelog.sh lib/forge.sh
|
||||||
|
do
|
||||||
|
if grep -qF "$token" "$ROOT/drills/README.md"; then
|
||||||
|
printf 'drill doctrine enumerates release path: %s\n' "$token" >&2
|
||||||
|
found=yes
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
[ "$found" = no ]
|
||||||
|
}
|
||||||
|
|
||||||
fixture() {
|
fixture() {
|
||||||
local name="$1" tree
|
local name="$1" tree
|
||||||
tree="$TMP/$name"
|
tree="$TMP/$name"
|
||||||
|
|
@ -125,6 +138,8 @@ check "manifest prints the specified ordered release path" 0 \
|
||||||
bash "$PATH_SCRIPT"
|
bash "$PATH_SCRIPT"
|
||||||
check "real workflow and transitive dependencies match the manifest" 0 "" \
|
check "real workflow and transitive dependencies match the manifest" 0 "" \
|
||||||
path_check "$ROOT"
|
path_check "$ROOT"
|
||||||
|
check "drill doctrine does not duplicate the executable release path" 0 "" \
|
||||||
|
readme_has_no_path_enumeration
|
||||||
|
|
||||||
# A door growing a dependency must name the missing path (#237 D7).
|
# A door growing a dependency must name the missing path (#237 D7).
|
||||||
tree="$(fixture missing)"
|
tree="$(fixture missing)"
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue