Merge tag 'v1.6.0' into develop

v1.6.0
This commit is contained in:
Benoit Marty 2023-05-17 14:54:24 +02:00
commit 4ca67022e6
25 changed files with 69 additions and 51 deletions

View File

@ -1,3 +1,39 @@
Changes in Element v1.6.0 (2023-05-17)
======================================
Features ✨
----------
- **Element Android is now using the Crypto Rust SDK**. Migration of user's data should be done at first launch after application upgrade. ([#8390](https://github.com/vector-im/element-android/issues/8390))
- Enable free style cropping for camera and gallery images ([#8325](https://github.com/vector-im/element-android/issues/8325))
Bugfixes 🐛
----------
- User pills get lost at message editing ([#748](https://github.com/vector-im/element-android/issues/748))
- Upgrade Jitsi SDK from 6.2.2 to 8.1.1. This fixes video call on some Android devices. ([#7619](https://github.com/vector-im/element-android/issues/7619))
- Fix duplicate reactions when using full emoji picker. Contributed by @tulir @ Beeper. ([#8327](https://github.com/vector-im/element-android/issues/8327))
- Fix: RustCrossSigning service API confusion (identity trusted vs own device trusted by identity) ([#8352](https://github.com/vector-im/element-android/issues/8352))
- Allow custom push gateway to use non-default port ([#8376](https://github.com/vector-im/element-android/issues/8376))
- Fix crash when opening "Protect access" screen, and various other issue with `repeatOnLifecycle` ([#8410](https://github.com/vector-im/element-android/issues/8410))
- RustCrypto: Verification UX not refreshed after scanning a QR code ([#8418](https://github.com/vector-im/element-android/issues/8418))
SDK API changes ⚠️
------------------
- First integration of rust crypto module. See documentation for details `docs/rust_crypto_integration.md` ([#7628](https://github.com/vector-im/element-android/issues/7628))
- Add crypto database migration 22, that extract account and olm session to the new rust DB format ([#8405](https://github.com/vector-im/element-android/issues/8405))
Other changes
-------------
- Add an audio alert when the voice broadcast recording is automatically paused ([#8339](https://github.com/vector-im/element-android/issues/8339))
- Analytics: add crypto module to E2E events ([#8340](https://github.com/vector-im/element-android/issues/8340))
- Bump rust crypto crate to 0.3.5 ([#8354](https://github.com/vector-im/element-android/issues/8354))
- Expose Rust SDK Version in Help & About page and in Bug Reports ([#8364](https://github.com/vector-im/element-android/issues/8364))
- Matrix-Ids are sometimes shown in notice events instead of display names ([#8365](https://github.com/vector-im/element-android/issues/8365))
- CI: Add workflow to run test with crypto flavor ([#8366](https://github.com/vector-im/element-android/issues/8366))
- Remove ability to migrate session from Riot to Element. ([#8402](https://github.com/vector-im/element-android/issues/8402))
- Improve keyboard navigation and accessibility when using a screen reader. ([#8426](https://github.com/vector-im/element-android/issues/8426))
- Updated posthog url (cosmetic, target same server) and added a new sentry env. ([#8436](https://github.com/vector-im/element-android/issues/8436))
Changes in Element v1.5.32 (2023-04-19) Changes in Element v1.5.32 (2023-04-19)
======================================= =======================================

View File

@ -1 +0,0 @@
User pills get lost at message editing

View File

@ -1 +0,0 @@
Upgrade Jitsi SDK from 6.2.2 to 8.1.1. This fixes video call on some Android devices.

View File

@ -1 +0,0 @@
First integration of rust crypto module. See documentation for details `docs/rust_crypto_integration.md`

View File

@ -1 +0,0 @@
Enable free style cropping for camera and gallery images

View File

@ -1 +0,0 @@
Fix duplicate reactions when using full emoji picker. Contributed by @tulir @ Beeper.

View File

@ -1 +0,0 @@
Add an audio alert when the voice broadcast recording is automatically paused

View File

@ -1 +0,0 @@
Analytics: add crypto module to E2E events

View File

@ -1 +0,0 @@
Fix: RustCrossSigning service API confusion (identity trusted vs own device trusted by identity)

View File

@ -1 +0,0 @@
Bump rust crypto crate to 0.3.5

View File

@ -1 +0,0 @@
Expose Rust SDK Version in Help & About page and in Bug Reports

View File

@ -1 +0,0 @@
Matrix-Ids are sometimes shown in notice events instead of display names

View File

@ -1 +0,0 @@
CI: Add workflow to run test with crypto flavor

View File

@ -1 +0,0 @@
Allow custom push gateway to use non-default port

View File

@ -1 +0,0 @@
Element Android is now using the Crypto Rust SDK. Migration of user's data should be done at first launch after application upgrade.

View File

@ -1 +0,0 @@
Remove ability to migrate session from Riot to Element.

View File

@ -1 +0,0 @@
Add crypto database migration 22, that extract account and olm session to the new rust DB format

View File

@ -1 +0,0 @@
Fix crash when opening "Protect access" screen, and various other issue with `repeatOnLifecycle`

View File

@ -1 +0,0 @@
RustCrypto: Verification UX not refreshed after scanning a QR code

View File

@ -1 +0,0 @@
Improve keyboard navigation and accessibility when using a screen reader.

View File

@ -1 +0,0 @@
Updated posthog url (cosmetic, target same server) and added a new sentry env.

View File

@ -0,0 +1,2 @@
Main changes in this version: Element Android is now using the Crypto Rust SDK.
Full changelog: https://github.com/vector-im/element-android/releases

View File

@ -63,7 +63,7 @@ android {
// that the app's state is completely cleared between tests. // that the app's state is completely cleared between tests.
testInstrumentationRunnerArguments clearPackageData: 'true' testInstrumentationRunnerArguments clearPackageData: 'true'
buildConfigField "String", "SDK_VERSION", "\"1.5.34\"" buildConfigField "String", "SDK_VERSION", "\"1.6.0\""
buildConfigField "String", "GIT_SDK_REVISION", "\"${gitRevision()}\"" buildConfigField "String", "GIT_SDK_REVISION", "\"${gitRevision()}\""
buildConfigField "String", "GIT_SDK_REVISION_UNIX_DATE", "\"${gitRevisionUnixDate()}\"" buildConfigField "String", "GIT_SDK_REVISION_UNIX_DATE", "\"${gitRevisionUnixDate()}\""

View File

@ -160,11 +160,11 @@ adb -e uninstall im.vector.app.debug.test
printf "\n================================================================================\n" printf "\n================================================================================\n"
printf "Running the integration test UiAllScreensSanityTest.allScreensTest()...\n" printf "Running the integration test UiAllScreensSanityTest.allScreensTest()...\n"
./gradlew connectedGplayDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=im.vector.app.ui.UiAllScreensSanityTest ./gradlew connectedGplayRustCryptoDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.class=im.vector.app.ui.UiAllScreensSanityTest
printf "\n================================================================================\n" printf "\n================================================================================\n"
printf "Building the app...\n" printf "Building the app...\n"
./gradlew assembleGplayDebug ./gradlew assembleGplayRustCryptoDebug
printf "\n================================================================================\n" printf "\n================================================================================\n"
printf "Uninstalling previous debug app if any...\n" printf "Uninstalling previous debug app if any...\n"
@ -172,7 +172,7 @@ adb -e uninstall im.vector.app.debug
printf "\n================================================================================\n" printf "\n================================================================================\n"
printf "Installing the app...\n" printf "Installing the app...\n"
adb -e install ./vector-app/build/outputs/apk/gplay/debug/vector-gplay-arm64-v8a-debug.apk adb -e install ./vector-app/build/outputs/apk/gplayRustCrypto/debug/vector-gplay-rustCrypto-arm64-v8a-debug.apk
printf "\n================================================================================\n" printf "\n================================================================================\n"
printf "Running the app...\n" printf "Running the app...\n"
@ -267,7 +267,7 @@ fi
printf "\n================================================================================\n" printf "\n================================================================================\n"
printf "Wait for the GitHub action https://github.com/vector-im/element-android/actions/workflows/build.yml?query=branch%%3Amain to build the 'main' branch.\n" printf "Wait for the GitHub action https://github.com/vector-im/element-android/actions/workflows/build.yml?query=branch%%3Amain to build the 'main' branch.\n"
read -p "After GHA is finished, please enter the artifact URL (for 'vector-gplay-release-unsigned'): " artifactUrl read -p "After GHA is finished, please enter the artifact URL (for 'vector-gplay-rustCrypto-release-unsigned'): " artifactUrl
printf "\n================================================================================\n" printf "\n================================================================================\n"
printf "Downloading the artifact...\n" printf "Downloading the artifact...\n"
@ -290,70 +290,70 @@ set -e
printf "\n================================================================================\n" printf "\n================================================================================\n"
printf "Unzipping the artifact...\n" printf "Unzipping the artifact...\n"
unzip ${targetPath}/vector-gplay-release-unsigned.zip -d ${targetPath} unzip ${targetPath}/vector-gplay-rustCrypto-release-unsigned.zip -d ${targetPath}
# Flatten folder hierarchy # Flatten folder hierarchy
mv ${targetPath}/gplay/release/* ${targetPath} mv ${targetPath}/gplayRustCrypto/release/* ${targetPath}
rm -rf ${targetPath}/gplay rm -rf ${targetPath}/gplay
printf "\n================================================================================\n" printf "\n================================================================================\n"
printf "Signing the APKs...\n" printf "Signing the APKs...\n"
cp ${targetPath}/vector-gplay-arm64-v8a-release-unsigned.apk \ cp ${targetPath}/vector-gplay-rustCrypto-arm64-v8a-release-unsigned.apk \
${targetPath}/vector-gplay-arm64-v8a-release-signed.apk ${targetPath}/vector-gplay-rustCrypto-arm64-v8a-release-signed.apk
./tools/release/sign_apk_unsafe.sh \ ./tools/release/sign_apk_unsafe.sh \
${keyStorePath} \ ${keyStorePath} \
${targetPath}/vector-gplay-arm64-v8a-release-signed.apk \ ${targetPath}/vector-gplay-rustCrypto-arm64-v8a-release-signed.apk \
${keyStorePassword} \ ${keyStorePassword} \
${keyPassword} ${keyPassword}
cp ${targetPath}/vector-gplay-armeabi-v7a-release-unsigned.apk \ cp ${targetPath}/vector-gplay-rustCrypto-armeabi-v7a-release-unsigned.apk \
${targetPath}/vector-gplay-armeabi-v7a-release-signed.apk ${targetPath}/vector-gplay-rustCrypto-armeabi-v7a-release-signed.apk
./tools/release/sign_apk_unsafe.sh \ ./tools/release/sign_apk_unsafe.sh \
${keyStorePath} \ ${keyStorePath} \
${targetPath}/vector-gplay-armeabi-v7a-release-signed.apk \ ${targetPath}/vector-gplay-rustCrypto-armeabi-v7a-release-signed.apk \
${keyStorePassword} \ ${keyStorePassword} \
${keyPassword} ${keyPassword}
cp ${targetPath}/vector-gplay-x86-release-unsigned.apk \ cp ${targetPath}/vector-gplay-rustCrypto-x86-release-unsigned.apk \
${targetPath}/vector-gplay-x86-release-signed.apk ${targetPath}/vector-gplay-rustCrypto-x86-release-signed.apk
./tools/release/sign_apk_unsafe.sh \ ./tools/release/sign_apk_unsafe.sh \
${keyStorePath} \ ${keyStorePath} \
${targetPath}/vector-gplay-x86-release-signed.apk \ ${targetPath}/vector-gplay-rustCrypto-x86-release-signed.apk \
${keyStorePassword} \ ${keyStorePassword} \
${keyPassword} ${keyPassword}
cp ${targetPath}/vector-gplay-x86_64-release-unsigned.apk \ cp ${targetPath}/vector-gplay-rustCrypto-x86_64-release-unsigned.apk \
${targetPath}/vector-gplay-x86_64-release-signed.apk ${targetPath}/vector-gplay-rustCrypto-x86_64-release-signed.apk
./tools/release/sign_apk_unsafe.sh \ ./tools/release/sign_apk_unsafe.sh \
${keyStorePath} \ ${keyStorePath} \
${targetPath}/vector-gplay-x86_64-release-signed.apk \ ${targetPath}/vector-gplay-rustCrypto-x86_64-release-signed.apk \
${keyStorePassword} \ ${keyStorePassword} \
${keyPassword} ${keyPassword}
# Ref: https://docs.fastlane.tools/getting-started/android/beta-deployment/#uploading-your-app # Ref: https://docs.fastlane.tools/getting-started/android/beta-deployment/#uploading-your-app
# set SUPPLY_APK_PATHS="${targetPath}/vector-gplay-arm64-v8a-release-unsigned.apk,${targetPath}/vector-gplay-armeabi-v7a-release-unsigned.apk,${targetPath}/vector-gplay-x86-release-unsigned.apk,${targetPath}/vector-gplay-x86_64-release-unsigned.apk" # set SUPPLY_APK_PATHS="${targetPath}/vector-gplay-rustCrypto-arm64-v8a-release-unsigned.apk,${targetPath}/vector-gplay-rustCrypto-armeabi-v7a-release-unsigned.apk,${targetPath}/vector-gplay-rustCrypto-x86-release-unsigned.apk,${targetPath}/vector-gplay-rustCrypto-x86_64-release-unsigned.apk"
# #
# ./fastlane beta # ./fastlane beta
printf "\n================================================================================\n" printf "\n================================================================================\n"
printf "Please check the information below:\n" printf "Please check the information below:\n"
printf "File vector-gplay-arm64-v8a-release-signed.apk:\n" printf "File vector-gplay-rustCrypto-arm64-v8a-release-signed.apk:\n"
${buildToolsPath}/aapt dump badging ${targetPath}/vector-gplay-arm64-v8a-release-signed.apk | grep package ${buildToolsPath}/aapt dump badging ${targetPath}/vector-gplay-rustCrypto-arm64-v8a-release-signed.apk | grep package
printf "File vector-gplay-armeabi-v7a-release-signed.apk:\n" printf "File vector-gplay-rustCrypto-armeabi-v7a-release-signed.apk:\n"
${buildToolsPath}/aapt dump badging ${targetPath}/vector-gplay-armeabi-v7a-release-signed.apk | grep package ${buildToolsPath}/aapt dump badging ${targetPath}/vector-gplay-rustCrypto-armeabi-v7a-release-signed.apk | grep package
printf "File vector-gplay-x86-release-signed.apk:\n" printf "File vector-gplay-rustCrypto-x86-release-signed.apk:\n"
${buildToolsPath}/aapt dump badging ${targetPath}/vector-gplay-x86-release-signed.apk | grep package ${buildToolsPath}/aapt dump badging ${targetPath}/vector-gplay-rustCrypto-x86-release-signed.apk | grep package
printf "File vector-gplay-x86_64-release-signed.apk:\n" printf "File vector-gplay-rustCrypto-x86_64-release-signed.apk:\n"
${buildToolsPath}/aapt dump badging ${targetPath}/vector-gplay-x86_64-release-signed.apk | grep package ${buildToolsPath}/aapt dump badging ${targetPath}/vector-gplay-rustCrypto-x86_64-release-signed.apk | grep package
printf "\n" printf "\n"
read -p "Does it look correct? Press enter when it's done." read -p "Does it look correct? Press enter when it's done."
printf "\n================================================================================\n" printf "\n================================================================================\n"
read -p "Installing apk on a real device, press enter when a real device is connected. " read -p "Installing apk on a real device, press enter when a real device is connected. "
apkPath="${targetPath}/vector-gplay-arm64-v8a-release-signed.apk" apkPath="${targetPath}/vector-gplay-rustCrypto-arm64-v8a-release-signed.apk"
adb -d install ${apkPath} adb -d install ${apkPath}
read -p "Please run the APK on your phone to check that the upgrade went well (no init sync, etc.). Press enter when it's done." read -p "Please run the APK on your phone to check that the upgrade went well (no init sync, etc.). Press enter when it's done."

View File

@ -33,11 +33,11 @@ knit {
// Note: 2 digits max for each value // Note: 2 digits max for each value
ext.versionMajor = 1 ext.versionMajor = 1
ext.versionMinor = 5 ext.versionMinor = 6
// Note: even values are reserved for regular release, odd values for hotfix release. // Note: even values are reserved for regular release, odd values for hotfix release.
// When creating a hotfix, you should decrease the value, since the current value // When creating a hotfix, you should decrease the value, since the current value
// is the value for the next regular release. // is the value for the next regular release.
ext.versionPatch = 34 ext.versionPatch = 0
static def getGitTimestamp() { static def getGitTimestamp() {
def cmd = 'git show -s --format=%ct' def cmd = 'git show -s --format=%ct'