diff --git a/.github/secrets/Certificates.p12.gpg b/.github/secrets/Certificates.p12.gpg index bd1a14ef78..717f69172f 100644 Binary files a/.github/secrets/Certificates.p12.gpg and b/.github/secrets/Certificates.p12.gpg differ diff --git a/.github/secrets/decrypt_secrets.sh b/.github/secrets/decrypt_secrets.sh index 19dfa83dc7..e493c9591d 100755 --- a/.github/secrets/decrypt_secrets.sh +++ b/.github/secrets/decrypt_secrets.sh @@ -7,8 +7,7 @@ gpg --quiet --batch --yes --decrypt --passphrase="$IOS_CERTIFICATE_KEY" --output mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles -cp ./.github/secrets/match_AppStore_comquietmobile.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/718ac015-309f-49b6-9653-f6cf84a6377c.mobileprovision - +cp ./.github/secrets/match_AppStore_comquietmobile.mobileprovision ~/Library/MobileDevice/Provisioning\ Profiles/762df280-302c-4336-a56d-c74914169337.mobileprovision security create-keychain -p "" build.keychain security import ./.github/secrets/Certificates.p12 -t agg -k ~/Library/Keychains/build.keychain -P "$IOS_CERTIFICATE_KEY" -A diff --git a/.github/secrets/match_AppStore_comquietmobile.mobileprovision.gpg b/.github/secrets/match_AppStore_comquietmobile.mobileprovision.gpg index 4f35bf8199..8740531928 100644 Binary files a/.github/secrets/match_AppStore_comquietmobile.mobileprovision.gpg and b/.github/secrets/match_AppStore_comquietmobile.mobileprovision.gpg differ diff --git a/.github/workflows/backend-tests.yml b/.github/workflows/backend-tests.yml index 6e6078aab6..e5361a5501 100644 --- a/.github/workflows/backend-tests.yml +++ b/.github/workflows/backend-tests.yml @@ -9,7 +9,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, macos-12, windows-2019] + os: [ubuntu-20.04, macos-13, windows-2019] steps: - uses: dorny/paths-filter@v3 diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index 963222aa26..a0e36167b3 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -98,7 +98,7 @@ jobs: build-macos: # needs: run-e2e-tests-mac - runs-on: macos-12 + runs-on: macos-13 if: | startsWith(github.ref, 'refs/tags/@quiet/desktop') diff --git a/.github/workflows/desktop-rtl-tests.yml b/.github/workflows/desktop-rtl-tests.yml index 758763308f..9de7b68012 100644 --- a/.github/workflows/desktop-rtl-tests.yml +++ b/.github/workflows/desktop-rtl-tests.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, macos-12] + os: [ubuntu-20.04, macos-13] steps: - uses: dorny/paths-filter@v3 diff --git a/.github/workflows/desktop-tests.yml b/.github/workflows/desktop-tests.yml index 4c59e29392..1eb6c2fdd8 100644 --- a/.github/workflows/desktop-tests.yml +++ b/.github/workflows/desktop-tests.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, macos-12] + os: [ubuntu-20.04, macos-13] steps: - uses: dorny/paths-filter@v3 diff --git a/.github/workflows/e2e-ios.yml b/.github/workflows/e2e-ios.yml index 01544c3e4f..33180207ef 100644 --- a/.github/workflows/e2e-ios.yml +++ b/.github/workflows/e2e-ios.yml @@ -5,7 +5,7 @@ on: workflow_dispatch jobs: detox-ios: timeout-minutes: 25 - runs-on: [macos-latest-xlarge] + runs-on: [macos-13-xlarge] steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/e2e-mac.yml b/.github/workflows/e2e-mac.yml index b2911937c8..e3e02989c7 100644 --- a/.github/workflows/e2e-mac.yml +++ b/.github/workflows/e2e-mac.yml @@ -3,7 +3,7 @@ name: E2E Mac on: [workflow_call] jobs: mac: - runs-on: macos-12 + runs-on: macos-13 timeout-minutes: 180 env: TEST_MODE: true diff --git a/.github/workflows/identity-tests.yml b/.github/workflows/identity-tests.yml index 44ba12e33f..d719709b55 100644 --- a/.github/workflows/identity-tests.yml +++ b/.github/workflows/identity-tests.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, macos-12, windows-2019] + os: [ubuntu-20.04, macos-13, windows-2019] steps: - uses: dorny/paths-filter@v3 diff --git a/.github/workflows/integration-tests.yml b/.github/workflows/integration-tests.yml index 9bcd21f2f6..a4e7d6c248 100644 --- a/.github/workflows/integration-tests.yml +++ b/.github/workflows/integration-tests.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04] #, macos-latest, windows-2019] + os: [ubuntu-20.04] #, macos-13, windows-2019] steps: - name: 'Print OS' diff --git a/.github/workflows/mobile-deploy-ios-test.yml b/.github/workflows/mobile-deploy-ios-test.yml new file mode 100644 index 0000000000..c6d1f1499d --- /dev/null +++ b/.github/workflows/mobile-deploy-ios-test.yml @@ -0,0 +1,72 @@ +name: Test IOS build + +on: + pull_request: + +jobs: + test-build-ios: + # needs: detox-ios + runs-on: ${{ matrix.os }} + + strategy: + matrix: + os: [macos-13] + + steps: + - name: "Print OS" + run: echo ${{ matrix.os }} + + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + with: + submodules: 'recursive' + lfs: true + + - name: Install gpg + run: brew install gnupg + + - name: Setup XCode + uses: maxim-lobanov/setup-xcode@9a697e2b393340c3cacd97468baa318e4c883d98 # v1.5.1 + with: + xcode-version: '15.2' + + - name: Setup environment + uses: ./.github/actions/setup-env + with: + cachePrefix: "deploy-ios" + bootstrap-packages: "@quiet/eslint-config,@quiet/logger,@quiet/common,@quiet/types,@quiet/state-manager,@quiet/backend,@quiet/identity,@quiet/mobile,backend-bundle" + + - name: Install pod dependencies + run: | + cd ./packages/mobile/ios + pod install + shell: bash + + - name: Setup provisioning profile + run: ./.github/secrets/decrypt_secrets.sh + env: + IOS_PROFILE_KEY: ${{ secrets.IOS_PROFILE_KEY }} + IOS_CERTIFICATE_KEY: ${{ secrets.IOS_CERTIFICATE_KEY }} + + - name: Build + run: | + cd ./packages/mobile/ios + xcodebuild archive \ + -workspace Quiet.xcworkspace \ + -scheme Quiet \ + -configuration Release \ + -archivePath build/Quiet.xcarchive \ + PROVISIONING_PROFILE="762df280-302c-4336-a56d-c74914169337" \ + CODE_SIGN_IDENTITY="Apple Distribution: A Quiet LLC (CTYKSWN9T4)" + + - name: Export .ipa + run: | + cd ./packages/mobile/ios + xcodebuild \ + -exportArchive \ + -archivePath build/Quiet.xcarchive \ + -exportOptionsPlist ci.plist \ + -exportPath build/ + + - name: Cleanup environment + if: always() + run: security delete-keychain build.keychain && rm -f ~/Library/MobileDevice/Provisioning\ Profiles/*.mobileprovision diff --git a/.github/workflows/mobile-deploy-ios.yml b/.github/workflows/mobile-deploy-ios.yml index 4eb1213c98..0d9ee37148 100644 --- a/.github/workflows/mobile-deploy-ios.yml +++ b/.github/workflows/mobile-deploy-ios.yml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - os: [macos-latest] + os: [macos-13] steps: - name: "Print OS" @@ -59,8 +59,8 @@ jobs: -scheme Quiet \ -configuration Release \ -archivePath build/Quiet.xcarchive \ - PROVISIONING_PROFILE="718ac015-309f-49b6-9653-f6cf84a6377c" \ - CODE_SIGN_IDENTITY="Apple Distribution: Zbay LLC (CTYKSWN9T4)" + PROVISIONING_PROFILE="762df280-302c-4336-a56d-c74914169337" \ + CODE_SIGN_IDENTITY="Apple Distribution: A Quiet LLC (CTYKSWN9T4)" - name: Export .ipa run: | diff --git a/.github/workflows/state-manager-tests.yml b/.github/workflows/state-manager-tests.yml index eb3c6beca6..65773a39d9 100644 --- a/.github/workflows/state-manager-tests.yml +++ b/.github/workflows/state-manager-tests.yml @@ -10,7 +10,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, macos-12] + os: [ubuntu-20.04, macos-13] steps: - uses: dorny/paths-filter@v3 diff --git a/.github/workflows/utils-tests.yml b/.github/workflows/utils-tests.yml index 7fe2ad6073..5fe99c39e3 100644 --- a/.github/workflows/utils-tests.yml +++ b/.github/workflows/utils-tests.yml @@ -12,7 +12,7 @@ jobs: strategy: matrix: - os: [ubuntu-20.04, macos-12, windows-2019] + os: [ubuntu-20.04, macos-13, windows-2019] steps: - name: "Print OS" diff --git a/3rd-party/auth b/3rd-party/auth index 4a78dca870..fd7101145f 160000 --- a/3rd-party/auth +++ b/3rd-party/auth @@ -1 +1 @@ -Subproject commit 4a78dca870be429c1a43107ad254bd89214c040d +Subproject commit fd7101145fc15aeb14bda46578b7a4d6d84e4e5b diff --git a/CHANGELOG.md b/CHANGELOG.md index eb09e98277..eac559ccc7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,11 @@ # Changelog -## [unreleased] +## [2.3.2] - ### Chores +### Chores -* Moved some responsibilities of identity management to the backend ([#2617](https://github.com/TryQuiet/quiet/pull/2617)) +* Moved some responsibilities of identity management to the backend ([#2602](https://github.com/TryQuiet/quiet/issues/2602)) +* Added auth submodule in preparation for future encyrption work ([#2623](https://github.com/TryQuiet/quiet/issues/2623)) ### Fixes diff --git a/packages/backend/src/nest/common/utils.ts b/packages/backend/src/nest/common/utils.ts index 1277203caa..344141893b 100644 --- a/packages/backend/src/nest/common/utils.ts +++ b/packages/backend/src/nest/common/utils.ts @@ -123,7 +123,7 @@ export function generateRandomOnionAddress(length: number = 56): string { let randomString = '' const randomValues = new Uint32Array(length) - crypto.getRandomValues(randomValues) + crypto.webcrypto.getRandomValues(randomValues) for (let i = 0; i < length; i++) { randomString += charset[randomValues[i] % charsetLength] diff --git a/packages/backend/src/nest/connections-manager/connections-manager.service.tor.spec.ts b/packages/backend/src/nest/connections-manager/connections-manager.service.tor.spec.ts index 7882767cae..b053980726 100644 --- a/packages/backend/src/nest/connections-manager/connections-manager.service.tor.spec.ts +++ b/packages/backend/src/nest/connections-manager/connections-manager.service.tor.spec.ts @@ -226,10 +226,11 @@ describe('Connections manager', () => { localDbService.setIdentity(userIdentity) expect(connectionsManagerService.communityState).toBe(undefined) - // community will fail to launch from storage on init because factory community id - // will not match the one in the storage set in beforeEach + + localDbService.setCommunity({ ...community, peerList: peerList }) + localDbService.setCurrentCommunityId(community.id) + logger.info('Launching community', community.id, 'with peer list', peerList) await connectionsManagerService.init() - await connectionsManagerService.launchCommunity({ ...community, peerList: peerList }) await sleep(5000) expect(connectionsManagerService.communityState).toBe(ServiceState.LAUNCHED) @@ -332,10 +333,9 @@ describe('Connections manager', () => { localDbService.setIdentity(userIdentity) expect(connectionsManagerService.communityState).toBe(undefined) - // community will fail to launch from storage on init because factory community id - // will not match the one in the storage set in beforeEach + localDbService.setCommunity({ ...community, peerList: peerList }) + localDbService.setCurrentCommunityId(community.id) await connectionsManagerService.init() - await connectionsManagerService.launchCommunity({ ...community, peerList: peerList }) await sleep(5000) expect(connectionsManagerService.communityState).toBe(ServiceState.LAUNCHED) diff --git a/packages/backend/src/nest/local-db/local-db.service.ts b/packages/backend/src/nest/local-db/local-db.service.ts index f288cbba9d..0e02dea22c 100644 --- a/packages/backend/src/nest/local-db/local-db.service.ts +++ b/packages/backend/src/nest/local-db/local-db.service.ts @@ -143,7 +143,6 @@ export class LocalDbService { // temporarily shoving identity creation here public async setIdentity(identity: Identity) { - await this.put(LocalDBKeys.IDENTITIES, identity) let identities = await this.get(LocalDBKeys.IDENTITIES) if (!identities) { identities = {} diff --git a/packages/desktop/CHANGELOG.md b/packages/desktop/CHANGELOG.md index 02777cda37..eac559ccc7 100644 --- a/packages/desktop/CHANGELOG.md +++ b/packages/desktop/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.3.2] + +### Chores + +* Moved some responsibilities of identity management to the backend ([#2602](https://github.com/TryQuiet/quiet/issues/2602)) +* Added auth submodule in preparation for future encyrption work ([#2623](https://github.com/TryQuiet/quiet/issues/2623)) + +### Fixes + +* Fixed memory leak associated with autoUpdater ([#2606](https://github.com/TryQuiet/quiet/issues/2606)) +* Fixed visual regression tests ([#2644](https://github.com/TryQuiet/quiet/issues/2645)) + ## [2.3.1] ### Fixes diff --git a/packages/desktop/package-lock.json b/packages/desktop/package-lock.json index 8563773e72..a9cfc126cb 100644 --- a/packages/desktop/package-lock.json +++ b/packages/desktop/package-lock.json @@ -1,12 +1,12 @@ { "name": "@quiet/desktop", - "version": "2.3.1", + "version": "2.3.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@quiet/desktop", - "version": "2.3.1", + "version": "2.3.2", "license": "GPL-3.0-or-later", "dependencies": { "@electron/remote": "^2.0.8", diff --git a/packages/desktop/package.json b/packages/desktop/package.json index dad433fd5b..df08c26f80 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -80,7 +80,7 @@ }, "homepage": "https://github.com/TryQuiet", "@comment version": "To build new version for specific platform, just replace platform in version tag to one of following linux, mac, windows", - "version": "2.3.1", + "version": "2.3.2", "description": "Decentralized team chat", "main": "dist/main/main.js", "scripts": { diff --git a/packages/mobile/CHANGELOG.md b/packages/mobile/CHANGELOG.md index 02777cda37..eac559ccc7 100644 --- a/packages/mobile/CHANGELOG.md +++ b/packages/mobile/CHANGELOG.md @@ -1,5 +1,17 @@ # Changelog +## [2.3.2] + +### Chores + +* Moved some responsibilities of identity management to the backend ([#2602](https://github.com/TryQuiet/quiet/issues/2602)) +* Added auth submodule in preparation for future encyrption work ([#2623](https://github.com/TryQuiet/quiet/issues/2623)) + +### Fixes + +* Fixed memory leak associated with autoUpdater ([#2606](https://github.com/TryQuiet/quiet/issues/2606)) +* Fixed visual regression tests ([#2644](https://github.com/TryQuiet/quiet/issues/2645)) + ## [2.3.1] ### Fixes diff --git a/packages/mobile/android/app/build.gradle b/packages/mobile/android/app/build.gradle index 1fe8959b1e..a8c976ed98 100644 --- a/packages/mobile/android/app/build.gradle +++ b/packages/mobile/android/app/build.gradle @@ -192,8 +192,8 @@ android { applicationId "com.quietmobile" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion - versionCode 425 - versionName "2.3.1" + versionCode 433 + versionName "2.3.2" resValue "string", "build_config_package", "com.quietmobile" testBuildType System.getProperty('testBuildType', 'debug') testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner' diff --git a/packages/mobile/ios/Quiet/Info.plist b/packages/mobile/ios/Quiet/Info.plist index c40fe1c554..9b745c2737 100644 --- a/packages/mobile/ios/Quiet/Info.plist +++ b/packages/mobile/ios/Quiet/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 2.3.1 + 2.3.2 CFBundleSignature ???? CFBundleURLTypes @@ -34,7 +34,7 @@ CFBundleVersion - 382 + 390 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS diff --git a/packages/mobile/ios/QuietTests/Info.plist b/packages/mobile/ios/QuietTests/Info.plist index 9cc36172d4..f08665efec 100644 --- a/packages/mobile/ios/QuietTests/Info.plist +++ b/packages/mobile/ios/QuietTests/Info.plist @@ -15,10 +15,10 @@ CFBundlePackageType BNDL CFBundleShortVersionString - 2.3.1 + 2.3.2 CFBundleSignature ???? CFBundleVersion - 382 + 390 diff --git a/packages/mobile/package-lock.json b/packages/mobile/package-lock.json index ec80569221..110e85522e 100644 --- a/packages/mobile/package-lock.json +++ b/packages/mobile/package-lock.json @@ -1,12 +1,12 @@ { "name": "@quiet/mobile", - "version": "2.3.1", + "version": "2.3.2", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@quiet/mobile", - "version": "2.3.1", + "version": "2.3.2", "dependencies": { "@peculiar/webcrypto": "^1.4.3", "@react-native-clipboard/clipboard": "^1.13.2", diff --git a/packages/mobile/package.json b/packages/mobile/package.json index 0885347996..c260e079c0 100644 --- a/packages/mobile/package.json +++ b/packages/mobile/package.json @@ -1,6 +1,6 @@ { "name": "@quiet/mobile", - "version": "2.3.1", + "version": "2.3.2", "scripts": { "build": "tsc -p tsconfig.build.json --noEmit", "storybook-android": "ENVFILE=.env.storybook react-native run-android --mode=storybookDebug --appIdSuffix=storybook.debug",