mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
[docs] Move release process to documentation
Signed-off-by: Jean-Baptiste <jeanbaptiste.charron@outlook.fr>
This commit is contained in:
@@ -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).
|
||||
|
||||
@@ -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)
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user