From f8382a36aa61d6a26ff0af862394efb29360d349 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Apr 2026 11:07:11 +0000 Subject: [PATCH 1/6] fix: update Flutter SDK version to 3.41.5 to match pubspec requirement The release CI was using Flutter 3.38.7 but pubspec.yaml requires exactly 3.41.5, causing pub get to fail with version solving errors. Updated the workflow and CLAUDE.md to reflect the correct Flutter SDK version. https://claude.ai/code/session_01R5MsjePaFcFTfAELesWDcz --- .github/workflows/release.yml | 2 +- CLAUDE.md | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d4cb4c2..e6d5e31 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -32,7 +32,7 @@ jobs: - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: '3.38.7' + flutter-version: '3.41.5' channel: 'stable' cache: true diff --git a/CLAUDE.md b/CLAUDE.md index 96d4b6d..528ffb1 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -16,7 +16,7 @@ This file provides guidance for AI assistants working on the RepForge codebase. **Package:** `com.devasy.repforge` **Version:** `1.0.6+7` -**Flutter SDK:** `^3.9.2` +**Flutter SDK:** `3.41.5` --- @@ -217,7 +217,7 @@ dart run build_runner build --delete-conflicting-outputs Triggers automatically on push to `main`: 1. Runs `dart scripts/bump_version.dart patch` (increments patch version) 2. Commits version bump and creates a git tag (`v{version}`) -3. Builds release APK with Flutter 3.38.7 +3. Builds release APK with Flutter 3.41.5 4. Creates a GitHub Release with the APK attached **Do not** manually edit `pubspec.yaml` version before merging to `main` — the CI handles it. For a minor/major bump, edit `pubspec.yaml` manually before the merge. From caa0110d36a920abd8f24db56c7d066f1c629388 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Apr 2026 11:09:05 +0000 Subject: [PATCH 2/6] fix: read Flutter version dynamically from pubspec.yaml in CI Instead of hardcoding the Flutter SDK version in the workflow, extract it at runtime from the `flutter:` field in workout-logger/pubspec.yaml. This keeps the workflow in sync automatically whenever pubspec.yaml is updated. https://claude.ai/code/session_01R5MsjePaFcFTfAELesWDcz --- .github/workflows/release.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e6d5e31..3b33c64 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -29,10 +29,16 @@ jobs: distribution: 'temurin' java-version: '17' + - name: Read Flutter version from pubspec.yaml + id: flutter_version + run: | + FLUTTER_VERSION=$(grep '^\s*flutter:' workout-logger/pubspec.yaml | awk '{print $2}') + echo "value=$FLUTTER_VERSION" >> $GITHUB_OUTPUT + - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: '3.41.5' + flutter-version: ${{ steps.flutter_version.outputs.value }} channel: 'stable' cache: true From 6877bca5c422fb0f915c078e959f19aee2505df4 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Apr 2026 11:09:44 +0000 Subject: [PATCH 3/6] test: trigger CI on feature branch to validate dynamic Flutter version Temporarily adds claude/update-flutter-sdk-u3nK9 to push triggers so the dynamic flutter-version extraction can be validated in CI. https://claude.ai/code/session_01R5MsjePaFcFTfAELesWDcz --- .github/workflows/release.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3b33c64..eac6255 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,6 +4,7 @@ on: push: branches: - main + - claude/update-flutter-sdk-u3nK9 workflow_dispatch: jobs: From 679168144c821ab7afb8fd937a9b96c91ad99158 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Apr 2026 11:11:55 +0000 Subject: [PATCH 4/6] fix: use flutter-version-file to read SDK version from pubspec.yaml Replace the manual grep step with subosito/flutter-action's built-in flutter-version-file parameter, matching the pattern already used in test.yml. Also adds pub-cache-key keyed on pubspec.lock for smarter cache invalidation. Removes temporary test-branch trigger. https://claude.ai/code/session_01R5MsjePaFcFTfAELesWDcz --- .github/workflows/release.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eac6255..9796810 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,7 +4,6 @@ on: push: branches: - main - - claude/update-flutter-sdk-u3nK9 workflow_dispatch: jobs: @@ -30,18 +29,13 @@ jobs: distribution: 'temurin' java-version: '17' - - name: Read Flutter version from pubspec.yaml - id: flutter_version - run: | - FLUTTER_VERSION=$(grep '^\s*flutter:' workout-logger/pubspec.yaml | awk '{print $2}') - echo "value=$FLUTTER_VERSION" >> $GITHUB_OUTPUT - - name: Set up Flutter uses: subosito/flutter-action@v2 with: - flutter-version: ${{ steps.flutter_version.outputs.value }} + flutter-version-file: './workout-logger/pubspec.yaml' channel: 'stable' cache: true + pub-cache-key: "flutter-pub-:os:-:channel:-:version:-:arch:-${{ hashFiles('workout-logger/pubspec.lock') }}" - name: Install dependencies working-directory: ./workout-logger From ff0ec677d3a0d3f7e3694884fda2e9eb84aeb350 Mon Sep 17 00:00:00 2001 From: Claude Date: Thu, 16 Apr 2026 11:13:59 +0000 Subject: [PATCH 5/6] fix: push version bump to current branch instead of hardcoded main Using git push origin HEAD:github.ref_name ensures the version bump commit lands on whatever branch triggered the workflow, not always main. Exposed by the test run on the feature branch. https://claude.ai/code/session_01R5MsjePaFcFTfAELesWDcz --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9796810..a4dda78 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -70,7 +70,7 @@ jobs: echo "committed=false" >> $GITHUB_OUTPUT else git commit -m "chore: bump version to ${{ steps.version.outputs.value }}" - git push origin main + git push origin HEAD:${{ github.ref_name }} echo "committed=true" >> $GITHUB_OUTPUT fi From e5ad30c973a8aa611e98533d4996b4e2d7faa5ee Mon Sep 17 00:00:00 2001 From: Devasy Patel <110348311+Devasy@users.noreply.github.com> Date: Thu, 16 Apr 2026 16:50:16 +0530 Subject: [PATCH 6/6] Update CLAUDE.md Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- CLAUDE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CLAUDE.md b/CLAUDE.md index 528ffb1..4a1ff5d 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -217,7 +217,7 @@ dart run build_runner build --delete-conflicting-outputs Triggers automatically on push to `main`: 1. Runs `dart scripts/bump_version.dart patch` (increments patch version) 2. Commits version bump and creates a git tag (`v{version}`) -3. Builds release APK with Flutter 3.41.5 +3. Builds the release APK with the Flutter version pinned in `workout-logger/pubspec.yaml` (currently 3.41.5) 4. Creates a GitHub Release with the APK attached **Do not** manually edit `pubspec.yaml` version before merging to `main` — the CI handles it. For a minor/major bump, edit `pubspec.yaml` manually before the merge.