docs: require human release notes

This commit is contained in:
mirivlad 2026-07-15 07:42:02 +08:00
parent f00deb3d2a
commit ac268e5c57
3 changed files with 21 additions and 3 deletions

5
release-notes/v2.0.5.md Normal file
View File

@ -0,0 +1,5 @@
## Highlights
- The Firefox package no longer requests a permission unsupported by Firefox.
- Popup operation errors and the language selector are localized and use the extension's visual style.
- The release includes the signed XPI and `updates.json` for GitHub-hosted Firefox updates.

View File

@ -7,6 +7,7 @@ cd "$ROOT_DIR"
REPOSITORY="mirivlad/verstak-browser-extension"
SOURCE_DIR="${VERSTAK_FIREFOX_SOURCE_DIR:-dist/firefox}"
RELEASE_DIR="${VERSTAK_FIREFOX_RELEASE_DIR:-release/firefox}"
RELEASE_NOTES_DIR="${VERSTAK_RELEASE_NOTES_DIR:-release-notes}"
GIT_BIN="${GIT_BIN:-git}"
GH_BIN="${GH_BIN:-gh}"
@ -57,12 +58,21 @@ fi
if "$GH_BIN" release view "$TAG" --repo "$REPOSITORY" >/dev/null 2>&1; then
"$GH_BIN" release upload "$TAG" "$XPI" "$UPDATES" --repo "$REPOSITORY" --clobber
else
NOTES_FILE="$RELEASE_NOTES_DIR/$TAG.md"
if [[ ! -s "$NOTES_FILE" ]]; then
echo "ERROR: human-readable release notes are required: $NOTES_FILE" >&2
exit 1
fi
RELEASE_OPTIONS=(--notes-file "$NOTES_FILE" --generate-notes --latest --verify-tag)
PREVIOUS_TAG="$("$GIT_BIN" describe --tags --abbrev=0 "${HEAD}^" 2>/dev/null || true)"
if [[ -n "$PREVIOUS_TAG" ]]; then
RELEASE_OPTIONS+=(--notes-start-tag "$PREVIOUS_TAG")
fi
"$GH_BIN" release create "$TAG" "$XPI" "$UPDATES" \
--repo "$REPOSITORY" \
--title "Verstak Browser Extension $VERSION" \
--generate-notes \
--latest \
--verify-tag
"${RELEASE_OPTIONS[@]}"
fi
echo "GitHub release:"

View File

@ -43,6 +43,9 @@ assert.match(publisher, /release create/);
assert.match(publisher, /release upload/);
assert.match(publisher, /--clobber/);
assert.match(publisher, /--latest/);
assert.match(publisher, /--notes-file/);
assert.match(publisher, /--generate-notes/);
assert.match(publisher, /--notes-start-tag/);
const genericPublisher = fs.readFileSync('scripts/publish-github-release.sh', 'utf8');
assert.match(genericPublisher, /publish-firefox-github-release\.sh/);