Summary: How the 7Mind mobile apps (Flutter monorepo) ship to TestFlight and Play Store on a weekly cadence. Sources: Notion extraction 2026-05-15 (New 7Mind Release Process, New Release Process, Releasing 7 Mind 3.0.x) Last updated: 2026-05-15
Cadence
A release runs every Thursday. The role rotates and is called the “Release Guru” (rotation maintained in Notion). The default is one release per two weeks, with exceptions for urgent bug fixes that ship out of cycle.
Pipeline Overview
The mobile apps live in the 7mind-mobile-apps-monorepo repo. Releases are driven by changelog automation plus a manual trigger in Codemagic.
- Every Thursday at 10:00 a PR named
chore(release): Publish packagesis auto-created. It collects all changes merged tomainbefore 10:00. - If extra changes land after 10:00 and should ship in the same release, the Release Guru re-runs the
Prepare ChangelogsGitHub Actions workflow onmain, which regenerates the PR. - After PR checks pass, the Release Guru merges the changelog PR into
main. - Once all post-merge GitHub Actions workflows complete (build artifacts), the Release Guru opens Codemagic and starts a new build for the monorepo against the new git tag (for example
seven_mind-v0.0.32). - Codemagic runs two workflows: iOS and Android. Both use the same git tag. Important: iOS does not accept
+Ntag suffixes, so tags must follow the formseven_mind-vX.Y.Z(no build-number suffix). - Build progress is observed in the Slack channel
#internal-releases-mobile-apps. - When iOS and Android builds finish, the iOS build lands on TestFlight and the Android build lands on Play Store internal track.
- The Release Guru posts a release message in
#releases-7mind-flutterusing thechangelog.mdfrom the merge commit, and writes the human-facing release notes from it.
Phased Rollout
Releases go out in phases:
- iOS: phased release through App Store Connect.
- Android: phased rollout, brought to 100% over roughly a week.
DACH staging release lands Friday, production release Monday (older “DACH Technical Release plan” doc).
Code Freeze and Branching
Code freeze and git release strategy were items still being formalized in 2025 (pending in the DACH launch plan checklist). TBD — confirm the current rule (whether release branches are still cut, or whether main-line releases are the standing convention) and link to the active Notion process page.
Testing Strategy
The release plan calls for:
- Unit tests on bloc, repos, services, managers, extensions, models. Codecov is configured.
- Patrol integration tests for new features. Run before tagging.
- Subscription flow smoke tests (purchase, restore, dunning) before promoting a build.
Patrol tests live in the monorepo. TBD — confirm the canonical test command and CI job name, and surface it in flutter-app.
Communication Channels
#internal-releases-mobile-apps— build status and failures#releases-7mind-flutter— human-readable release messages#activation-team-public— questions about SKUs and pricing surfaces
Manual Steps That Still Hurt
The process is largely automated but several steps remain manual: triggering Codemagic, ensuring what's new translations are ready, submitting for review, walking the Android rollout up. These are flagged in the Notion source pages as candidates for further automation.
Related
- flutter-app for repo-level conventions
- bug-triage for the bug intake process that feeds release scopes