on the command-line, in a PR called "update-core-and-stuff-DATE":
-
update core:
./scripts/update-core.sh # shows used branch ./scripts/update-core.sh BRANCH_OR_TAG # update to tag or latest commit of branch ./scripts/clean-core.sh # helps on weird issues, do also "Build / Clean"
-
update translations and local help:
./scripts/tx-pull-translations.sh ./scripts/create-local-help.sh
the "update-core-and-stuff-DATE" PR can be merged without review (as everything was already reviewed in their repos).
then, create a "bump-to-VERSION" PR:
-
update CHANGELOG.md:
a) add title## v1.2.3
or## v1.2.3 Testflight
, add date asYYYY-MM
b) redact lines from## Unreleased
there
c) add core version to end of changelog entry as- update to core 1.2.3
or- using core 1.2.3
c) incorporate https://github.com/deltachat/deltachat-core-rust/blob/main/CHANGELOG.md and redact too technical terms, so that the end user can understand itin case previous entries of the changelog refer to not officially released versions, the entries should be summarized. this makes it easier for the end user to follow changes by showing major changes atop.
-
on major changes, add a device message to
ChatListViewController::viewDidLoad()
or remove the old one. do not repeat the CHANGELOG here: write what really is the UX outcome in a few lines of easy speak without technical terms. often, one can peek at Android here :)
in Xcode:
-
bump "Marketing Version" and "Current Project Version" ("View/Navigators/Project/deltachat-ios", project "deltachat-ios", then "Build Settings/Versioning")
-
a) select "Any iOS Device (arm64)" in the toolbar b) select menu "Product/Archive" (codesign may ask for a password, this may be empty and "Enter" will do) c) on success, a dialog with all releases on the machine is shown; select the most recent, then "Distribute App / App Store Connect", use defaults, "Distribute"
This will already push the version to the Internal Testflight group with selected, named testers.
on https://appstoreconnect.apple.com :
-
for an Open Testflight release, open "My Apps / Delta Chat / TestFlight / iOS" a) status becomes "Ready to Submit" automatically after some minutes b) select "open-testing-group" on the left, select "Builds" tab c) click "+" and select the version made "Ready to submit" above d) make sure the credentials shown on the next page are working (the credentials are needed by apple for review)
OR
-
for a Regular release, open "My Apps/Delta Chat iOS/iOS App+ (first item)" a) enter the version number (without leading "v") b) fill out "what's new", use CHANGELOG.md as a template, add the line: "These features will roll out over the coming days. Thanks for using Delta Chat!" c) select a build d) make sure, the credentials for the apple-review-team are working e) select "Release update over 7-day period using phased release" f) click on "Save" and then "Add for Review" g) on the "Confirm Submission" page, another time "Submit to App Review" the overview must read for the new version "Waiting for Review" afterwards
wrt ads: we do not use ads, answer "No". final state should be "Waiting for Review" - if it is only "Ready for Review", watch out for some additional alerts.
in both cases, make sure, the provided test-email-address is working. finally, back on command line:
- commit changes from 1.-5. add add a tag: $ git tag v1.2.3; git push --tags