Release notes: prepend both install ways to generated notes

The release page now leads with the two supported installation paths —
release package (Linux tar.gz / Windows zip, setup/start, SHA256SUMS) and
source checkout for development — before GitHub's generated changelog.
The block is written by the workflow (`--notes-file` + `--generate-notes`),
so every future v* release carries it.  The v1.9.7 release body is updated
manually to the same text; no code or version change.
This commit is contained in:
catarrh committed 2026-10-21 00:04:19 +03:00
1 parent 1cbafe715c
commit 2e3a563824
2 files changed
+40 -7

No files matched your search

+32 -2
View File
@@ -45,6 +45,33 @@ jobs:
- name: Build release archives - name: Build release archives
run: ./tools/build_release.sh "$GITHUB_REF_NAME" run: ./tools/build_release.sh "$GITHUB_REF_NAME"
- name: Write the install notes
shell: bash
run: |
set -euo pipefail
version=$(sed -n "s/^VERSION = '\([0-9][0-9.]*\)'.*/\1/p" pd.py)
notes="$RUNNER_TEMP/release-notes.md"
cat > "$notes" <<'EOF'
Runtime release - the decoder, setup/start scripts, docs and README
images; no git history and no development files.
**Install - release package (recommended)**
- Linux: `sigrok_iso7816_stream-<VERSION>.tar.gz`
- Windows: `sigrok_iso7816_stream-<VERSION>.zip`
Extract the archive, then run `./setup.sh` + `./start.sh` (Linux) or
`setup.bat` + `start.bat` (Windows). `SHA256SUMS` (attached) verifies
both downloads. Requires sigrok-cli and the FX2 firmware; see the
README *Installation* section for the full prerequisites.
**Install - source checkout (development)**
`git clone https://github.com/anttro/sigrok_iso7816_stream.git`, then
the same setup/start scripts. The clone adds `tests/`, the baseline
tools and the (local-only) example traces; the release package is the
runtime tree.
EOF
sed -i "s/<VERSION>/$version/g" "$notes"
- name: Create or update the GitHub release - name: Create or update the GitHub release
shell: bash shell: bash
env: env:
@@ -52,12 +79,15 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
version=$(sed -n "s/^VERSION = '\([0-9][0-9.]*\)'.*/\1/p" pd.py) version=$(sed -n "s/^VERSION = '\([0-9][0-9.]*\)'.*/\1/p" pd.py)
notes="$RUNNER_TEMP/release-notes.md"
# Upload into an existing release first. If the release does not # Upload into an existing release first. If the release does not
# exist yet, create it as a draft so the published release never # exist yet, create it as a draft so the published release never
# appears with a partial asset set. # appears with a partial asset set. The install notes are prepended
# to GitHub's generated changelog.
if ! gh release upload "$GITHUB_REF_NAME" dist/* --clobber; then if ! gh release upload "$GITHUB_REF_NAME" dist/* --clobber; then
gh release create "$GITHUB_REF_NAME" dist/* --draft \ gh release create "$GITHUB_REF_NAME" dist/* --draft \
--title "sigrok_iso7816_stream $version" --generate-notes --title "sigrok_iso7816_stream $version" \
--notes-file "$notes" --generate-notes
fi fi
# Publish a new draft and re-publish an existing one. # Publish a new draft and re-publish an existing one.
gh release edit "$GITHUB_REF_NAME" --draft=false gh release edit "$GITHUB_REF_NAME" --draft=false
+8 -5
View File
@@ -1050,11 +1050,14 @@ untouched, and `gh release upload dist/*` can never attach a stale version).
(`tests/test_gsmtap.py`), tag == `pd.py` VERSION, the build script, then (`tests/test_gsmtap.py`), tag == `pd.py` VERSION, the build script, then
`gh release upload --clobber` (or `gh release create --draft` when there is `gh release upload --clobber` (or `gh release create --draft` when there is
no release yet) followed by `gh release edit --draft=false`, with no release yet) followed by `gh release edit --draft=false`, with
`release-<tag>` concurrency. **Release process:** commit the docs, workflow `release-<tag>` concurrency. The workflow prepends a standard install block
and scripts first, then tag `v1.9.7` and push the tag (with user approval) - to the generated notes: release package (recommended; Linux tar.gz / Windows
the workflow must exist in the tagged commit, and the archive ships the zip, setup/start, SHA256SUMS) and source checkout (development). **Release
committed READMEs. Release notes are GitHub's auto-generated notes from the process:** commit the docs, workflow and scripts first, then tag `v1.9.7` and
commits; `AGENTS.md` and `tests/` are not in the archive. Packaging/docs push the tag (with user approval) - the workflow must exist in the tagged
commit, and the archive ships the committed READMEs. The changelog itself is
GitHub's auto-generated notes from the commits; `AGENTS.md` and `tests/` are
not in the archive. Packaging/docs
only - no decoder behavior change, and `VERSION` is unchanged. only - no decoder behavior change, and `VERSION` is unchanged.
### Testing after decoder changes ### Testing after decoder changes