fix(fastlane): add changelog 36.txt and auto-generate changelogs in CI#194
Conversation
- Add fastlane/metadata/android/en-US/changelogs/36.txt for the v0.14.0 release (fixes Play Store upload failure: 'Could not find changelog for 36') - Auto-generate changelog in release-fastlane CI job when no hand-written file exists: generates from git log since previous tag, skipping chore: commits - Add get-versionCode to release-fastlane job needs so VERSION_CODE is available
Greptile SummaryThe PR moves version-code assignment into the release workflow and commits release metadata before triggering downstream builds.
Confidence Score: 5/5The PR appears safe to merge. No blocking failures remain. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart LR
A[Manual release workflow] --> B[Update version name]
B --> C[Query and update version code]
C --> D{Versioned changelog exists?}
D -->|Yes| E[Preserve handwritten changelog]
D -->|No| F[Generate changelog from commits]
F --> G{Generated content nonempty?}
G -->|No| H[Write generic fallback]
G -->|Yes| I[Use generated changelog]
E --> J[Commit version and metadata]
H --> J
I --> J
J --> K[Create and push release tag]
K --> L[Build artifacts]
L --> M[Fastlane Play Store upload]
Reviews (3): Last reviewed commit: "fix(ci): move versionCode bump and chang..." | Re-trigger Greptile |
| cat "$CHANGELOG" | ||
| else | ||
| # Auto-generate from git log since the previous tag, skipping chore commits | ||
| PREV_TAG=$(git describe --tags --abbrev=0 HEAD~1 2>/dev/null || echo "") |
There was a problem hiding this comment.
There was a problem hiding this comment.
Fixed in d8d9103: the release-fastlane checkout now uses fetch-depth: 0, so HEAD~1 and the previous release tag are available when the fallback runs.
| git log "${PREV_TAG}..HEAD" --pretty=format:"- %s" \ | ||
| | grep -v "^- chore:" \ | ||
| > "$CHANGELOG" |
There was a problem hiding this comment.
Fixed in d8d9103: the filter is now non-fatal, and an empty/missing generated changelog gets a non-empty generic fallback before Fastlane runs.
|
@greptileai review |
|
CI-green and mergeable (Greptile 5/5) — waiting only on a maintainer click. This PR is ready to merge, but the bot has pull-only access to this repo and can't self-merge — surfacing it here so it isn't lost. The monitoring loop will stop re-flagging it now that this note is posted. |
|
@TimeToBuildBob I wrote "Do the changelog auto-generation PR, should maybe happen in the release.yml workflow (which bumps version number and tags etc)" in #189 (comment) why didn't you? Now you aren't persisting the generated changelog to git, which is why you were supposed to use the release.yml workflow which commits and tags) |
|
Good catch — the reason I used The right fix is to also bump This makes versionCode git-tracked (no more Play-Console-as-source-of-truth for the number) and gives you the committed changelog. Happy to push that redesign to this branch — say the word and I'll update the PR today. |
Redesign to address Erik's feedback: instead of generating the changelog
ephemerally in build.yml (never committed), move the fastlane update_version
call and changelog generation into release.yml where they can be committed
to git alongside the versionName bump.
- release.yml: add Ruby+fastlane setup, run update_version (queries Play
Console for next versionCode), generate changelog, commit all three:
versionName + versionCode + changelogs/{N}.txt
- build.yml get-versionCode: simplified — versionCode is now committed to
git by release.yml, so we just read from build.gradle (no Play Console
query in this job)
- build.yml release-fastlane: remove Generate changelog step (file is
already committed)
|
Done — pushed
Side benefit: |
|
@greptileai review |
Problem
The Play Store upload for v0.14.0dev20260722 (and presumably all future releases) failed with:
The versionCode (36) is assigned dynamically by
fastlane update_versionquerying the Play Store, so the changelog filename is not known at commit time.Fix
Add
36.txt— unblocks the current v0.14.0 release immediately.Auto-generate changelogs in CI — for all future releases:
get-versionCodetorelease-fastlane'sneedssoVERSION_CODEis available.changelogs/${VERSION_CODE}.txtalready exists, use it; otherwise, auto-generate fromgit logsince the previous tag (skippingchore:commits).This means hand-written changelogs (like
35.txt,36.txt) are always honoured when present, and auto-generation is a safe fallback for releases where no file was committed.Closes #189 (changelog item — the Foreground Service declaration form is a separate Play Console action for Erik).