Skip to content

Commit

Permalink
6.4.1 (#1128)
Browse files Browse the repository at this point in the history
- Allow image cropping when setting a group/channel avatar
- Fix position of floating scroll-to-bottom button (thanks Matthew
Fennell)
- Fix buttons in contact list not working sometimes (thanks Matthew
Fennell)
- Implement setting to control the time used for auto-deletion of
messages (thanks Noman Ashraf)
- Fix bug sometimes showing an empty list of omemo keys in groups
- Fix saving of group name when creating groups on ejabberd servers
- Fix message retraction in groups/channels
- Fixed dark mode display of chat placeholder image (park)
- New Onboarding flow introducing Monal, XMPP and Privacy Settings
- Accessibility fixes when using VoiceOver
- Merge and improve add contact menu and contact requests menu
- Show contact requests menu when tapping onto a contact request
notification
- Fix several crashes and other bugs
- Updated translations
MACOS_ONLY - This is the last release that will support macOS 11 + 12.
IOS_ONLY - This is the last release that will support iOS 14 + 15.
tmolitor-stud-tu authored Jul 23, 2024
2 parents 3a5baf1 + c8a9b90 commit 59ed4bc
Showing 89 changed files with 4,008 additions and 1,215 deletions.
147 changes: 125 additions & 22 deletions .github/workflows/beta.build-push.yml
Original file line number Diff line number Diff line change
@@ -15,8 +15,13 @@ jobs:
buildAndPublishBeta:
name: "Build and Publish Beta Release"
runs-on: self-hosted
outputs:
release-tag: ${{ steps.releasenotes.outputs.tag }}
release-name: ${{ steps.releasenotes.outputs.name }}
release-notes: ${{ steps.releasenotes.outputs.notes }}
env:
APP_NAME: "Monal"
BUILD_SCHEME: "Monal"
APP_DIR: "Monal.app"
BUILD_TYPE: "Beta"
EXPORT_OPTIONS_CATALYST_APPSTORE: "../scripts/exportOptions/Stable_Catalyst_ExportOptions.plist"
@@ -28,8 +33,10 @@ jobs:
with:
clean: true
submodules: true
- name: Fetch tags
run: git fetch --tags
fetch-depth: 100
fetch-tags: true
show-progress: true
lfs: true
- name: Checkout submodules
run: git submodule update -f --init --remote
- name: Get last build tag and increment it
@@ -38,7 +45,56 @@ jobs:
buildNumber=$(expr $oldBuildNumber + 1)
echo "New buildNumber is $buildNumber"
git tag Build_iOS_$buildNumber
- name: Insert buildNumber into plists
- name: Extract version number and changelog from newest merge commit
id: releasenotes
run: |
function repairNotes {
sed 's/\r//g' | awk '{
if (NR == 1) {
printf("%s", $0)
} else {
if ($0 ~ /^[\t ]*(-|IOS_ONLY[\t ]*-|MACOS_ONLY[\t ]*-).*$/) {
printf("\n%s", $0)
} else {
printf(" %s", $0)
}
}
}
END {
printf("\n")
}'
}
buildNumber="$(git tag --sort="v:refname" | grep "Build_iOS" | tail -n1 | sed 's/Build_iOS_//g')"
version="$(git log -n 1 --merges --pretty=format:%s | sed -E 's/^[\t\n ]*([^\n\t ]+)[\t\n ]+\(([^\n\t ]+)\)[\t\n ]*$/\1/g')"
mkdir -p /Users/ci/releases
OUTPUT_FILE="/Users/ci/releases/$buildNumber.output"
touch "$OUTPUT_FILE"
echo "OUTPUT_FILE=$OUTPUT_FILE" | tee /dev/stderr >> "$GITHUB_OUTPUT"
echo "buildNumber=$buildNumber" | tee /dev/stderr >> "$OUTPUT_FILE"
echo "tag=Build_iOS_$buildNumber" | tee /dev/stderr >> "$OUTPUT_FILE"
echo "version=$version" | tee /dev/stderr >> "$OUTPUT_FILE"
echo "buildVersion=$(echo "$version" | grep -oE '^[0-9]+(\.[0-9]+){0,2}')" | tee /dev/stderr >> "$OUTPUT_FILE"
echo "name=Monal Beta $(git log -n 1 --merges --pretty=format:%s | sed -E 's/^[\t\n ]*([^\n\t ]+)[\t\n ]+\(([^\n\t ]+)\)[\t\n ]*$/\1 (Build '$buildNumber', PR \2)/g')" | tee /dev/stderr >> "$OUTPUT_FILE"
echo "notes<<__EOF__" | tee /dev/stderr >> "$OUTPUT_FILE"
echo "$(git log -n 1 --merges --pretty=format:%b)" | repairNotes | sed -E 's/^[\t\n ]*IOS_ONLY[\t\n ]?(.*)$/\1/g' | sed -E 's/^[\t\n ]*MACOS_ONLY[\t\n ]?(.*)$/\1/g' | tee /dev/stderr >> "$OUTPUT_FILE"
echo "__EOF__" | tee /dev/stderr >> "$OUTPUT_FILE"
echo "notes_ios<<__EOF__" | tee /dev/stderr >> "$OUTPUT_FILE"
echo "$(git log -n 1 --merges --pretty=format:%b)" | repairNotes | grep -v '^[\t\n ]*MACOS_ONLY.*$' | sed -E 's/^[\t\n ]*IOS_ONLY[\t\n ]?(.*)$/\1/g' | tee /dev/stderr >> "$OUTPUT_FILE"
echo "__EOF__" | tee /dev/stderr >> "$OUTPUT_FILE"
echo "notes_macos<<__EOF__" | tee /dev/stderr >> "$OUTPUT_FILE"
echo "$(git log -n 1 --merges --pretty=format:%b)" | repairNotes | grep -v '^[\t\n ]*IOS_ONLY.*$' | sed -E 's/^[\t\n ]*MACOS_ONLY[\t\n ]?(.*)$/\1/g' | tee /dev/stderr >> "$OUTPUT_FILE"
echo "__EOF__" | tee /dev/stderr >> "$OUTPUT_FILE"
cat "$OUTPUT_FILE" >> "$GITHUB_OUTPUT"
- name: Insert buildNumber and version into plists
env:
buildNumber: ${{ steps.releasenotes.outputs.buildNumber }}
buildVersion: ${{ steps.releasenotes.outputs.buildVersion }}
run: sh ./scripts/set_version_number.sh
- name: Import TURN secrets
run: |
@@ -49,14 +105,33 @@ jobs:
run: chmod +x ./scripts/build.sh
- name: Run build
run: ./scripts/build.sh
- uses: actions/upload-artifact@v4
with:
name: monal-ios
path: Monal/build/ipa/Monal.ipa
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: monal-catalyst-dsym
path: Monal/build/macos_Monal.xcarchive/dSYMs
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: monal-ios-dsym
path: Monal/build/ios_Monal.xcarchive/dSYMs
if-no-files-found: error
- name: validate ios app
run: xcrun altool --validate-app --file ./Monal/build/ipa/Monal.ipa --type ios --asc-provider S8D843U34Y -u "$(cat /Users/ci/apple_connect_upload_mail.txt)" -p "$(cat /Users/ci/apple_connect_upload_secret.txt)"
- name: push tag to beta repo
- name: Push beta tag to repo
run: |
buildNumber=$(git tag --sort="v:refname" |grep "Build_iOS" | tail -n1 | sed 's/Build_iOS_//g')
buildNumber=$(git tag --sort="v:refname" | grep "Build_iOS" | tail -n1 | sed 's/Build_iOS_//g')
git push origin Build_iOS_$buildNumber
- name: Publish ios to appstore connect
run: xcrun altool --upload-app -f ./Monal/build/ipa/Monal.ipa --type ios --asc-provider S8D843U34Y --team-id S8D843U34Y -u "$(cat /Users/ci/apple_connect_upload_mail.txt)" -p "$(cat /Users/ci/apple_connect_upload_secret.txt)"
#run: xcrun altool --upload-app -f ./Monal/build/ipa/Monal.ipa --type ios --asc-provider S8D843U34Y --team-id S8D843U34Y -u "$(cat /Users/ci/apple_connect_upload_mail.txt)" -p "$(cat /Users/ci/apple_connect_upload_secret.txt)"
env:
PILOT_CHANGELOG: ${{ steps.releasenotes.outputs.notes_ios }}
run: |
fastlane run upload_to_testflight api_key_path:"/Users/ci/appstoreconnect/key.json" team_id:"S8D843U34Y" ipa:"./Monal/build/ipa/Monal.ipa" distribute_external:true groups:"Internal Pre-Beta Testers","Public Beta" reject_build_waiting_for_review:true submit_beta_review:true
- name: Notarize catalyst
run: xcrun notarytool submit ./Monal/build/app/Monal.zip --wait --team-id S8D843U34Y --key "/Users/ci/appstoreconnect/apiKey.p8" --key-id "$(cat /Users/ci/appstoreconnect/apiKeyId.txt)" --issuer "$(cat /Users/ci/appstoreconnect/apiIssuerId.txt)"
- name: staple
@@ -66,30 +141,40 @@ jobs:
stapler validate "$APP_DIR"
/usr/bin/ditto -c -k --sequesterRsrc --keepParent "$APP_DIR" "../$APP_NAME.zip"
cd ../../../..
- name: upload new catalyst beta to monal-im.org
run: ./scripts/uploadNonAlpha.sh beta
- name: Publish catalyst to appstore connect
run: xcrun altool --upload-app --file ./Monal/build/app/Monal.pkg --type macos --asc-provider S8D843U34Y -u "$(cat /Users/ci/apple_connect_upload_mail.txt)" -p "$(cat /Users/ci/apple_connect_upload_secret.txt)" --primary-bundle-id org.monal-im.prod.catalyst.monal
- uses: actions/upload-artifact@v4
with:
name: monal-catalyst
name: monal-catalyst-zip
path: Monal/build/app/Monal.zip
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: monal-ios
path: Monal/build/ipa/Monal.ipa
name: monal-catalyst-pkg
path: Monal/build/app/Monal.pkg
if-no-files-found: error
- uses: actions/upload-artifact@v4
with:
name: monal-catalyst-dsym
path: Monal/build/macos_Monal.xcarchive/dSYMs
if-no-files-found: error
- uses: actions/upload-artifact@v4
- name: Upload new catalyst beta to monal-im.org
run: ./scripts/uploadNonAlpha.sh beta
- name: Publish catalyst to appstore connect
#run: xcrun altool --upload-app --file ./Monal/build/app/Monal.pkg --type macos --asc-provider S8D843U34Y -u "$(cat /Users/ci/apple_connect_upload_mail.txt)" -p "$(cat /Users/ci/apple_connect_upload_secret.txt)" --primary-bundle-id org.monal-im.prod.catalyst.monal
env:
PILOT_CHANGELOG: ${{ steps.releasenotes.outputs.notes_macos }}
run: |
fastlane run upload_to_testflight api_key_path:"/Users/ci/appstoreconnect/key.json" team_id:"S8D843U34Y" pkg:"./Monal/build/app/Monal.pkg" distribute_external:true groups:"Internal Pre-Beta Testers","Public Beta" reject_build_waiting_for_review:true submit_beta_review:true
- name: Release
uses: softprops/action-gh-release@v2
with:
name: monal-ios-dsym
path: Monal/build/ios_Monal.xcarchive/dSYMs
if-no-files-found: error
name: "${{ steps.releasenotes.outputs.name }}"
tag_name: "${{ steps.releasenotes.outputs.tag }}"
target_commitish: beta
generate_release_notes: false
body: "${{ steps.releasenotes.outputs.notes }}"
files: |
./Monal/build/ipa/Monal.ipa
./Monal/build/app/Monal.pkg
./Monal/build/app/Monal.zip
fail_on_unmatched_files: true
token: ${{ secrets.GITHUB_TOKEN }}
draft: false
prerelease: true

updateTranslations:
name: Update Translations using Beta-Branch
@@ -112,3 +197,21 @@ jobs:
chmod +x ./scripts/updateLocalization.sh
chmod +x ./scripts/xliff_extractor.py
./scripts/updateLocalization.sh BUILDSERVER
notifyMuc:
name: Notify support MUC about new Betarelease
runs-on: ubuntu-latest
needs: [buildAndPublishBeta]
steps:
- name: Notify
uses: monal-im/xmpp-notifier@master
with: # Set the secrets as inputs
jid: ${{ secrets.BOT_JID }}
password: ${{ secrets.BOT_PASSWORD }}
server_host: ${{ secrets.BOT_SERVER }}
recipient: monal@chat.yax.im
recipient_is_room: true
bot_alias: "Monal Release Bot"
message: |
${{ needs.buildAndPublishBeta.outputs.release-name }} was released
${{ needs.buildAndPublishBeta.outputs.release-notes }}
41 changes: 38 additions & 3 deletions .github/workflows/develop-push.yml
Original file line number Diff line number Diff line change
@@ -15,8 +15,13 @@ jobs:
buildAndPublishAlpha:
# The type of runner that the job will run on
runs-on: ['ARM64', 'self-hosted']
outputs:
id: ${{ steps.changelog.outputs.id }}
timestamp: ${{ steps.changelog.outputs.timestamp }}
message: ${{ steps.changelog.outputs.message }}
env:
APP_NAME: "Monal.alpha"
APP_NAME: "Monal.Alpha"
BUILD_SCHEME: "Monal Alpha"
APP_DIR: "Monal.alpha.app"
BUILD_TYPE: "Alpha"
ALPHA_UPLOAD_SECRET: ${{ secrets.ALPHA_UPLOAD_SECRET }}
@@ -28,8 +33,10 @@ jobs:
with:
clean: true
submodules: true
- name: Fetch tags
run: git fetch --tags
fetch-depth: 100
fetch-tags: true
show-progress: true
lfs: true
- name: Checkout submodules
run: git submodule update -f --init --remote
- name: Import TURN secrets
@@ -50,6 +57,7 @@ jobs:
tar -cf "../$APP_NAME.tar" "$APP_DIR"
cd ../../../..
- name: save changelog
id: changelog
env:
ID: ${{github.event.head_commit.id}}
TIMESTAMP: ${{github.event.head_commit.timestamp}}
@@ -58,6 +66,12 @@ jobs:
echo "ID: $ID" > changes.txt
echo "Timestamp: $TIMESTAMP" >> changes.txt
echo "$MESSAGE" >> changes.txt
echo "id=$ID" >> "$GITHUB_OUTPUT"
echo "timestamp=$TIMESTAMP" >> "$GITHUB_OUTPUT"
echo "message<<__EOF__" >> "$GITHUB_OUTPUT"
echo "$MESSAGE" >> "$GITHUB_OUTPUT"
echo "__EOF__" >> "$GITHUB_OUTPUT"
- name: Uploading to alpha site
run: ./scripts/uploadAlpha.sh
- name: Notarize catalyst
@@ -89,3 +103,24 @@ jobs:
# chmod +x ./scripts/updateLocalization.sh
# chmod +x ./scripts/xliff_extractor.py
# ./scripts/updateLocalization.sh NOCOMMIT
notifyMuc:
name: Notify support MUC about new Alpharelease
runs-on: ubuntu-latest
needs: [buildAndPublishAlpha]
steps:
- name: Notify
uses: monal-im/xmpp-notifier@master
with: # Set the secrets as inputs
jid: ${{ secrets.BOT_JID }}
password: ${{ secrets.BOT_PASSWORD }}
server_host: ${{ secrets.BOT_SERVER }}
recipient: monal-alpha@chat.yax.im
recipient_is_room: true
bot_alias: "Monal Release Bot"
message: |
New alpha build based on the following commit:
${{ needs.buildAndPublishAlpha.outputs.id }}
${{ needs.buildAndPublishAlpha.outputs.timestamp }}
${{ needs.buildAndPublishAlpha.outputs.message }}
Download page: https://downloads.monal-im.org/monal-im/alpha/
79 changes: 79 additions & 0 deletions .github/workflows/publish-quicksy-release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Publish Quicksy release
on:
repository_dispatch:
types: [distribution]
jobs:
extractChangelog:
runs-on: self-hosted
outputs:
release-buildNumber: ${{ steps.releasenotes.outputs.buildNumber }}
release-tag: ${{ steps.releasenotes.outputs.tag }}
release-version: ${{ steps.releasenotes.outputs.version }}
release-name: ${{ steps.releasenotes.outputs.name }}
release-notes: ${{ steps.releasenotes.outputs.notes }}
release-notes_ios: ${{ steps.releasenotes.outputs.notes_ios }}
# create release only if the ios app made it to the appstore and ignore the macos appstore state
if: github.event.client_payload.Platform == 'iOS'
steps:
# - run: |
# echo ${{ github.event.client_payload.AppName }}
# echo ${{ github.event.client_payload.Platform }}
# echo ${{ github.event.client_payload.AppVersionNumber }}
- name: Load release info
id: releasenotes
run: |
buildNumber="$(fastlane run app_store_build_number api_key_path:"/Users/ci/appstoreconnect/key.json" team_id:"S8D843U34Y" app_identifier:"G7YU7X7KRJ.SworIM" live:false version:"${{ github.event.client_payload.AppVersionNumber }}" 2>&1 | tee /dev/stderr | grep Result | sed -E 's/^.*Result: ([0-9]+).*$/\1/g')"
mkdir -p /Users/ci/releases
OUTPUT_FILE="/Users/ci/releases/$buildNumber.output"
touch "$OUTPUT_FILE"
cat "$OUTPUT_FILE" >> "$GITHUB_OUTPUT"
# notifyMuc:
# name: Notify support MUC about new stable release
# runs-on: ubuntu-latest
# needs: [extractChangelog]
# steps:
# - name: Notify support MUC
# uses: monal-im/xmpp-notifier@master
# with: # Set the secrets as inputs
# jid: ${{ secrets.BOT_JID }}
# password: ${{ secrets.BOT_PASSWORD }}
# server_host: ${{ secrets.BOT_SERVER }}
# recipient: monal@chat.yax.im
# recipient_is_room: true
# bot_alias: "Monal Release Bot"
# message: |
# ${{ needs.extractChangelog.outputs.release-name }} was released:
# ${{ needs.extractChangelog.outputs.release-notes }}
#
# notifyMastodon:
# name: Post release info on mastodon
# runs-on: ubuntu-latest
# needs: [extractChangelog]
# steps:
# - name: Patch changelog length
# id: changelog
# env:
# NOTES: ${{ needs.extractChangelog.outputs.release-notes }}
# run: |
# if [ "${#NOTES}" -gt 400 ]; then
# NOTES="To see the complete list of bugfixes and improvements, check our releases page: https://github.com/monal-im/Monal/releases/tag/${{ needs.extractChangelog.outputs.release-tag }}"
# fi
# echo "notes<<__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT"
# echo "$NOTES" >> "$GITHUB_OUTPUT"
# echo "__EOF__" | tee /dev/stderr >> "$GITHUB_OUTPUT"
# - name: Post release info on mastodon
# id: toot
# uses: cbrgm/mastodon-github-action@v2.1.3
# with:
# access-token: ${{ secrets.MASTODON_ACCESS_TOKEN }}
# url: ${{ secrets.MASTODON_URL }}
#
# message: "${{ needs.extractChangelog.outputs.release-name }} released.\n\n${{ steps.changelog.outputs.notes }}\n\n#Monal #quicksy #ios #macos #xmpp #im #chat #messaging"
# visibility: "public"
# language: "en"
# - name: Get toot information
# run: |
# echo "Toot ID: ${{ steps.toot.outputs.id }}"
# echo "Toot URL: ${{ steps.toot.outputs.url }}"
# echo "Scheduled at: ${{ steps.toot.outputs.scheduled_at }}"
Loading

0 comments on commit 59ed4bc

Please sign in to comment.