This repository has been archived by the owner on Jan 16, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 18
Release documentation
Norbert Schuler edited this page Jul 27, 2020
·
24 revisions
- create a new release branch by using GitFlow with the name <next_version_number>
- increase the version number to <next_version_number>
- in https://github.com/Plant-for-the-Planet-org/treecounter-app/blob/develop/package.json for the JavaScript-Code
- in https://github.com/Plant-for-the-Planet-org/treecounter-app/blob/develop/android/app/build.gradle for the Android app - also increase the versionCode to the next number
- in https://github.com/Plant-for-the-Planet-org/treecounter-app/blob/develop/ios/TreecounterApp.xcodeproj/project.pbxproj for the iOS app - you can also increase the bundle version
MARKETING_VERSION
to the next number
- commit the increase of the version number with a suitable message
- Whenever new libraries (node modules) are used, maybe the license file should get an update. Generate an temporary list of licenses with
./node_modules/license-checker/bin/license-checker --production --relativeLicensePath --direct --json > license.json
and then copy the license from that file to https://github.com/Plant-for-the-Planet-org/treecounter-app/blob/develop/app/components/AboutUs/LicenseInfo.json - currently only all licenses from modules loaded in the sectiondependencies
ofpackage.json
are listed.
- Whenever the routing information for the API changes the files https://github.com/Plant-for-the-Planet-org/treecounter-platform/blob/develop/web/js/fos_js_routes.json in the treecounter-platform backend repository and the file https://github.com/Plant-for-the-Planet-org/treecounter-app/blob/develop/app/server/routes/fos_js_routes.json in the treecounter-app repository have to be synchronized.
- JSON representations are generated by the backend
- use JSON to JS to convert the schema into a JS object (https://github.com/Plant-for-the-Planet-org/treecounter-app/tree/develop/app/server)
- For using Formik we use the function
generateFormikSchemaFromFormSchema
(https://github.com/Plant-for-the-Planet-org/treecounter-app/blob/5e0ac5faafe970393e63c3e08aba4171c5b815ae/app/helpers/utils.js#L578) to generate validation schemata and initial values needed? - For using Tcomb we use this code https://github.com/Plant-for-the-Planet-org/treecounter-app/blob/develop/app/server/parserLiformToTcomb.js?
- use Android Studio with the menu
Build->Generate Signed Bundle/APK
to generate a signed AAB- create a new Alpha, Beta or Production release in the Google Play Store console
- upload the AAB into Google Play Store Console
- add a release note
- publish the release
- Use menu
Product->Archive
in theTreecounterApp(.env.production)
scheme with theGeneric iOS Device
device to create a new archive for releasing the app- use the Organizer to distribute the app (method
iOS App Store
) to App Store Connect - wait for the build to be processed by Apple
- use the Organizer to distribute the app (method
- for TestFlight the processed build has to be activated by added an Export Compliance
- for distribution a new version with <next_version_number> has to be created
- choose the processed build for this version
- add a release note
- push the release into the review process with manual release
- after the review process succeeds release the app
- Merge the release branch into the master and default branch by using GitFlow. This should be done anyway after the release is completed.
- Optionally merge the default branch
develop
also intofixtures
to update all backends. - As Cloudflare is caching the web client, the cache of Cloudflare should be purged for that parts of the app which are not versioned.
- Run the script
./release/upload-native-source-maps.sh
(in the app repository) to upload source maps to Bugsnag for the native client within the time the apps got processed in the App Stores. - Optionally download the dSYMs for the iOS from App Store Connect for the latest build and upload it to Bugsnag as described in the script
./release/upload-native-source-maps.sh
- Source maps for the web client will be uploaded automatically within the CircleCI build of the master branch.