[docs] Move release process to documentation

Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
This commit is contained in:
Jean-Baptiste
2025-11-19 18:33:15 +01:00
committed by patepelo
parent 84f7687b98
commit 1df7848888
3 changed files with 112 additions and 12 deletions

View File

@@ -1,5 +1,113 @@
# Release Management
## Prepare release
### A few days before the release
- [ ] start map generation
- [ ] raise release notes PR and ask for translations
### Shortly before the release day
- [ ] merge a "[planet] Update map data to xxxxxx" PR with new countries.txt
- [ ] merge a meta-php PR with new maps data version
- [ ] make sure new maps files are on all CDN nodes
- [ ] smoke test map data for World and some regions
- [ ] merge (translated) release notes PR
## Build a release for Android
## Shortly before the release day
- [ ] update GP metadata (descriptions, screenshots..) some days before the release
### On release day
- [ ] create a release branch release/2025.xx.yy
- add a "[fdroid] Release version 2025.xx.yy-zz" commit
- with a change to android/app/src/fdroid/play/version.yaml
- take the version number from `tools/unix/version.sh` +1
- e.g. with an added version bump commit it should match script's output
- [ ] tag the new release and push the tag to codeberg
- the tag format is "v2025.08.13-4" (not the old "2025.08.13-4-android"!)
- F-Droid will pickup the new tag (happens once a day)
- [ ] regenerate symbols
- [ ] regenerate drules
- [ ] update the world*.mwm
- [ ] build Google release bundle (`./gradlew bundleGoogleRelease`) - check the keys are Google upload / test (yes, they're the same at test keys)!
upload to GP and submit for a review
- [ ] build Codeberg release (`./gradlew -Parm32 -Parm64 assembleWebRelease`, e.g. no x86) - check the keys are prod Codeberg / main!
- [ ] create a Codeberg release from the tag, upload the build, add relnotes
- [ ] Upload the release to Google and submit for review
- [ ] announce the release in TG channel, upload the build
## Build a release for iOS
### Shortly before the release day
- [ ] **Add short iOS release notes to releases document**
- They should consist of the most important things in general, that will be new in this version
- Those will be used for the App Store
- They will be translated in a pull request together with the short Android release notes
- [ ] **Add long iOS release notes to releases document**
- They should consist only of iOS-specific things, that will be new in this version
- Include credits to the persons, who added those new things
- [ ] **Add release with version number in App Store Connect**
- The version number should be the planned release date in `yyyy.MM.dd` format (like _2025.08.30_)
- [ ] **Update metadata in App Store Connect**
- Only include languages for which the App Store metadata has been completely translated
### On release day
- [ ] **Wait for the Android release to be prepared**
- [ ] **Pull the latest version form the repository**
- The same last commit like for the Android release should be used
- [ ] **Edit versions and build number of the `CoMaps` and `CoMapsWidgetExtension` targets in Xcode**
- Use the same versions and build number of the Android release
- [ ] **Select the build target _Any iOS Device_ in Xcode**
- [ ] **Clean the build folder in Xcode**
- This can be done via _Product_ / _Clean Build Folder..._ in the menubar
- [ ] **Manually regenerate the styles**
- `./tools/unix/generate_styles.sh`
- [ ] **Create the application archive in Xcode**
- This can be done via _Product_ / _Archive_ in the menubar
- [ ] **Upload application to the App Store via the Xcode organizer**
- Choose the freshly created application archive, press `Distribute App`, select `App Store Connect` and follow the steps until the app is successfully uploaded
- [ ] **Adjust the version in App Store Connect, if necessary**
- It should be the same version used in Xcode and for the Android release
- [ ] **Add the short release notes in App Store Connect**
- The translations can be found in a translation pull request specific for that version
- For the languages, which are fully translated for the App Store, but are missing translated release notes, use the English release notes
- [ ] **Add the build to the release in App Store Connect**
- It might take a few minutes for the uploaded build to actually show up
- [ ] **Submit the release to review**
- Don't forget the actual submission step after clicking on _Add for Review_
- [ ] **Submit the same build to TestFlight review**
- [ ] **Wait for Apple approving the release and TestFlight build**
### After Apple's release approval
- [ ] **Also release the build on TestFlight**
- [ ] **Notify everybody in the Zulip topic for that release about the App Store availability**
## Shortly after the release
### Distribute to the French National library
- [ ] **Build a google apk (with google flavord /web keys and only arm32/64 arches) for French National library**
- [ ] **Upload it to their sftp**
### Update `json` for [TagInfo](https://taginfo.openstreetmap.org/)
- [ ] **Run script to generate file**
- `python tools/python/generate_taginfo.py`
- [ ] **Raise PR to add updated file**
- `data/taginfo.json`
### Announcements
- [ ] **Create a banner**
- [ ] **Upload banner to website news**
- [ ] **Announce the release to Telegram**
- [ ] **Create a post in social media**
- Reddit
- Mastodon
- etc.
# Tools to upload metadata and screenshots on stores
## Apple App Store
### Upload metadata and screenshots to the App Store
@@ -42,16 +150,6 @@ cd xcode
Use [Forgejo Actions](../.forgejo/workflows/android-release-metadata.yaml).
### Uploading a new version to Google Play
Use [Forgejo Actions](../.forgejo/workflows/android-release.yaml).
Promote version to "Production" manually in Google Play Console.
### Uploading a new version to Huawei AppGallery
Use [Forgejo Actions](../.forgejo/workflows/android-release.yaml).
### Checking metadata
Use [Forgejo Actions](../.forgejo/workflows/android-check.yaml).

View File

@@ -2,6 +2,8 @@
CI Codeberg is limited and cannot be used for now to build regularly apps and executes tests.
To limit regressions, we have enabled temporary Github CI on the [Github Mirror](https://github.com/comaps/comaps) to build Android and IOS app and execute linter each time we sync the mirror.
We use our own server to execute maps generation with a CI Codeberg.
- [Android CI](https://github.com/comaps/comaps/actions/workflows/android-check.yaml)
- [IOS CI](https://github.com/comaps/comaps/actions/workflows/ios-check.yaml)
- [Maps generation CI](.forgejo/workflows/map-generator.yml)

View File

@@ -1,5 +1,5 @@
[!NOTE]
This info might be outdated.
> [!NOTE]
> This info might be outdated.
First byte:
- 0 - Amount of types (1-8, write as 0-7, 3 bits)