chore(release): require curated release notes

This commit is contained in:
archipelago
2026-05-17 18:59:12 -04:00
parent e05e356d64
commit daad50325b
3 changed files with 63 additions and 34 deletions

View File

@@ -128,36 +128,20 @@ cd "$PROJECT_ROOT/neode-ui"
npm run build 2>&1 | tail -3
cd "$PROJECT_ROOT"
echo "[4/7] Generating changelog..."
# Get commits since last tag (or last 50 if no tags)
LAST_TAG=$(git -C "$PROJECT_ROOT" describe --tags --abbrev=0 2>/dev/null || echo "")
if [ -n "$LAST_TAG" ]; then
GIT_LOG=$(git -C "$PROJECT_ROOT" log "$LAST_TAG"..HEAD --oneline --no-merges 2>/dev/null || echo "")
else
GIT_LOG=$(git -C "$PROJECT_ROOT" log --oneline --no-merges -50 2>/dev/null || echo "")
fi
echo "[4/7] Validating curated changelog..."
# Create/update CHANGELOG.md entry
CHANGELOG_FILE="$PROJECT_ROOT/CHANGELOG.md"
RELEASE_DATE=$(date +%Y-%m-%d)
CHANGELOG_ENTRY="## v${VERSION} (${RELEASE_DATE})
$GIT_LOG
"
if [ -f "$CHANGELOG_FILE" ]; then
# Prepend new entry after the first line (title)
EXISTING=$(cat "$CHANGELOG_FILE")
FIRST_LINE=$(head -1 "$CHANGELOG_FILE")
REST=$(tail -n +2 "$CHANGELOG_FILE")
echo "$FIRST_LINE" > "$CHANGELOG_FILE"
echo "" >> "$CHANGELOG_FILE"
echo "$CHANGELOG_ENTRY" >> "$CHANGELOG_FILE"
echo "$REST" >> "$CHANGELOG_FILE"
else
echo "# Changelog" > "$CHANGELOG_FILE"
echo "" >> "$CHANGELOG_FILE"
echo "$CHANGELOG_ENTRY" >> "$CHANGELOG_FILE"
if [ ! -f "$CHANGELOG_FILE" ] || ! grep -q "^## v${VERSION} (" "$CHANGELOG_FILE"; then
echo "Error: CHANGELOG.md must already contain curated notes for v${VERSION}."
echo "Add a section like:"
echo ""
echo "## v${VERSION} (${RELEASE_DATE})"
echo ""
echo "- User/operator-facing change ..."
echo "- Another concrete change ..."
echo "- Validation or operational note ..."
exit 1
fi
echo "[5/7] Creating release manifest..."