From d0cace300c625c86a089d15424a08f34e8f2c348 Mon Sep 17 00:00:00 2001 From: Siebren Bakker Date: Wed, 1 Jul 2026 14:05:05 -0500 Subject: [PATCH 1/3] Fix release workflow changelog extraction and target commit The changelog extraction was failing for the first/only version entry because the awk range pattern never found a closing match. Now uses flag-based extraction that works whether there are subsequent version entries or not. Also fixes the tag creation to explicitly target github.sha so the tag points to the commit that triggered the workflow rather than whatever HEAD happens to be after checkout. --- .github/workflows/create-release.yaml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/create-release.yaml b/.github/workflows/create-release.yaml index 610bbf9..522cd38 100644 --- a/.github/workflows/create-release.yaml +++ b/.github/workflows/create-release.yaml @@ -40,8 +40,8 @@ jobs: env: VERSION: ${{ steps.version.outputs.version }} run: | - # Extract changelog section for this version - awk "/^## \[$VERSION\]/,/^## \[/" CHANGELOG.md | sed '$d' | tail -n +2 > changelog.txt + # Extract changelog section for this version (from version header to next version header or EOF) + awk "/^## \[$VERSION\]/{flag=1; next} /^## \[/{flag=0} flag" CHANGELOG.md > changelog.txt echo "### Release Notes for $VERSION" >> "$GITHUB_STEP_SUMMARY" echo "" >> "$GITHUB_STEP_SUMMARY" @@ -56,7 +56,8 @@ jobs: run: | gh release create "$TAG" \ --title "Release $VERSION" \ - --notes-file changelog.txt + --notes-file changelog.txt \ + --target "${{ github.sha }}" echo "" >> "$GITHUB_STEP_SUMMARY" echo "✅ Created release $TAG" >> "$GITHUB_STEP_SUMMARY" From 40831ae0d585747cbd7a1fa1ff7774f5b33ac9c3 Mon Sep 17 00:00:00 2001 From: Siebren Bakker Date: Wed, 1 Jul 2026 14:08:12 -0500 Subject: [PATCH 2/3] Add workflow to sync dev after main merges After a PR from dev to main is merged, automatically fast-forward dev to include the merge commit from main. This keeps dev in sync with main and prevents divergence. --- .github/workflows/sync-dev-to-main.yaml | 35 +++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/sync-dev-to-main.yaml diff --git a/.github/workflows/sync-dev-to-main.yaml b/.github/workflows/sync-dev-to-main.yaml new file mode 100644 index 0000000..0b93b7b --- /dev/null +++ b/.github/workflows/sync-dev-to-main.yaml @@ -0,0 +1,35 @@ +name: Sync dev to main + +on: + push: + branches: + - main + +jobs: + sync: + name: Fast-forward dev to main + runs-on: ubuntu-latest + if: contains(github.event.head_commit.message, 'Merge pull request') && contains(github.event.head_commit.message, 'from fragforce/dev') + permissions: + contents: write + steps: + - name: Generate app token + id: app-token + uses: actions/create-github-app-token@1b10c78c7865c340bc4f6099eb2f838309f1e8c3 # v3 + with: + client-id: ${{ secrets.FRAGFORCE_AUTOMATION_APP_ID }} + private-key: ${{ secrets.FRAGFORCE_AUTOMATION_PRIVATE_KEY }} + + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 + with: + fetch-depth: 0 + token: ${{ steps.app-token.outputs.token }} + + - name: Fast-forward dev to main + run: | + git config user.name "fragforce-automation[bot]" + git config user.email "fragforce-automation[bot]@users.noreply.github.com" + git checkout -B dev origin/dev + git merge --ff-only origin/main + git push origin dev From 419c383e53a6ed51b5b61717ba65aff3edc4dc3c Mon Sep 17 00:00:00 2001 From: Siebren Bakker Date: Wed, 1 Jul 2026 14:11:46 -0500 Subject: [PATCH 3/3] Bump version to 1.0.1 Add changelog entry documenting the release workflow fixes and automatic dev sync functionality. --- CHANGELOG.md | 8 ++++++++ pyproject.toml | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 973f853..9beb473 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,13 @@ All notable changes to Fragforce Reads will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.0.1] - 2026-07-01 + +### Fixed +- Release workflow now correctly extracts changelog content for single/first version entries +- Release workflow now tags the correct commit (main merge commit) instead of dev branch head +- Dev branch now automatically syncs after main merges to prevent divergence + ## [1.0.0] - 2026-07-01 Initial MVP release of Fragforce Reads - an audio playback service for the VTO Book Reading project. @@ -101,4 +108,5 @@ Initial MVP release of Fragforce Reads - an audio playback service for the VTO B - HTML accessibility and CSS deprecation warnings - Cognitive complexity in views (SonarCloud) +[1.0.1]: https://github.com/fragforce/read/releases/tag/v1.0.1 [1.0.0]: https://github.com/fragforce/read/releases/tag/v1.0.0 diff --git a/pyproject.toml b/pyproject.toml index a835ba9..0fea020 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "fragforce-read" -version = "1.0.0" +version = "1.0.1" description = "Audio playback service for the VTO Book Reading project" requires-python = ">=3.13" dependencies = [