diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 02c97590bb..a576ac54d4 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,7 +1,7 @@ ### Pull Request Checklist - + * [ ] Pull request is based on the develop branch -* [ ] Pull request updates [CHANGES.rst](https://github.com/matrix-org/matrix-ios-sdk/blob/develop/CHANGES.rst) -* [ ] Pull request includes a [sign off](https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.rst#sign-off) +* [ ] Pull request contains a changelog file in ./changelog.d. See https://github.com/matrix-org/matrix-ios-sdk/blob/develop/CONTRIBUTING.md#changelog +* [ ] Pull request includes a [sign off](https://github.com/matrix-org/matrix-ios-sdk/blob/develop/CONTRIBUTING.md#sign-off) diff --git a/CHANGES.rst b/CHANGES.md similarity index 84% rename from CHANGES.rst rename to CHANGES.md index ca9c96e5f6..58d70a7ea5 100644 --- a/CHANGES.rst +++ b/CHANGES.md @@ -1,127 +1,54 @@ -Changes to be released in next version -================================================= - -✨ Features - * - -🙌 Improvements - * - -🐛 Bugfix - * Tests: Fix a crash in various tests from a missing `storeMaxUploadSize` method (#1175). - -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Changes in 0.19.6 (2021-07-29) -================================================= - -✨ Features - * - -🙌 Improvements - * +## Changes in 0.19.6 (2021-07-29) 🐛 Bugfix - * MXCryptoStore: Keep current store version after resetting data to avoid dead state on an initial sync (vector-im/element-ios/issues/4594). - * Prevent session pause until reject/hangup event is sent (vector-im/element-ios/issues/4612). + * MXCryptoStore: Keep current store version after resetting data to avoid dead state on an initial sync ([#4594](https://github.com/vector-im/element-ios/issues/4594)). + * Prevent session pause until reject/hangup event is sent ([#4612](https://github.com/vector-im/element-ios/issues/4612)). * Only post identity server changed notification if the server actually changed. - * Fix audio routing issues for Bluetooth devices (vector-im/element-ios/issues/4622). - -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * + * Fix audio routing issues for Bluetooth devices ([#4622](https://github.com/vector-im/element-ios/issues/4622)). Others - * Separated CI jobs into individual actions - -Improvements: - -Changes in 0.19.5 (2021-07-22) -================================================= + * Separated CI jobs into individual actions -✨ Features - * +## Changes in 0.19.5 (2021-07-22) 🙌 Improvements - * MXRoomSummary: Cache local unread event count (vector-im/element-ios/issues/4585). - -🐛 Bugfix - * MXCryptoStore: Use UI background task to make sure that write operations complete (vector-im/element-ios/issues/4579). - -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * -Others - * - -Improvements: + * MXRoomSummary: Cache local unread event count ([#4585](https://github.com/vector-im/element-ios/issues/4585)). +🐛 Bugfix + * MXCryptoStore: Use UI background task to make sure that write operations complete ([#4579](https://github.com/vector-im/element-ios/issues/4579)). -Changes in 0.19.4 (2021-07-15) -================================================= - -✨ Features - * +## Changes in 0.19.4 (2021-07-15) 🙌 Improvements - * MXTools: Default to 1080p when converting a video (vector-im/element-ios/issues/4478). + + * MXTools: Default to 1080p when converting a video ([#4478](https://github.com/vector-im/element-ios/issues/4478)). * MXEvent: add support for voice messages - * MXRoom: Add support for sending slow motion videos using AVAsset (vector-im/element-ios/issues/4483). + * MXRoom: Add support for sending slow motion videos using AVAsset ([#4483](https://github.com/vector-im/element-ios/issues/4483)). * MXSendReplyEventStringsLocalizable: Added senderSentAVoiceMessage property 🐛 Bugfix * Fix QR self verification with QR code (#1147) * VoIP: Check for virtual users on attended call transfers. - * MXBackgroundCryptoStore: Remove read-only Realm and try again if Olm account not found in crypto store (vector-im/element-ios/issues/4534). + * MXBackgroundCryptoStore: Remove read-only Realm and try again if Olm account not found in crypto store ([#4534](https://github.com/vector-im/element-ios/issues/4534)). ⚠️ API Changes - * MXSDKOptions: Add videoConversionPresetName to customise video conversion quality. - * MXRoom: Added duration and sample parameters on the sendVoiceMessage method (vector-im/element-ios/issues/4090) -🗣 Translations - * - -🧱 Build - * + * MXSDKOptions: Add videoConversionPresetName to customise video conversion quality. + * MXRoom: Added duration and sample parameters on the sendVoiceMessage method ([#4090](https://github.com/vector-im/element-ios/issues/4090)) Others - * Fixed a nullability warning and some header warnings. - - -Improvements: + * Fixed a nullability warning and some header warnings. -Changes in 0.19.3 (2021-06-30) -================================================= -✨ Features - * +## Changes in 0.19.3 (2021-06-30) 🙌 Improvements - * MXDehydrationService: Support full rehydration feature (vector-im/element-ios/issues/1117). - * MXSDKOptions: Add wellknownDomainUrl to customise the domain for wellknown (vector-im/element-ios/issues/#4489). + + * MXDehydrationService: Support full rehydration feature ([#1117](https://github.com/vector-im/element-ios/issues/1117)). + * MXSDKOptions: Add wellknownDomainUrl to customise the domain for wellknown ([##4489](https://github.com/vector-im/element-ios/issues/#4489)). * MXSession: Refresh homeserverWellknown on every start. * MXRoom: Added support for posting `m.image`s with BlurHash (MSC 2448). * VoIP: Implement bridged version for call transfers. @@ -131,854 +58,382 @@ Changes in 0.19.3 (2021-06-30) * ⚠️ API Changes + * MXCall: `audioToSpeaker` property removed. Use `audioOutputRouter` instead. * MXCallStackCall: `audioToSpeaker` property removed. Audio routing should be handled high-level. -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.19.2 (2021-06-24) -================================================= - -✨ Features - * +## Changes in 0.19.2 (2021-06-24) 🙌 Improvements + * MXSDKOptions: Introduce an option to auto-accept room invites. 🐛 Bugfix * MXSession.homeserverWellknown was no more computed since 0.19.0. -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.19.1 (2021-06-21) -================================================= - -✨ Features - * +## Changes in 0.19.1 (2021-06-21) 🙌 Improvements + * MXRoomLastMessage: Use MXKeyProvider methods to encrypt/decrypt last message dictionary. * VoIP: Change hold direction to send-only. - * Encrypted Media: Remove redundant and undocumented mimetype fields from encrypted attachments (vector-im/element-ios/issues/4303). - * MXRecoveryService: Expose checkPrivateKey to validate a private key (vector-im/element-ios/issues/4430). + * Encrypted Media: Remove redundant and undocumented mimetype fields from encrypted attachments ([#4303](https://github.com/vector-im/element-ios/issues/4303)). + * MXRecoveryService: Expose checkPrivateKey to validate a private key ([#4430](https://github.com/vector-im/element-ios/issues/4430)). * VoIP: Use headphones and Bluetooth devices when available for calls. 🐛 Bugfix - * MXSession: Fix app that can fail to resume (vector-im/element-ios/issues/4417). - * MXRealmCryptoStore: Run migration once before opening read-only Realms (vector-im/element-ios/issues/4418). - * VoIP: Handle offers when peer connection is stable (vector-im/element-ios/issues/4421). + * MXSession: Fix app that can fail to resume ([#4417](https://github.com/vector-im/element-ios/issues/4417)). + * MXRealmCryptoStore: Run migration once before opening read-only Realms ([#4418](https://github.com/vector-im/element-ios/issues/4418)). + * VoIP: Handle offers when peer connection is stable ([#4421](https://github.com/vector-im/element-ios/issues/4421)). * MXEventTimeline: Fix regression on clear cache where the last message of an encrypted room is not encrypted. - * MXBackgroundSyncService: Make credentials public (vector-im/element-ios/issues/3695). - * MXCredentials: Implement equatable & hashable methods (vector-im/element-ios/issues/3695). + * MXBackgroundSyncService: Make credentials public ([#3695](https://github.com/vector-im/element-ios/issues/3695)). + * MXCredentials: Implement equatable & hashable methods ([#3695](https://github.com/vector-im/element-ios/issues/3695)). ⚠️ API Changes - * MXRoomSummary: `lastMessageEvent` property removed for performance reasons (vector-im/element-ios/issues/4360). + + * MXRoomSummary: `lastMessageEvent` property removed for performance reasons ([#4360](https://github.com/vector-im/element-ios/issues/4360)). * MXRoomSummary: All properties about lastMessage are moved into `lastMessage` property. * MXSession: Does not compute anymore last events for every room summaries by default. Use -[MXSession eventWithEventId:inRoom:success:failure:] method to load the last event for a room summary. - * MXRoom: Added method for seding voice messages (vector-im/element-ios/issues/4090). - * MXMediaManager: Added `mimeType` param to download encrypted media methods (vector-im/element-ios/issues/4303). - * MXEncryptedContentFile: `mimetype` parameter removed (vector-im/element-ios/issues/4303). - * MXEncryptedAttachments: `mimetype` parameters removed from encrypt attachment methods (vector-im/element-ios/issues/4303). + * MXRoom: Added method for seding voice messages ([#4090](https://github.com/vector-im/element-ios/issues/4090)). + * MXMediaManager: Added `mimeType` param to download encrypted media methods ([#4303](https://github.com/vector-im/element-ios/issues/4303)). + * MXEncryptedContentFile: `mimetype` parameter removed ([#4303](https://github.com/vector-im/element-ios/issues/4303)). + * MXEncryptedAttachments: `mimetype` parameters removed from encrypt attachment methods ([#4303](https://github.com/vector-im/element-ios/issues/4303)). -🗣 Translations - * - 🧱 Build - * build.sh: Include debug symbols when building XCFramework - -Others - * - -Improvements: + * build.sh: Include debug symbols when building XCFramework -Changes in 0.19.0 (2021-06-02) -================================================= +## Changes in 0.19.0 (2021-06-02) ✨ Features - * Spaces: Support Space room type (vector-im/element-ios/issues/4069). + + * Spaces: Support Space room type ([#4069](https://github.com/vector-im/element-ios/issues/4069)). 🙌 Improvements - * MXSession: Cache initial sync response until it is fully handled (vector-im/element-ios/issues/4317). + + * MXSession: Cache initial sync response until it is fully handled ([#4317](https://github.com/vector-im/element-ios/issues/4317)). * MXStore: New commit method accepting a completion block. - * MXCrypto: Decrypt events asynchronously and no more on the main thread )(vector-im/element-ios/issues/4306). + * MXCrypto: Decrypt events asynchronously and no more on the main thread )([#4306](https://github.com/vector-im/element-ios/issues/4306)). * MXSession: Add the decryptEvents method to decypt a bunch of events asynchronously. * MXSession: Make the eventWithEventId method decrypt the event if needed. * MXEventTimeline: Add NSCopying implementation so that another pagination can be done on the same set of data. * MXCrypto: eventDeviceInfo: Do not synchronise anymore the operation with the decryption queue. * MXRoomSummary: Improve reset resetLastMessage to avoid pagination loop and to limit number of decryptions. - * MXSession: Limit the number of decryptions when processing an initial sync (vector-im/element-ios/issues/4307). - * Adapt sync response models to new sync API (vector-im/element-ios/issues/4309). + * MXSession: Limit the number of decryptions when processing an initial sync ([#4307](https://github.com/vector-im/element-ios/issues/4307)). + * Adapt sync response models to new sync API ([#4309](https://github.com/vector-im/element-ios/issues/4309)). * MXKeyBackup: Do not reset the backup if forceRefresh() is called too early. * Pod: Update Realm to 10.7.6. * Pod: Update Jitsi to 3.5.0. * Pod: Update OLMKit to 3.2.4. - * MXRealmCryptoStore: Use Realm instances as read-only in background store (vector-im/element-ios/issues/4352). - * MXLog: centralised logging facility, use everywhere instead of NSLog (vector-im/element-ios/issues/4351). + * MXRealmCryptoStore: Use Realm instances as read-only in background store ([#4352](https://github.com/vector-im/element-ios/issues/4352)). + * MXLog: centralised logging facility, use everywhere instead of NSLog ([#4351](https://github.com/vector-im/element-ios/issues/4351)). 🐛 Bugfix - * MXRoomSummary: Fix decryption of the last message when it is edited (vector-im/element-ios/issues/4322). - * MXCall: Check remote partyId for select_answer events (vector-im/element-ios/issues/4337). + * MXRoomSummary: Fix decryption of the last message when it is edited ([#4322](https://github.com/vector-im/element-ios/issues/4322)). + * MXCall: Check remote partyId for select_answer events ([#4337](https://github.com/vector-im/element-ios/issues/4337)). * MXSession: Fix used initial sync cache. ⚠️ API Changes + * MXRoom: MXRoom.outgoingMessages does not decrypt messages anymore. Use MXSession.decryptEvents to get decrypted events. * MXSession: [MXSession decryptEvent:inTimeline:] is deprecated, use [MXSession decryptEvents:inTimeline:onComplete:] instead. * MXCrypto: [MXCrypto decryptEvent:inTimeline:] is deprecated, use [MXCrypto decryptEvents:inTimeline:onComplete:] instead. * MXCrypto: [MXCrypto hasKeysToDecryptEvent:] is now asynchronous. -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.18.12 (2021-05-12) -================================================= - -✨ Features - * +## Changes in 0.18.12 (2021-05-12) 🙌 Improvements + * MXPushGatewayRestClient: Add timeout param to the HTTP method. 🐛 Bugfix * MXRoomCreateContent: Fix room type JSON key. -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.18.11 (2021-05-07) -================================================= - -✨ Features - * +## Changes in 0.18.11 (2021-05-07) 🙌 Improvements + * MXCallKitAdapter: Update incoming calls if answered from application UI. * MXFileStore: Logs all files when a data corruption is detected (to track vector-im/element-ios/issues/4921). * MXCallManager: Fix call transfers flow for all types of transfers. * VoIP: Implement asserted identity for calls: MSC3086 (matrix-org/matrix-doc/pull/3086). 🐛 Bugfix - * MXTools: Fix bad linkification of matrix alias and URL (vector-im/element-ios/issues/4258). + * MXTools: Fix bad linkification of matrix alias and URL ([#4258](https://github.com/vector-im/element-ios/issues/4258)). * MXRoomSummary: Fix roomType property deserialization issue. * MXCall: Disable call transferee capability & fix call transfer feature check. ⚠️ API Changes + * Spaces and room type: Remove all MSC1772 JSON key prefixes and use stable ones. -🗣 Translations - * - 🧱 Build + * Tests: Use UnitTests suffix for unit tests classes. * Tests: Cut some existing tests to separate unit tests and integration tests. * Tests: Create 4 test plans for the macOS target: AllTests, AllTestsWithSanitizers, UnitTests and UnitTestsWithSanitizers. * GH Actions: Run unit tests on every PR and develop branch update. * GH Actions: Run integration tests nightly on develop using last Synapse release. -Others - * - -Improvements: - - -Changes in 0.18.10 (2021-04-22) -================================================= - -✨ Features - * +## Changes in 0.18.10 (2021-04-22) 🙌 Improvements - * MXHTTPOperation: Expose the HTTP response (vector-im/element-ios/issues/4206). + + * MXHTTPOperation: Expose the HTTP response ([#4206](https://github.com/vector-im/element-ios/issues/4206)). * MXRoomPowerLevels: Handle undefined values and add init with default spec values. * MXRoomCreationParameters: Add roomType and powerLevelContentOverride properties. Add initial state events update method. * MXResponse: Add convenient uncurry method to convert a Swift method into Objective-C. * Add MXRoomInitialStateEventBuilder that enables to build initial state events. 🐛 Bugfix - * MXCrypto: Disable optimisation on room members list to make sure we share keys to all (vector-im/element-ios/issues/3807). + * MXCrypto: Disable optimisation on room members list to make sure we share keys to all ([#3807](https://github.com/vector-im/element-ios/issues/3807)). -⚠️ API Changes - * +## Changes in 0.18.9 (2021-04-16) -🗣 Translations - * - -🧱 Build - * +🐛 Bugfix +* Notifications: Fix sender display name that can miss ([##4222](https://github.com/vector-im/element-ios/issues/#4222)). -Others - * +## Changes in 0.18.8 (2021-04-14) -Improvements: +🐛 Bugfix + * MXSession: Fix deadlock regression in resume() ([#4202](https://github.com/vector-im/element-ios/issues/4202)). + * MXRoomMembers: Fix wrong view of room members when paginating ([#4204](https://github.com/vector-im/element-ios/issues/4204)). +## Changes in 0.18.7 (2021-04-09) -Changes in 0.18.9 (2021-04-16) -================================================= +🙌 Improvements -✨ Features - * + * Create secret storage with a given private key ([#4189](https://github.com/vector-im/element-ios/issues/4189)). + * MXAsyncTaskQueue: New tool to run asynchronous tasks one at a time. + * MXRestClient: Add the dehydratedDevice() method to get the dehydrated device data ([#4194](https://github.com/vector-im/element-ios/issues/4194)). + +🐛 Bugfix + * Notifications: Fix background sync out of memory (vector-im/element-ios#3957). + * Notifications: MXBackgroundService: Keep all cached sync responses until there are processed by MXSession (vector-im/element-ios#4074). + * Remove padding from base64 encoded `iv` value ([#4172](https://github.com/vector-im/element-ios/issues/4172)). + * Check for null before changing a user's displayname or avatar URL based on an m.room.member event. + +## Changes in 0.18.6 (2021-03-24) 🙌 Improvements - * -🐛 Bugfix -* Notifications: Fix sender display name that can miss (vector-im/element-ios/issues/#4222). + * Support room type as described in MSC1840 ([#4050](https://github.com/vector-im/element-ios/issues/4050)). + * Pods: Update JitsiMeetSDK, OHHTTPStubs, Realm ([#4120](https://github.com/vector-im/element-ios/issues/4120)). + * MXCrypto: Do not load room members in e2e rooms after an initial sync. + * MXRoomSummary: Add enableTrustTracking() to compute and maintain trust value for the given room ([#4115](https://github.com/vector-im/element-ios/issues/4115)). + * VoIP: Virtual rooms implementation. + * MXCrypto: Split network request `/keys/query` into smaller requests (250 users max) ([#4123](https://github.com/vector-im/element-ios/issues/4123)). -⚠️ API Changes - * +🐛 Bugfix + * MXDeviceList: Fix memory leak. + * MXDeviceListOperation: Fix memory leak. + * MXRoomState/MXRoomMembers: Fix memory leak and copying. + * MXKeyBackup: Add sanity checks to avoid crashes ([#4113](https://github.com/vector-im/element-ios/issues/4113)). + * MXTools: Avoid releasing null pointer to fix crash on M1 simulator ([#4140](https://github.com/vector-im/element-ios/issues/4140)) -🗣 Translations - * - 🧱 Build - * + + * build.sh: Support passing CFBundleShortVersionString and CFBundleVersion when building an xcframework. + * build.sh: When building an xcframework, zip the binary ready for distribution. Others - * -Improvements: + * GitHub Actions: Run pod lib lint +## Changes in 0.18.5 (2021-03-11) -Changes in 0.18.8 (2021-04-14) -================================================= +🐛 Bugfix + * VoIP: Fix too quick call answer failure ([#4109](https://github.com/vector-im/element-ios/issues/4109)). + * Crypto: Duplicate message index after using the share extension (vector-im/element-ios#4104) -✨ Features - * +Others -🙌 Improvements - * + * Ignore event editors other than the original sender. + +## Changes in 0.18.4 (2021-03-03) 🐛 Bugfix - * MXSession: Fix deadlock regression in resume() (vector-im/element-ios/issues/4202). - * MXRoomMembers: Fix wrong view of room members when paginating (vector-im/element-ios/issues/4204). + * MXCrossSigning: Fix setupWithPassword method crash when a grace period is enabled (Fix vector-im/element-ios#4099). -⚠️ API Changes - * +## Changes in 0.18.3 (2021-02-26) -🗣 Translations - * - -🧱 Build - * +🐛 Bugfix + * Fix connection state & ice connection failures ([#4039](https://github.com/vector-im/element-ios/issues/4039)). -Others - * +## Changes in 0.18.2 (2021-02-24) -Improvements: +🙌 Improvements + * MXRoomState: Add creator user id property. + * MXRoomSummary: Add creator user id property. + * MXCrypto: Encrypt cached e2ee data using an external pickle key (vector-im/element-ios#3867). + * Crypto: Upgrade OLMKit(3.2.2). -Changes in 0.18.7 (2021-04-09) -================================================= +🐛 Bugfix + * Fix calls from my own users ([#4031](https://github.com/vector-im/element-ios/issues/4031)). -✨ Features - * +🧱 Build + + * build.sh: Add xcframework argument to build a universal MatrixSDK.xcframework + * MatrixSDKTests-macOS: Remove tests from macOS profile and archive builds to match iOS. + +## Changes in 0.18.1 (2021-02-12) 🙌 Improvements - * Create secret storage with a given private key (vector-im/element-ios/issues/4189). - * MXAsyncTaskQueue: New tool to run asynchronous tasks one at a time. - * MXRestClient: Add the dehydratedDevice() method to get the dehydrated device data (vector-im/element-ios/issues/4194). + + * MXCredentials: Expose additional server login response data ([#4024](https://github.com/vector-im/element-ios/issues/4024)). 🐛 Bugfix - * Notifications: Fix background sync out of memory (vector-im/element-ios#3957). - * Notifications: MXBackgroundService: Keep all cached sync responses until there are processed by MXSession (vector-im/element-ios#4074). - * Remove padding from base64 encoded `iv` value (vector-im/element-ios/issues/4172). - * Check for null before changing a user's displayname or avatar URL based on an m.room.member event. + * Support VP8/VP9 codecs in video calls ([#4026](https://github.com/vector-im/element-ios/issues/4026)). + * Handle call rejects from other devices ([#4030](https://github.com/vector-im/element-ios/issues/4030)). -⚠️ API Changes - * +## Changes in 0.18.0 (2021-02-11) -🗣 Translations - * - -🧱 Build - * +🙌 Improvements -Others - * + * Pods: Update JitsiMeetSDK to 3.1.0. + * Send VoIP analytics events ([#3855](https://github.com/vector-im/element-ios/issues/3855)). + * Add hold support for CallKit calls ([#3834](https://github.com/vector-im/element-ios/issues/3834)). + * Fix video call with web ([#3862](https://github.com/vector-im/element-ios/issues/3862)). + * VoIP: Call transfers initiation ([#3872](https://github.com/vector-im/element-ios/issues/3872)). + * VoIP: DTMF support in calls ([#3929](https://github.com/vector-im/element-ios/issues/3929)). -Improvements: +🐛 Bugfix + * MXRoomSummary: directUserId may be missing (null) for a direct chat if it was joined on another device. +Others -Changes in 0.18.6 (2021-03-24) -================================================= + * README: Fix a couple of typos and improve consistency of the README. -✨ Features - * +## Changes in 0.17.11 (2021-02-03) 🙌 Improvements - * Support room type as described in MSC1840 (vector-im/element-ios/issues/4050). - * Pods: Update JitsiMeetSDK, OHHTTPStubs, Realm (vector-im/element-ios/issues/4120). - * MXCrypto: Do not load room members in e2e rooms after an initial sync. - * MXRoomSummary: Add enableTrustTracking() to compute and maintain trust value for the given room (vector-im/element-ios/issues/4115). - * VoIP: Virtual rooms implementation. - * MXCrypto: Split network request `/keys/query` into smaller requests (250 users max) (vector-im/element-ios/issues/4123). + + * MXMemory: New utility class to track memory usage. + * MXRealmCryptoStore: Compact Realm DB only once, at the first usage. + * MXLoginSSOIdentityProvider: Add new `brand` field as described in MSC2858 ([#3980](https://github.com/vector-im/element-ios/issues/3980)). + * MXSession: Make `handleBackgroundSyncCacheIfRequiredWithCompletion` method public ([#3986](https://github.com/vector-im/element-ios/issues/3986)). + * MXLogger: Remove log files that are no more part of the rotation. + * MXLogger: Add an option to limit logs size ([##3903](https://github.com/vector-im/element-ios/issues/#3903)). + * MXRestClient: Handle grace period in `authSessionForRequestWithMethod`. 🐛 Bugfix - * MXDeviceList: Fix memory leak. - * MXDeviceListOperation: Fix memory leak. - * MXRoomState/MXRoomMembers: Fix memory leak and copying. - * MXKeyBackup: Add sanity checks to avoid crashes (vector-im/element-ios/issues/4113). - * MXTools: Avoid releasing null pointer to fix crash on M1 simulator (vector-im/element-ios/issues/4140) - -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * build.sh: Support passing CFBundleShortVersionString and CFBundleVersion when building an xcframework. - * build.sh: When building an xcframework, zip the binary ready for distribution. - -Others - * GitHub Actions: Run pod lib lint - -Improvements: - - -Changes in 0.18.5 (2021-03-11) -================================================= - -✨ Features - * - -🙌 Improvements - * - -🐛 Bugfix - * VoIP: Fix too quick call answer failure (vector-im/element-ios/issues/4109). - * Crypto: Duplicate message index after using the share extension (vector-im/element-ios#4104) - -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * Ignore event editors other than the original sender. - -Improvements: - - -Changes in 0.18.4 (2021-03-03) -================================================= - -✨ Features - * - -🙌 Improvements - * - -🐛 Bugfix - * MXCrossSigning: Fix setupWithPassword method crash when a grace period is enabled (Fix vector-im/element-ios#4099). - -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.18.3 (2021-02-26) -================================================= - -✨ Features - * - -🙌 Improvements - * - -🐛 Bugfix - * Fix connection state & ice connection failures (vector-im/element-ios/issues/4039). - -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.18.2 (2021-02-24) -================================================= - -✨ Features - * - -🙌 Improvements - * MXRoomState: Add creator user id property. - * MXRoomSummary: Add creator user id property. - * MXCrypto: Encrypt cached e2ee data using an external pickle key (vector-im/element-ios#3867). - * Crypto: Upgrade OLMKit(3.2.2). - -🐛 Bugfix - * Fix calls from my own users (vector-im/element-ios/issues/4031). - -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * build.sh: Add xcframework argument to build a universal MatrixSDK.xcframework - * MatrixSDKTests-macOS: Remove tests from macOS profile and archive builds to match iOS. - -Others - * - -Improvements: - - -Changes in 0.18.1 (2021-02-12) -================================================= - -✨ Features - * - -🙌 Improvements - * MXCredentials: Expose additional server login response data (vector-im/element-ios/issues/4024). - -🐛 Bugfix - * Support VP8/VP9 codecs in video calls (vector-im/element-ios/issues/4026). - * Handle call rejects from other devices (vector-im/element-ios/issues/4030). - -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.18.0 (2021-02-11) -================================================= - -✨ Features - * - -🙌 Improvements - * Pods: Update JitsiMeetSDK to 3.1.0. - * Send VoIP analytics events (vector-im/element-ios/issues/3855). - * Add hold support for CallKit calls (vector-im/element-ios/issues/3834). - * Fix video call with web (vector-im/element-ios/issues/3862). - * VoIP: Call transfers initiation (vector-im/element-ios/issues/3872). - * VoIP: DTMF support in calls (vector-im/element-ios/issues/3929). - -🐛 Bugfix - * MXRoomSummary: directUserId may be missing (null) for a direct chat if it was joined on another device. - -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * README: Fix a couple of typos and improve consistency of the README. - -Improvements: - - -Changes in 0.17.11 (2021-02-03) -================================================= - -✨ Features - * - -🙌 Improvements - * MXMemory: New utility class to track memory usage. - * MXRealmCryptoStore: Compact Realm DB only once, at the first usage. - * MXLoginSSOIdentityProvider: Add new `brand` field as described in MSC2858 (vector-im/element-ios/issues/3980). - * MXSession: Make `handleBackgroundSyncCacheIfRequiredWithCompletion` method public (vector-im/element-ios/issues/3986). - * MXLogger: Remove log files that are no more part of the rotation. - * MXLogger: Add an option to limit logs size (vector-im/element-ios/issues/#3903). - * MXRestClient: Handle grace period in `authSessionForRequestWithMethod`. - -🐛 Bugfix - * Background Sync: Use autoreleasepool to limit RAM usage (vector-im/element-ios/issues/3957). + * Background Sync: Use autoreleasepool to limit RAM usage ([#3957](https://github.com/vector-im/element-ios/issues/3957)). * Background Sync: Do not compact Realm DB from background process. - * MX3PidAddManager: Use a non empty client_secret to discover /account/3pid/add flows (vector-im/element-ios/issues/3966). - * VoIP: Fix camera indicator when video call answered elsewhere (vector-im/element-ios/issues/3971). - -⚠️ API Changes - * + * MX3PidAddManager: Use a non empty client_secret to discover /account/3pid/add flows ([#3966](https://github.com/vector-im/element-ios/issues/3966)). + * VoIP: Fix camera indicator when video call answered elsewhere ([#3971](https://github.com/vector-im/element-ios/issues/3971)). -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.17.10 (2021-01-27) -================================================= - -✨ Features - * +## Changes in 0.17.10 (2021-01-27) 🙌 Improvements + * MXRealmCryptoStore: New implementation of deleteStoreWithCredentials that does not need to open the realm DB. * MXRealmCryptoStore: store chain index of shared outbound group sessions to improve re-share session keys 🐛 Bugfix - * MXBackgroundSyncService: Clear the bg sync crypto db if needed (vector-im/element-ios/issues/3956). - * MXCrypto: Add a workaround when the megolm key is not shared to all members (vector-im/element-ios/issues/3807). + * MXBackgroundSyncService: Clear the bg sync crypto db if needed ([#3956](https://github.com/vector-im/element-ios/issues/3956)). + * MXCrypto: Add a workaround when the megolm key is not shared to all members ([#3807](https://github.com/vector-im/element-ios/issues/3807)). -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.17.9 (2021-01-18) -================================================= - -✨ Features - * - -🙌 Improvements - * +## Changes in 0.17.9 (2021-01-18) 🐛 Bugfix - * MXEvent: Fix a regression on edits and replies in e2ee rooms (vector-im/element-ios/issues/3944). - -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - + * MXEvent: Fix a regression on edits and replies in e2ee rooms ([#3944](https://github.com/vector-im/element-ios/issues/3944)). -Changes in 0.17.8 (2021-01-15) -================================================= - -✨ Features - * - -🙌 Improvements - * +## Changes in 0.17.8 (2021-01-15) 🐛 Bugfix - * Avoid calling background task expiration handlers in app extensions (vector-im/element-ios/issues/3935). - -⚠️ API Changes - * + * Avoid calling background task expiration handlers in app extensions ([#3935](https://github.com/vector-im/element-ios/issues/3935)). -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.17.7 (2021-01-14) -================================================= - -✨ Features - * +## Changes in 0.17.7 (2021-01-14) 🙌 Improvements - * MXCrypto: Store megolm outbound session to improve send time of first message after app launch (vector-im/element-ios/issues/#3904). + + * MXCrypto: Store megolm outbound session to improve send time of first message after app launch ([##3904](https://github.com/vector-im/element-ios/issues/#3904)). * MXUIKitApplicationStateService: Add this service to track UIKit application state. 🐛 Bugfix - * MXBackgroundSyncService: Fix `m.buddy` to-device event crashes (vector-im/element-ios/issues/3889). - * MXBackgroundSyncService: Fix app deadlock created between the app process and the notification service extension process (vector-im/element-ios/issues/3906). - * MXUIKitBackgroundTask: Avoid thread switching when creating a background task to keep threading model (vector-im/element-ios/issues/3917). + * MXBackgroundSyncService: Fix `m.buddy` to-device event crashes ([#3889](https://github.com/vector-im/element-ios/issues/3889)). + * MXBackgroundSyncService: Fix app deadlock created between the app process and the notification service extension process ([#3906](https://github.com/vector-im/element-ios/issues/3906)). + * MXUIKitBackgroundTask: Avoid thread switching when creating a background task to keep threading model ([#3917](https://github.com/vector-im/element-ios/issues/3917)). ⚠️ API Changes - * MXLoginSSOFlow: Use unstable identity providers field while the MSC2858 is not approved. - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: + * MXLoginSSOFlow: Use unstable identity providers field while the MSC2858 is not approved. -Changes in 0.17.6 (2020-12-18) -================================================= - -✨ Features - * - -🙌 Improvements - * +## Changes in 0.17.6 (2020-12-18) 🐛 Bugfix * MXUIKitBackgroundTask: Handle invalid identifier case, introduce a threshold for background time remaining, set expiration handler in initAndStart. -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.17.5 (2020-12-16) -================================================= +## Changes in 0.17.5 (2020-12-16) ✨ Features + * Added MXKeyProvider to enable data encryption using keys given by client application (#3866) 🙌 Improvements + * MXTaggedEvents: Expose "m.tagged_events" according to [MSC2437](https://github.com/matrix-org/matrix-doc/pull/2437). - * Login flow: Add MXLoginSSOFlow to support multiple SSO Identity Providers ([MSC2858](https://github.com/matrix-org/matrix-doc/pull/2858)) (vector-im/element-ios/issues/3846). + * Login flow: Add MXLoginSSOFlow to support multiple SSO Identity Providers ([MSC2858](https://github.com/matrix-org/matrix-doc/pull/2858)) ([#3846](https://github.com/vector-im/element-ios/issues/3846)). 🐛 Bugfix * MXRestClient: Fix the format of the request body when querying device keys for users (vector-im/element-ios#3539). - * MXRoomSummary: Fix crash when decoding lastMessageData (vector-im/element-ios/issues/3879). + * MXRoomSummary: Fix crash when decoding lastMessageData ([#3879](https://github.com/vector-im/element-ios/issues/3879)). ⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: + * -Changes in 0.17.4 (2020-12-02) -================================================= +## Changes in 0.17.4 (2020-12-02) ✨ Features - * Added MXAes encryption helper class (vector-im/element-ios/issues/3833). + + * Added MXAes encryption helper class ([#3833](https://github.com/vector-im/element-ios/issues/3833)). 🙌 Improvements - * Pods: Update JitsiMeetSDK to 2.11.0 to be able to build using Xcode 12.2 (vector-im/element-ios/issues/3808). - * Pods: Update Realm to 10.1.4 to be able to `pod lib lint` using Xcode 12.2 (vector-im/element-ios/issues/3808). + + * Pods: Update JitsiMeetSDK to 2.11.0 to be able to build using Xcode 12.2 ([#3808](https://github.com/vector-im/element-ios/issues/3808)). + * Pods: Update Realm to 10.1.4 to be able to `pod lib lint` using Xcode 12.2 ([#3808](https://github.com/vector-im/element-ios/issues/3808)). 🐛 Bugfix * MXSession: Fix a race conditions that prevented MXSession from actually being paused. * MXSession: Make sure the resume method call its completion callback. ⚠️ API Changes - * MXRoomSummary: Add a property to indicate room membership transition state. - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - -Changes in 0.17.3 (2020-11-24) -================================================= + * MXRoomSummary: Add a property to indicate room membership transition state. -✨ Features - * +## Changes in 0.17.3 (2020-11-24) 🙌 Improvements + * MXCrypto: Introduce MXCryptoVersion and MXCryptoMigration to manage logical migration between MXCrypto module updates. 🐛 Bugfix * MXOlmDevice: Make usage of libolm data process-safe (vector-im/element-ios/3817). * MXCrypto: Use MXCryptoMigration to purge all one time keys because some may be bad (vector-im/element-ios/3818). -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.17.2 (2020-11-17) -================================================= - -✨ Features - * - -🙌 Improvements - * +## Changes in 0.17.2 (2020-11-17) 🐛 Bugfix * Podspec: Fix arm64 simulator issue with JitsiMeetSDK. * Realm: Stick on 10.1.2 because the CI cannot build. -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.17.1 (2020-11-17) -================================================= - -✨ Features - * - -🙌 Improvements - * +## Changes in 0.17.1 (2020-11-17) 🐛 Bugfix * ⚠️ API Changes + * Update Realm to 10.2.1 and CocoaPods to 1.10.0. * CocoaPods 1.10.0 is mandatory. -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - - Changes in 0.17.0 (2020-11-13) -================================================= - -✨ Features - * + ## Changes in 0.17.0 (2020-11-13) 🙌 Improvements + * MXAnalyticsDelegate: Make it fully agnostic on tracked data. * MXRealmCryptoStore: Compact DB files before getting out of memory error (vector-im/element-ios/3792). * Tools: Add MXProfiler to track some performance. @@ -989,112 +444,47 @@ Improvements: * Update JitsiMeetSDK to 2.10.2 (vector-im/element-ios/3712). ⚠️ API Changes - * Xcode 12 is now mandatory for using the JingleCallStack sub pod. - -🗣 Translations - * - -🧱 Build - * -Others - * + * Xcode 12 is now mandatory for using the JingleCallStack sub pod. -Changes in 0.16.20 (2020-10-27) -================================================= - -✨ Features - * +## Changes in 0.16.20 (2020-10-27) 🙌 Improvements + * Update GZIP to 1.3.0 (vector-im/element-ios/3570). * Update Realm to 5.4.8 (vector-im/element-ios/3570). * Update JitsiMeetSDK to 2.10.0 (vector-im/element-ios/3570). - * Introduce MXBackgroundSyncService and helper classes (vector-im/element-ios/issues/3579). + * Introduce MXBackgroundSyncService and helper classes ([#3579](https://github.com/vector-im/element-ios/issues/3579)). 🐛 Bugfix * ⚠️ API Changes - * SwiftSupport subspec removed. Swift is default now. - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - -Changes in 0.16.19 (2020-10-14) -================================================= + * SwiftSupport subspec removed. Swift is default now. -✨ Features - * +## Changes in 0.16.19 (2020-10-14) 🙌 Improvements + * MXCrossSigning: Detect when cross-signing keys have been reset and send MXCrossSigningDidChangeCrossSigningKeysNotification. - * MXSession: Introduce handleSyncResponse method to process sync responses from out of the session (vector-im/element-ios/issues/3579). - * MXJSONModels: Implement JSONDictionary methods for MXSyncResponse and inner classes (vector-im/element-ios/issues/3579). + * MXSession: Introduce handleSyncResponse method to process sync responses from out of the session ([#3579](https://github.com/vector-im/element-ios/issues/3579)). + * MXJSONModels: Implement JSONDictionary methods for MXSyncResponse and inner classes ([#3579](https://github.com/vector-im/element-ios/issues/3579)). 🐛 Bugfix * Tests: Fix testMXDeviceListDidUpdateUsersDevicesNotification. * MXCrossSigning: Trust cross-signing because we locally trust the device that created it. -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.16.18 (2020-10-13) -================================================= - -✨ Features - * - -🙌 Improvements - * +## Changes in 0.16.18 (2020-10-13) 🐛 Bugfix * Fix nonstring msgtyped room messages, by removing msgtype from the wire and prev contents. -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.16.17 (2020-10-09) -================================================= - -✨ Features - * +## Changes in 0.16.17 (2020-10-09) 🙌 Improvements + * MXCrypto: Add hasKeysToDecryptEvent method. 🐛 Bugfix @@ -1102,23 +492,7 @@ Changes in 0.16.17 (2020-10-09) * MXCrypto: Send MXCrossSigningMyUserDidSignInOnNewDeviceNotification and MXDeviceListDidUpdateUsersDevicesNotification on the main thread. * MXCrossSigning: Do not send MXCrossSigningMyUserDidSignInOnNewDeviceNotification again if the device has been verified from another thread. -⚠️ API Changes - * - -🗣 Translations - * - -🧱 Build - * - -Others - * - -Improvements: - - -Changes in 0.16.16 (2020-09-30) -================================================= +## Changes in 0.16.16 (2020-09-30) Features: * @@ -1129,7 +503,7 @@ Improvements: Bugfix: * MXBase64Tools: Make sure the SDK decode padded and unpadded base64 strings like other platforms (vector-im/riot-ios/issues/3667). * SSSS: Use unpadded base64 for secrets data (vector-im/riot-ios/issues/3669). - * MXSession: Fix `refreshHomeserverWellknown` method not reading Well-Known from the homeserver domain (vector-im/element-ios/issues/3653). + * MXSession: Fix `refreshHomeserverWellknown` method not reading Well-Known from the homeserver domain ([#3653](https://github.com/vector-im/element-ios/issues/3653)). API Change: * @@ -1146,8 +520,7 @@ Build: Test: * -Changes in 0.16.15 (2020-09-03) -================================================= +## Changes in 0.16.15 (2020-09-03) Features: * @@ -1174,8 +547,7 @@ Build: Test: * -Changes in 0.16.14 (2020-08-28) -================================================= +## Changes in 0.16.14 (2020-08-28) Features: * @@ -1184,7 +556,7 @@ Improvements: * Bugfix: - * MXCredentials: Try to guess homeserver in credentials when not provided in wellknown (vector-im/element-ios/issues/3448). + * MXCredentials: Try to guess homeserver in credentials when not provided in wellknown ([#3448](https://github.com/vector-im/element-ios/issues/3448)). API Change: * @@ -1201,8 +573,7 @@ Build: Test: * -Changes in 0.16.13 (2020-08-25) -================================================= +## Changes in 0.16.13 (2020-08-25) Features: * @@ -1228,8 +599,7 @@ Build: Test: * -Changes in 0.16.12 (2020-08-19) -================================================= +## Changes in 0.16.12 (2020-08-19) Features: * @@ -1255,8 +625,7 @@ Build: Test: * -Changes in 0.16.11 (2020-08-13) -================================================= +## Changes in 0.16.11 (2020-08-13) Features: * Introduce MXPushGatewayRestClient (part of vector-im/element-ios#3452). @@ -1282,8 +651,7 @@ Build: Test: * -Changes in 0.16.10 (2020-08-07) -================================================= +## Changes in 0.16.10 (2020-08-07) Features: * @@ -1311,8 +679,7 @@ Test: * Make tests crash instantly if no local synapse is running. * Do not use anymore NSAssert in tests. -Changes in 0.16.9 (2020-08-05) -================================================= +## Changes in 0.16.9 (2020-08-05) Features: * @@ -1338,7 +705,7 @@ Build: Test: * -Changes in 0.16.8 (2020-07-28) +## Changes in 0.16.8 (2020-07-28) ================================================ Improvements: @@ -1348,7 +715,7 @@ Bug fix: * MXRoom: Reply: Use formatted body only if the message content format is known. * MXRoom: Reply: Avoid nested mx-reply tags. -Changes in Matrix iOS SDK in 0.16.7 (2020-07-13) +## Changes in Matrix iOS SDK in 0.16.7 (2020-07-13) ================================================ Bug fix: @@ -1356,7 +723,7 @@ Bug fix: * MXPushRuleSenderNotificationPermissionConditionChecker & MXPushRuleRoomMemberCountConditionChecker: Remove redundant room check (vector-im/riot-ios/issues/3354). * MXSDKOptions: Introduce enableKeyBackupWhenStartingMXCrypto option (vector-im/riot-ios/issues/3371). -Changes in Matrix iOS SDK in 0.16.6 (2020-06-30) +## Changes in Matrix iOS SDK in 0.16.6 (2020-06-30) ================================================ Improvements: @@ -1380,7 +747,7 @@ Bug fix: API break: * MXCrossSigning: Removed MXCrossSigningStateCanCrossSignAsynchronously. -Changes in Matrix iOS SDK in 0.16.5 (2020-05-18) +## Changes in Matrix iOS SDK in 0.16.5 (2020-05-18) ================================================ Improvements: @@ -1394,7 +761,7 @@ Improvements: Bug fix: * MXJingleCallAudioSessionConfigurator: Handle RTCAudioSession manually, enable audio when needed. Fix outgoing audio issue after consecutive incoming calls. -Changes in Matrix iOS SDK in 0.16.4 (2020-05-07) +## Changes in Matrix iOS SDK in 0.16.4 (2020-05-07) ================================================ Improvements: @@ -1402,14 +769,14 @@ Improvements: * Pod: Update AFNetworking version (#793). * Pod: Update Realm and OHTTPStubs. -Changes in Matrix iOS SDK in 0.16.3 (2020-05-07) +## Changes in Matrix iOS SDK in 0.16.3 (2020-05-07) ================================================ Improvements: * MXCrypto: Allow to verify a device again to request private keys again from it. * Secrets: Validate received private keys for cross-signing and key backup before using them (vector-im/riot-ios/issues/3201). -Changes in Matrix iOS SDK in 0.16.2 (2020-04-30) +## Changes in Matrix iOS SDK in 0.16.2 (2020-04-30) ================================================ Improvements: @@ -1422,7 +789,7 @@ Bug fix: Doc fix: * Update the CONTRIBUTING.rst to point to correct file. -Changes in Matrix iOS SDK in 0.16.1 (2020-04-24) +## Changes in Matrix iOS SDK in 0.16.1 (2020-04-24) ================================================ Improvements: @@ -1440,7 +807,7 @@ Bug fix: API break: * MXCrypto: trustLevelSummaryForUserIds: is now async. -Changes in Matrix iOS SDK in 0.16.0 (2020-04-17) +## Changes in Matrix iOS SDK in 0.16.0 (2020-04-17) ================================================ Improvements: @@ -1477,7 +844,7 @@ API break: * MXSession & MXRestClient: the `createRoom` method with a long list of parameters has been replaced by `createRoomWithParameters`. -Changes in Matrix iOS SDK in 0.15.2 (2019-12-05) +## Changes in Matrix iOS SDK in 0.15.2 (2019-12-05) =============================================== Improvements: @@ -1490,7 +857,7 @@ Bug fix: API break: * MXCallAudioSessionConfigurator: Now unavailable for macOS. -Changes in Matrix iOS SDK in 0.15.1 (2019-12-04) +## Changes in Matrix iOS SDK in 0.15.1 (2019-12-04) =============================================== Improvements: @@ -1501,7 +868,7 @@ Improvements: Bug fix: * MXIdentityServerRestClient: Match registration endpoint to the IS r0.3.0 spec (vector-im/riot-ios#2824). -Changes in Matrix iOS SDK in 0.15.0 (2019-11-06) +## Changes in Matrix iOS SDK in 0.15.0 (2019-11-06) =============================================== Improvements: @@ -1519,7 +886,7 @@ Bug fix: API break: * MXBackgroundModeHandler: Update interface and now use a single method that return a MXBackgroundTask. -Changes in Matrix iOS SDK in 0.14.0 (2019-10-11) +## Changes in Matrix iOS SDK in 0.14.0 (2019-10-11) =============================================== Improvements: @@ -1549,7 +916,7 @@ API break: Bug Fix: * Send kMXSessionCryptoDidCorruptDataNotification from the main thread. -Changes in Matrix iOS SDK in 0.13.1 (2019-08-08) +## Changes in Matrix iOS SDK in 0.13.1 (2019-08-08) =============================================== Improvements: @@ -1563,7 +930,7 @@ Bug Fix: * Crypto: Fix a race condition that prevented message from being sent (vector-im/riot-ios/issues/2541). * MXRoom: storeLocalReceipt: Add a sanity check to avoid crash. -Changes in Matrix iOS SDK in 0.13.0 (2019-07-16) +## Changes in Matrix iOS SDK in 0.13.0 (2019-07-16) =============================================== Improvements: @@ -1592,7 +959,7 @@ API break: * MXRestClient: Remove the joinRoom method with least parameters. * MXSession, MXRestClient: Add viaServers parameters to all joinRoom methods. -Changes in Matrix iOS SDK in 0.12.5 (2019-05-03) +## Changes in Matrix iOS SDK in 0.12.5 (2019-05-03) =============================================== Improvements: @@ -1605,13 +972,13 @@ Bug Fix: * MXRoomSummaryUpdater: Fix `MXRoomSummary.hiddenFromUser` property not being saved when associated room become tombstoned (vector-im/riot-ios/issues/2148). * MXFileStore not loaded with 0 rooms, thanks to @asydorov (PR #647). -Changes in Matrix iOS SDK in 0.12.4 (2019-03-21) +## Changes in Matrix iOS SDK in 0.12.4 (2019-03-21) =============================================== Bug Fix: * MXRestClient: Fix file upload with filename containing whitespace (PR #645). -Changes in Matrix iOS SDK in 0.12.3 (2019-03-08) +## Changes in Matrix iOS SDK in 0.12.3 (2019-03-08) =============================================== Improvements: @@ -1627,7 +994,7 @@ Bug Fix: * Crypto: Fix crash in MXKeyBackup (vector-im/riot-ios/issues/#2281). * Escape room v3 event ids in permalinks (vector-im/riot-ios/issues/2277). -Changes in Matrix iOS SDK in 0.12.2 (2019-02-15) +## Changes in Matrix iOS SDK in 0.12.2 (2019-02-15) =============================================== Improvements: @@ -1652,7 +1019,7 @@ Bug Fix: API break: * MXKeyBackup: Rename isKeyBackupTrusted to trustForKeyBackupVersion. -Changes in Matrix iOS SDK in 0.12.1 (2019-01-04) +## Changes in Matrix iOS SDK in 0.12.1 (2019-01-04) =============================================== Improvements: @@ -1664,7 +1031,7 @@ Bug Fix: * MXCryptoStore: Stop duplicating devices in the store (vector-im/riot-ios/issues/2132). * MXPeekingRoom: the room preview is broken (vector-im/riot-ios/issues/2126). -Changes in Matrix iOS SDK in 0.12.0 (2018-12-06) +## Changes in Matrix iOS SDK in 0.12.0 (2018-12-06) =============================================== Improvements: @@ -1695,7 +1062,7 @@ API break: * The Matrix Content repository contants are moved to MXEnumConstants.h * [urlOfIdenticon:] is moved from MXRestClient to MXMediaManager. -Changes in Matrix iOS SDK in 0.11.6 (2018-10-31) +## Changes in Matrix iOS SDK in 0.11.6 (2018-10-31) =============================================== Improvements: @@ -1716,7 +1083,7 @@ Bug fix: API break: * MXCrypto: importRoomKeys methods now return number of imported keys. -Changes in Matrix iOS SDK in 0.11.5 (2018-10-05) +## Changes in Matrix iOS SDK in 0.11.5 (2018-10-05) =============================================== Improvements: @@ -1724,7 +1091,7 @@ Improvements: * MXRoomState: Add pinnedEvents to list pinned events ids. * MXServerNotices: Add this class to get notices from the user homeserver. -Changes in Matrix iOS SDK in 0.11.4 (2018-09-26) +## Changes in Matrix iOS SDK in 0.11.4 (2018-09-26) =============================================== Improvements: @@ -1740,13 +1107,13 @@ Bug fix: * MXRestClient: Fix get public rooms list Swift refinement. * MXTools: Allow '@' in room alias (vector-im/riot-ios/issues/1977). -Changes in Matrix iOS SDK in 0.11.3 (2018-08-27) +## Changes in Matrix iOS SDK in 0.11.3 (2018-08-27) =============================================== Bug fix: * MXJSONModel: Manage `m.server_notice` empty tag sent due to a bug server side (PR #556). -Changes in Matrix iOS SDK in 0.11.2 (2018-08-24) +## Changes in Matrix iOS SDK in 0.11.2 (2018-08-24) =============================================== Improvements: @@ -1761,7 +1128,7 @@ Bug fix: * People tab is empty in the share extension (vector-im/riot-ios/issues/1988). * MXError: MXError lost NSError.userInfo information. -Changes in Matrix iOS SDK in 0.11.1 (2018-08-17) +## Changes in Matrix iOS SDK in 0.11.1 (2018-08-17) =============================================== Improvements: @@ -1772,7 +1139,7 @@ Bug fix: * Fix possible race conditions in direct rooms management. * Avoid to create an empty filter on each [MXSession start:] -Changes in Matrix iOS SDK in 0.11.0 (2018-08-10) +## Changes in Matrix iOS SDK in 0.11.0 (2018-08-10) =============================================== Improvements: @@ -1805,7 +1172,7 @@ API break: * MXStore: Make the stateOfRoom method asynchronous. * MXRestClient: contextOfEvent: Add a filter parameter. -Changes in Matrix iOS SDK in 0.10.12 (2018-05-31) +## Changes in Matrix iOS SDK in 0.10.12 (2018-05-31) =============================================== Improvements: @@ -1826,7 +1193,7 @@ Bug fix: API break: * Analytics: Rename all kMXGoogleAnalyticsXxx constant values to kMXAnalyticsXxx. -Changes in Matrix iOS SDK in 0.10.11 (2018-05-31) +## Changes in Matrix iOS SDK in 0.10.11 (2018-05-31) =============================================== Improvements: @@ -1834,7 +1201,7 @@ Improvements: * MXSession: Add account deactivation * MKTools: Create MXWeakify & MXStrongifyAndReturnIfNil -Changes in Matrix iOS SDK in 0.10.10 (2018-05-23) +## Changes in Matrix iOS SDK in 0.10.10 (2018-05-23) =============================================== Improvements: @@ -1846,13 +1213,13 @@ Improvements: Bug fixes: * Groups: Avoid flair to make requests in loop in case the HS returns an empty response for `/publicised_groups` (vector-im/riot-ios#1869). -Changes in Matrix iOS SDK in 0.10.9 (2018-04-23) +## Changes in Matrix iOS SDK in 0.10.9 (2018-04-23) =============================================== Bug fixes: * Regression: Sending a photo from the photo library causes a crash. -Changes in Matrix iOS SDK in 0.10.8 (2018-04-20) +## Changes in Matrix iOS SDK in 0.10.8 (2018-04-20) =============================================== Improvements: @@ -1864,7 +1231,7 @@ Bug fixes: * App fails to logout on unknown token (vector-im/riot-ios#1839). * All rooms showing the same avatar (vector-im/riot-ios#1673). -Changes in Matrix iOS SDK in 0.10.7 (2018-03-30) +## Changes in Matrix iOS SDK in 0.10.7 (2018-03-30) =============================================== Improvements: @@ -1873,7 +1240,7 @@ Improvements: Bug fixes: * Room summary is not updated after redaction of the room display name (vector-im/riot-ios#1822). -Changes in Matrix iOS SDK in 0.10.6 (2018-03-12) +## Changes in Matrix iOS SDK in 0.10.6 (2018-03-12) =============================================== Improvements: @@ -1900,7 +1267,7 @@ API breaks: * MXCrypto: Remove deviceWithDeviceId and devicesForUser methods because they return local values that may be out of sync. Use downloadKeys instead (vector-im/riot-ios#1782). * MXRestClient: Add a txnId parameter to the sendEventToRoom method to better follow the matrix spec. -Changes in Matrix iOS SDK in 0.10.5 (2018-02-09) +## Changes in Matrix iOS SDK in 0.10.5 (2018-02-09) =============================================== Improvements: @@ -1921,7 +1288,7 @@ Bug fixes: * Medias not loading with an optional client certificate (#446), thanks to @r2d2leboss. * Crypto: Fix crash when sharing keys on broken network (PR #451). -Changes in Matrix iOS SDK in 0.10.4 (2017-11-30) +## Changes in Matrix iOS SDK in 0.10.4 (2017-11-30) =============================================== Improvements: @@ -1943,13 +1310,13 @@ API breaks: * Remove CoreData implementation of MXStore (It was not used). * MXCrypto: Make `decryptEvent` return decryption results (PR #426). -Changes in Matrix iOS SDK in 0.10.3 (2017-11-13) +## Changes in Matrix iOS SDK in 0.10.3 (2017-11-13) =============================================== Bug fixes: * A 1:1 invite is not displayed as a direct chat after clearing the cache. -Changes in Matrix iOS SDK in 0.10.1 (2017-10-27) +## Changes in Matrix iOS SDK in 0.10.1 (2017-10-27) =============================================== Improvements: @@ -1963,7 +1330,7 @@ Bug fixes: API breaks: * Crypto: Remove MXFileCryptoStore (We stopped to maintain it one year ago). -Changes in Matrix iOS SDK in 0.10.0 (2017-10-23) +## Changes in Matrix iOS SDK in 0.10.0 (2017-10-23) =============================================== Improvements: @@ -1985,7 +1352,7 @@ Bug fixes: * MXRoom: sendEventOfType: Copy the event content to send to keep it consistent in multi-thread conditions (like in e2e) (vector-im/riot-ios#1581). * Mark all messages as read does not work well (vector-im/riot-ios#1425). -Changes in Matrix iOS SDK in 0.9.3 (2017-10-03) +## Changes in Matrix iOS SDK in 0.9.3 (2017-10-03) =============================================== Improvements: @@ -2011,7 +1378,7 @@ Bug fixes: * Background task release race condition (PR #374). * MXHTTPClient: Fix a regression that prevented the app from reconnecting when the network comes back (PR #375). -Changes in Matrix iOS SDK in 0.9.2 (2017-08-25) +## Changes in Matrix iOS SDK in 0.9.2 (2017-08-25) =============================================== Improvements: @@ -2025,7 +1392,7 @@ Bug fixes: API breaks: * Add a "stateKey" optional param to [MXRoom sendStateEventOfType:] and to [MXRestClient sendStateEventToRoom:]. -Changes in Matrix iOS SDK in 0.9.1 (2017-08-08) +## Changes in Matrix iOS SDK in 0.9.1 (2017-08-08) =============================================== Improvements: @@ -2040,7 +1407,7 @@ Bug fixes: API breaks: * Replace [MXRoomState stateEventWithType:] by [MXRoomState stateEventsWithType:]. -Changes in Matrix iOS SDK in 0.9.0 (2017-08-01) +## Changes in Matrix iOS SDK in 0.9.0 (2017-08-01) =============================================== Improvements: @@ -2066,13 +1433,13 @@ Bug fixes: * Avatars do not display with account on a self-signed server (https://github.com/vector-im/riot-ios/issues/816). * MXRestClient: Escape userId in CS API requests. -Changes in Matrix iOS SDK in 0.8.2 (2017-06-30) +## Changes in Matrix iOS SDK in 0.8.2 (2017-06-30) =============================================== Improvements: * MXFileStore: Improve performance by ~5% (PR #318). -Changes in Matrix iOS SDK in 0.8.1 (2017-06-23) +## Changes in Matrix iOS SDK in 0.8.1 (2017-06-23) =============================================== Improvements: @@ -2081,7 +1448,7 @@ Improvements: Bug fixes: * VoIP: Fix outgoing call stays in "Call connecting..." whereas it is established (https://github.com/vector-im/riot-ios#1326). -Changes in Matrix iOS SDK in 0.8.0 (2017-06-16) +## Changes in Matrix iOS SDK in 0.8.0 (2017-06-16) =============================================== Improvements: @@ -2113,20 +1480,20 @@ Bug fixes: API breaks: * MXRestClient: Update publicRooms to support pagination and 3rd party networks -Changes in Matrix iOS SDK in 0.7.11 (2017-03-23) +## Changes in Matrix iOS SDK in 0.7.11 (2017-03-23) =============================================== Improvements: * MXSDKOptions: Let the application define its own media cache version (see `mediaCacheAppVersion`). * MXMediaManager: Consider a cache version based on the version defined by the application and the one defined at the SDK level. -Changes in Matrix iOS SDK in 0.7.10 (2017-03-21) +## Changes in Matrix iOS SDK in 0.7.10 (2017-03-21) =============================================== Bug fix: * Registration with email failed when the email address is validated on the mobile phone. -Changes in Matrix iOS SDK in 0.7.9 (2017-03-16) +## Changes in Matrix iOS SDK in 0.7.9 (2017-03-16) =============================================== Improvements: @@ -2138,7 +1505,7 @@ Bug fixes: * MXCrypto: Fix a crash due to a signedness issue in the count of one-time keys to upload. * MXCall: In case of encrypted room, make sure that encryption is fully set up before answering (https://github.com/vector-im/riot-ios#1058) -Changes in Matrix iOS SDK in 0.7.8 (2017-03-07) +## Changes in Matrix iOS SDK in 0.7.8 (2017-03-07) =============================================== Improvements: @@ -2170,7 +1537,7 @@ API breaks: * MXPublicRoom: numJoinedMembers is now a signed integer. * Rename [MXHTTPClient jitterTimeForRetry] into [MXHTTPClient timeForRetry:] -Changes in Matrix iOS SDK in 0.7.7 (2017-02-08) +## Changes in Matrix iOS SDK in 0.7.7 (2017-02-08) =============================================== Improvements: @@ -2187,7 +1554,7 @@ Bug fixes: * MXRealmCryptoStore: Prevent storeSession & storeInboundGroupSession from storing duplicates (#227). * MXRealmCryptoStore: Force migration of the db to remove duplicate olm and megolm sessions (#227). -Changes in Matrix iOS SDK in 0.7.6 (2017-01-24) +## Changes in Matrix iOS SDK in 0.7.6 (2017-01-24) =============================================== Improvements: @@ -2205,7 +1572,7 @@ API breaks: * MXDecryptingErrorUnkwnownInboundSessionIdReason has been renamed to MXDecryptingErrorUnknownInboundSessionIdReason. * kMXRoomLocalEventIdPrefix has been renamed to kMXEventLocalEventIdPrefix. -Changes in Matrix iOS SDK in 0.7.5 (2017-01-19) +## Changes in Matrix iOS SDK in 0.7.5 (2017-01-19) =============================================== Improvements: @@ -2220,7 +1587,7 @@ Bug fixes: * Failure to decrypt megolm event despite receiving the keys (https://github.com/vector-im/riot-ios#913). * Riot looks to me like I'm sending the same message twice (https://github.com/vector-im/riot-ios#894). -Changes in Matrix iOS SDK in 0.7.4 (2016-12-23) +## Changes in Matrix iOS SDK in 0.7.4 (2016-12-23) =============================================== Improvements: @@ -2238,7 +1605,7 @@ Improvements: API breaks: * MXRoom:`sendMessageOfType` is deprecated. Replaced by sendMessageWithContent. -Changes in Matrix iOS SDK in 0.7.3 (2016-11-23) +## Changes in Matrix iOS SDK in 0.7.3 (2016-11-23) =============================================== Improvements: @@ -2247,7 +1614,7 @@ Improvements: Bug fixes: * MXRestClient: Fix Delete Device API. -Changes in Matrix iOS SDK in 0.7.2 (2016-11-22) +## Changes in Matrix iOS SDK in 0.7.2 (2016-11-22) =============================================== Improvements: @@ -2257,14 +1624,14 @@ Bug fixes: * Cannot invite user with dash in their user id (vector-im/vector-ios#812). * Crypto: Mitigate replay attack #162. -Changes in Matrix iOS SDK in 0.7.1 (2016-11-18) +## Changes in Matrix iOS SDK in 0.7.1 (2016-11-18) =============================================== Bug fixes: * fix Signal detected: 11 at [MXRoomState memberName:] level. * [Register flow] Register with a mail address fails (https://github.com/vector-im/vector-ios#799). -Changes in Matrix iOS SDK in 0.7.0 (2016-11-16) +## Changes in Matrix iOS SDK in 0.7.0 (2016-11-16) =============================================== Improvements: @@ -2290,7 +1657,7 @@ API break: * MXRestClient: Remove `registerWithUser` and `loginWithUser` methods which worked only with old CS auth API. * MXSession: Remove `privateOneToOneRoomWithUserId:` and `privateOneToOneUsers` (the developer must use the `directRooms` property instead). -Changes in Matrix iOS SDK in 0.6.17 (2016-09-27) +## Changes in Matrix iOS SDK in 0.6.17 (2016-09-27) ================================================ Improvements: @@ -2302,20 +1669,20 @@ Bug fixes: * The room preview does not always display the right member info (https://github.com/vector-im/vector-ios#643). * App got stuck and permenantly spinning (https://github.com/vector-im/vector-ios#655). -Changes in Matrix iOS SDK in 0.6.16 (2016-09-15) +## Changes in Matrix iOS SDK in 0.6.16 (2016-09-15) ================================================ Bug fixes: * MXSession: In case of initialSync, mxsession.myUser.userId must be available before changing the state to MXSessionStateStoreDataReady (https://github.com/vector-im/vector-ios#623). -Changes in Matrix iOS SDK in 0.6.15 (2016-09-14) +## Changes in Matrix iOS SDK in 0.6.15 (2016-09-14) ================================================ Bug fixes: * MXFileStore: The stored receipts may not be totally loaded on cold start. * MXNotificationCenter: The conditions of override and underride rules are defined in an array. -Changes in Matrix iOS SDK in 0.6.14 (2016-09-08) +## Changes in Matrix iOS SDK in 0.6.14 (2016-09-08) ================================================ Improvements: @@ -2333,7 +1700,7 @@ Bug fixes: * MXCall: Add a timeout for outgoing calls (https://github.com/vector-im/vector-ios/issues/577). * MXJingleCallStackCall: When screen is locked, rotating the screen landscape makes local video preview go upside down (https://github.com/vector-im/vector-ios/issues/519). -Changes in Matrix iOS SDK in 0.6.13 (2016-08-25) +## Changes in Matrix iOS SDK in 0.6.13 (2016-08-25) ================================================ Improvements: @@ -2367,7 +1734,7 @@ API Breaks: * MXFileStore: Replace 'diskUsage' property by an async non blocking method: [self diskUsageWithBlock:]. * MXStore: Replace [MXStore resetPaginationOfRoom:], [MXStore paginateRoom:numMessages:] and [MXStore remainingMessagesForPaginationInRoom:] methods by [MXStore messagesEnumeratorForRoom:] -Changes in Matrix iOS SDK in 0.6.12 (2016-08-01) +## Changes in Matrix iOS SDK in 0.6.12 (2016-08-01) ================================================ Improvements: @@ -2380,7 +1747,7 @@ Improvements: Bug fixes: * MXJingleCallStackCall: Added sanity check on creation of RTCICEServer objects as crashes have been reported. -Changes in Matrix iOS SDK in 0.6.11 (2016-07-26) +## Changes in Matrix iOS SDK in 0.6.11 (2016-07-26) ================================================ Improvements: @@ -2395,7 +1762,7 @@ Bug fixes: Breaks: * MXCallStackCall: two new properties (audioMuted and videoMuted) and one new delegate method (onICECandidateWithSdpMid). -Changes in Matrix iOS SDK in 0.6.10 (2016-07-15) +## Changes in Matrix iOS SDK in 0.6.10 (2016-07-15) ================================================ Improvements: @@ -2410,7 +1777,7 @@ Bug fixes: Breaks: * MXRestClient: uploadContent signature has been changed. -Changes in Matrix iOS SDK in 0.6.9 (2016-07-01) +## Changes in Matrix iOS SDK in 0.6.9 (2016-07-01) =============================================== Improvements: @@ -2427,7 +1794,7 @@ Breaks: * MXRoom: isPublic has been replaced by isJoinRulePublic -Changes in Matrix iOS SDK in 0.6.8 (2016-06-01) +## Changes in Matrix iOS SDK in 0.6.8 (2016-06-01) =============================================== Improvements: @@ -2441,7 +1808,7 @@ Bug fixes: * Fixed implementation of userAccountData in MXMemoryStore and MXNoStore. * MXSession: Detect when the access token is no more valid. -Changes in Matrix iOS SDK in 0.6.7 (2016-05-04) +## Changes in Matrix iOS SDK in 0.6.7 (2016-05-04) =============================================== Improvements: @@ -2450,7 +1817,7 @@ Improvements: * Ability to report abuse * Ability to ignore users -Changes in Matrix iOS SDK in 0.6.6 (2016-04-26) +## Changes in Matrix iOS SDK in 0.6.6 (2016-04-26) =============================================== Improvements: @@ -2466,7 +1833,7 @@ Bug fixes: * Store - Detect and remove corrupted room data. * The application icon badge number is wrong. -Changes in Matrix iOS SDK in 0.6.5 (2016-04-08) +## Changes in Matrix iOS SDK in 0.6.5 (2016-04-08) =============================================== Improvements: @@ -2481,7 +1848,7 @@ Bug fixes: * Fixed crash in [MXFileStore saveReceipts]. There was a race condition. * Cancel correctly pending operations. -Changes in Matrix iOS SDK in 0.6.4 (2016-03-17) +## Changes in Matrix iOS SDK in 0.6.4 (2016-03-17) =============================================== Improvements: @@ -2493,7 +1860,7 @@ Bug fixes: * App crashes on redacted event handling. * The account data changes are ignored (Favorites section is not refreshed correctly). -Changes in Matrix iOS SDK in 0.6.3 (2016-03-07) +## Changes in Matrix iOS SDK in 0.6.3 (2016-03-07) =============================================== Improvements: @@ -2513,7 +1880,7 @@ Bug fixes: * SYIOS-208: [MXSession startWithMessagesLimit]: if defined, the limit argument is now passed to /sync request. * SYIOS-207: Removed MXEventDirectionSync which became useless. -Changes in Matrix iOS SDK in 0.6.2 (2016-02-09) +## Changes in Matrix iOS SDK in 0.6.2 (2016-02-09) =============================================== Improvements: @@ -2524,7 +1891,7 @@ Bug fixes: * App crashes on resume if a pause is pending. * Account creation: reCaptcha is missing in registration fallback. -Changes in Matrix iOS SDK in 0.6.1 (2016-01-29) +## Changes in Matrix iOS SDK in 0.6.1 (2016-01-29) =============================================== Improvements: @@ -2535,7 +1902,7 @@ Bug fixes: * SYIOS-203: iOS crashes on non numeric power levels. * MXRestClient: set APNS pusher failed on invalid params. -Changes in Matrix iOS SDK in 0.6.0 (2016-01-22) +## Changes in Matrix iOS SDK in 0.6.0 (2016-01-22) =============================================== Improvements: @@ -2561,7 +1928,7 @@ Bug fixes: * MXRoom: Improve offline experience - Disable retry option on pagination requests when data are available from store. The caller is then able to handle messages from store without delay. * MXSession: Load push rules from server before loading store data in order to highlight the bing events. -Changes in Matrix iOS SDK in 0.5.7 (2015-11-30) +## Changes in Matrix iOS SDK in 0.5.7 (2015-11-30) =============================================== Improvements: @@ -2578,14 +1945,14 @@ Bug fixes: * MXNotificationCenter: NSMutableArray was mutated while being enumerated. * App crashes at launch after an event redaction. -Changes in Matrix iOS SDK in 0.5.6 (2015-11-13) +## Changes in Matrix iOS SDK in 0.5.6 (2015-11-13) =============================================== Bug fixes: * MXRoomState: All room members have the same power level when a new state event is received. * MXRoom: The backward room state is corrupted (former display name and avatar are missing). -Changes in Matrix iOS SDK in 0.5.5 (2015-11-12) +## Changes in Matrix iOS SDK in 0.5.5 (2015-11-12) =============================================== Improvements: @@ -2593,7 +1960,7 @@ Improvements: * MXRoomState: Added cache to [MXRoomState memberName:] to optimise it. * MXUser/MXRoomMember: Ignore non mxc avatar url. -Changes in Matrix iOS SDK in 0.5.4 (2015-11-06) +## Changes in Matrix iOS SDK in 0.5.4 (2015-11-06) =============================================== Improvements: @@ -2614,7 +1981,7 @@ Bug fixes: * SYIOS-169: Improve MXEvent conversion. * SYIOS-170: Public Room: room history is wrong when user joins for the second time. -Changes in Matrix iOS SDK in 0.5.3 (2015-09-14) +## Changes in Matrix iOS SDK in 0.5.3 (2015-09-14) =============================================== Improvements: @@ -2624,20 +1991,20 @@ Improvements: Bug fixes: * MXRoom: App crashes on invite room during initial sync. -Changes in Matrix iOS SDK in 0.5.2 (2015-08-13) +## Changes in Matrix iOS SDK in 0.5.2 (2015-08-13) =============================================== Improvements: * Fixed code that made Cocoapods 0.38.2 unhappy. -Changes in Matrix iOS SDK in 0.5.1 (2015-08-10) +## Changes in Matrix iOS SDK in 0.5.1 (2015-08-10) =============================================== Improvements: * MXRestClient: Add API to create push rules. * MXRestClient: Add API to update global notification settings. -Changes in Matrix iOS SDK in 0.5.0 (2015-07-10) +## Changes in Matrix iOS SDK in 0.5.0 (2015-07-10) =============================================== Improvements: @@ -2665,7 +2032,7 @@ Bug fixes: room history is reached). -Changes in Matrix iOS SDK in 0.4.0 (2015-04-23) +## Changes in Matrix iOS SDK in 0.4.0 (2015-04-23) =============================================== ----- @@ -2702,7 +2069,7 @@ Console source code has been moved into its own git repository: https://github.com/matrix-org/matrix-ios-console. -Changes in Matrix iOS SDK in 0.3.2 (2015-03-27) +## Changes in Matrix iOS SDK in 0.3.2 (2015-03-27) =============================================== ----- @@ -2726,7 +2093,7 @@ Improvements: * Improved image rotation support over different Matrix clients. Bug fixes: - * SYIOS-107 - In-App notifications does not work since changes in push rules + * SYIOS-107 - In-App notifications does not work since ## Changes in push rules spec. * SYIOS-108 - I can't re-enter existing chats when tapping through contact details. @@ -2736,7 +2103,7 @@ Bug fixes: failure. -Changes in Matrix iOS SDK in 0.3.1 (2015-03-03) +## Changes in Matrix iOS SDK in 0.3.1 (2015-03-03) =============================================== ----- @@ -2768,7 +2135,7 @@ Bug fixes: * SYIOS-98 - Crash when attempting to attach image on iPad -Changes in Matrix iOS SDK in 0.3.0 (2015-02-23) +## Changes in Matrix iOS SDK in 0.3.0 (2015-02-23) =============================================== ----- @@ -2846,7 +2213,7 @@ Bug fixes: user scrolls settings table. -Changes in Matrix iOS SDK in 0.2.2 (2015-02-05) +## Changes in Matrix iOS SDK in 0.2.2 (2015-02-05) =============================================== ----- @@ -2917,7 +2284,7 @@ Bug fixes: -Changes in Matrix iOS SDK in 0.2.1 (2015-01-14) +## Changes in Matrix iOS SDK in 0.2.1 (2015-01-14) =============================================== ----- @@ -2970,7 +2337,7 @@ Bug fixes: -Changes in Matrix iOS SDK in 0.2.0 (2014-12-19) +## Changes in Matrix iOS SDK in 0.2.0 (2014-12-19) =============================================== ----- @@ -3025,7 +2392,7 @@ Bug fixes: -Changes in Matrix iOS SDK in 0.1.0 (2014-12-09) +## Changes in Matrix iOS SDK in 0.1.0 (2014-12-09) =============================================== SDK: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000000..d2499346b4 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,163 @@ +# Contributing to Matrix iOS SDK, Kit and Element-iOS + +Everyone is welcome to contribute code to matrix-ios-sdk, matrix-ios-kit, +element-ios, provided that they are willing to license their contributions +under the same license as the project itself. We follow a simple +'inbound=outbound' model for contributions: the act of submitting an +'inbound' contribution means that the contributor agrees to license the code +under the same terms as the project's overall 'outbound' license - in this case, +Apache Software License v2 (see [LICENSE](LICENSE)). + +To simplify project management, Matrix iOS SDK and Matrix iOS Kit issues are +managed in the Element-iOS +[repository](https://github.com/vector-im/element-ios/issues). + +## How to contribute + +The preferred and easiest way to contribute changes to the project is to fork +it on GitHub, and then [create a pull request](https://docs.github.com/en/github/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-pull-requests) to ask us to pull your changes +into our repo. + +We use GitHub's pull request workflow to review the contribution, and either +ask you to make any refinements needed or merge it and make them ourselves. + +Things that should go into your PR description: + +- References to any bugs fixed by the change (in GitHub's `Fixes` [notation](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue#linking-a-pull-request-to-an-issue-using-a-keyword)) +- Notes for the reviewer that might help them to understand why the change +is necessary or how they might better review it +- Screenshots or videos if applicable + +Your PR must also: + +- be based on the develop branch +- include a changelog file entry (see [below](#changelog)) +- include a [sign off](#sign-off) + +## Attribution + +Everyone who contributes anything to Matrix is welcome to be listed in the +[AUTHORS.rst](AUTHORS.rst) file for the project in question. Please feel free +to include a change to AUTHORS.rst in your pull request to list yourself and +a short description of the area(s) you've worked on. Also, we sometimes have +swag to give away to contributors - if you feel that Matrix-branded apparel is +missing from your life, please mail us your shipping address to matrix at +matrix.org and we'll try to fix it :). + +## Changelog + +All changes, even minor ones, need a corresponding changelog / newsfragment +entry. These are managed by [Towncrier](https://github.com/twisted/towncrier). + +To create a changelog entry, make a new file in the `changelog.d` directory +named in the format of `ElementIOSIssueNumber.type`. The type can be one of the +following: + +- `feature` for a new feature +- `change` for updates to an existing feature +- `bugfix` for bug fix +- `api` for an api break +- `i18n` for translations +- `build` for changes related to build, tools, CI/CD +- `doc` for updates to the documentation +- `misc` for other changes + +This file will become part of our [changelog](CHANGES.md) at the next +release, so the content of the file should be a short description of your +change in the same style as the rest of the changelog. The file must only +contain one line. It can contain Markdown formatting. It should start with the +area of the change (screen, module, ...) and end with a full stop (.) or an +exclamation mark (!) for consistency. + +Adding credits to the changelog is encouraged, we value your +contributions and would like to have you shouted out in the release notes! + +For example, a fix for an issue #1234 would have its changelog entry in +`changelog.d/1234.bugfix`, and contain content like: + +> Voice Messages: Fix a crash when sending a voice message. Contributed by +> Jane Matrix. + +If there are multiple pull requests involved in a single bugfix/feature/etc, +then the content for each `changelog.d` file should be the same. Towncrier will +merge the matching files together into a single changelog entry when we come to +release. + +There are exceptions on the `ElementIOSIssueNumber.type` entry format. Even if +it is not encouraged, you can use: + +- `pr-[PRNumber].type` for a PR with no related issue +- `sdk-[iOSSDKIssueNumber].type` for a PR related a matrix-ios-sdk issue +- `kit-[iOSKitIssueNumber].type` for a PR related a matrix-ios-kit issue + +To preview the changelog for pending changelog entries, use: + +```bash +$ towncrier build --draft --version 1.2.3 +``` + +## Sign off + +In order to have a concrete record that your contribution is intentional +and you agree to license it under the same terms as the project's license, we've adopted the +same lightweight approach that the Linux Kernel +[submitting patches process]( +https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin>), +[Docker](https://github.com/docker/docker/blob/master/CONTRIBUTING.md), and many +other projects use: the DCO (Developer Certificate of Origin: +). This is a simple declaration that you wrote +the contribution or otherwise have the right to contribute it to Matrix: + +```text +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. +660 York Street, Suite 102, +San Francisco, CA 94110 USA + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. +``` + +If you agree to this for your contribution, then all that's needed is to +include the line in your commit or pull request comment: + +```text +Signed-off-by: Your Name +``` + +We accept contributions under a legally identifiable name, such as +your name on government documentation or common-law names (names +claimed by legitimate usage or repute). Unfortunately, we cannot +accept anonymous contributions at this time. + +Git allows you to add this signoff automatically when using the `-s` +flag to `git commit`, which uses the name and email set in your +`user.name` and `user.email` git configs. diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst deleted file mode 100644 index 9c9ed9a0c0..0000000000 --- a/CONTRIBUTING.rst +++ /dev/null @@ -1,4 +0,0 @@ -Contributing code to the Matrix iOS SDK -======================================= - -matrix-ios-sdk follows the same pattern as https://github.com/matrix-org/synapse/blob/master/CONTRIBUTING.md diff --git a/MatrixSDK.xcodeproj/project.pbxproj b/MatrixSDK.xcodeproj/project.pbxproj index 76e8bd7666..4582d92c0e 100644 --- a/MatrixSDK.xcodeproj/project.pbxproj +++ b/MatrixSDK.xcodeproj/project.pbxproj @@ -519,9 +519,6 @@ 32BD34BE1E84134A006EDC0D /* MatrixSDKTestsE2EData.m in Sources */ = {isa = PBXBuildFile; fileRef = 32BD34BD1E84134A006EDC0D /* MatrixSDKTestsE2EData.m */; }; 32BED28F1B00A23F00E668FE /* MXCallStack.h in Headers */ = {isa = PBXBuildFile; fileRef = 32BED28E1B00A23F00E668FE /* MXCallStack.h */; settings = {ATTRIBUTES = (Public, ); }; }; 32C03CB62123076F00D92712 /* DirectRoomTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C03CB52123076F00D92712 /* DirectRoomTests.m */; }; - 32C03CBB21231C2600D92712 /* Podfile in Resources */ = {isa = PBXBuildFile; fileRef = 32C03CB721231C2500D92712 /* Podfile */; }; - 32C03CBD21231C2600D92712 /* CHANGES.rst in Resources */ = {isa = PBXBuildFile; fileRef = 32C03CB921231C2500D92712 /* CHANGES.rst */; }; - 32C03CBE21231C2600D92712 /* AUTHORS.rst in Resources */ = {isa = PBXBuildFile; fileRef = 32C03CBA21231C2500D92712 /* AUTHORS.rst */; }; 32C235721F827F3800E38FC5 /* MXRoomOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C235701F827F3800E38FC5 /* MXRoomOperation.h */; }; 32C235731F827F3800E38FC5 /* MXRoomOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 32C235711F827F3800E38FC5 /* MXRoomOperation.m */; }; 32C474C122AF7A2D00CFBCD2 /* MXReactionOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 32C474BF22AF7A2D00CFBCD2 /* MXReactionOperation.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -1970,7 +1967,6 @@ 32BED28E1B00A23F00E668FE /* MXCallStack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXCallStack.h; sourceTree = ""; }; 32C03CB52123076F00D92712 /* DirectRoomTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DirectRoomTests.m; sourceTree = ""; }; 32C03CB721231C2500D92712 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; fileEncoding = 4; path = Podfile; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 32C03CB921231C2500D92712 /* CHANGES.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = CHANGES.rst; sourceTree = ""; }; 32C03CBA21231C2500D92712 /* AUTHORS.rst */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = AUTHORS.rst; sourceTree = ""; }; 32C235701F827F3800E38FC5 /* MXRoomOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MXRoomOperation.h; sourceTree = ""; }; 32C235711F827F3800E38FC5 /* MXRoomOperation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MXRoomOperation.m; sourceTree = ""; }; @@ -2007,6 +2003,7 @@ 32D2CC0123422462002BD8CA /* MX3PidAddSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MX3PidAddSession.h; sourceTree = ""; }; 32D2CC0223422462002BD8CA /* MX3PidAddManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MX3PidAddManager.m; sourceTree = ""; }; 32D2CC08234336D6002BD8CA /* MX3PidAddManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MX3PidAddManager.swift; sourceTree = ""; }; + 32D5573526BAF1540023D286 /* CHANGES.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CHANGES.md; sourceTree = ""; }; 32D5D16223E400A600E3E37C /* MXRoomSummaryTrustTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MXRoomSummaryTrustTests.m; sourceTree = ""; }; 32D7767B1A27860600FC4AA2 /* MXMemoryStore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MXMemoryStore.h; sourceTree = ""; }; 32D7767C1A27860600FC4AA2 /* MXMemoryStore.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MXMemoryStore.m; sourceTree = ""; }; @@ -3315,7 +3312,7 @@ isa = PBXGroup; children = ( 32C03CBA21231C2500D92712 /* AUTHORS.rst */, - 32C03CB921231C2500D92712 /* CHANGES.rst */, + 32D5573526BAF1540023D286 /* CHANGES.md */, 32C03CB721231C2500D92712 /* Podfile */, B14B17682464419E00C2751E /* MatrixSDK.podspec */, 32C6F92F19DD814400EA4E9C /* MatrixSDK */, @@ -4916,9 +4913,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 32C03CBE21231C2600D92712 /* AUTHORS.rst in Resources */, - 32C03CBD21231C2600D92712 /* CHANGES.rst in Resources */, - 32C03CBB21231C2600D92712 /* Podfile in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/changelog.d/.gitignore b/changelog.d/.gitignore new file mode 100644 index 0000000000..f935021a8f --- /dev/null +++ b/changelog.d/.gitignore @@ -0,0 +1 @@ +!.gitignore diff --git a/changelog.d/1060.bugfix b/changelog.d/1060.bugfix deleted file mode 100644 index 5fb05d4355..0000000000 --- a/changelog.d/1060.bugfix +++ /dev/null @@ -1 +0,0 @@ -Check for null before updating a user's displayname or avatar URL based on an m.room.member event. Contributed by Charles Wright. diff --git a/changelog.d/4393.build b/changelog.d/4393.build new file mode 100644 index 0000000000..d24a7e1910 --- /dev/null +++ b/changelog.d/4393.build @@ -0,0 +1 @@ +CHANGES.md: Use towncrier to manage the change log. More info in [CONTRIBUTING](CONTRIBUTING.md#changelog). \ No newline at end of file diff --git a/changelog.d/4393.doc b/changelog.d/4393.doc new file mode 100644 index 0000000000..aabf911e92 --- /dev/null +++ b/changelog.d/4393.doc @@ -0,0 +1 @@ +Convert CHANGES and CONTRIBUTING to MarkDown. \ No newline at end of file diff --git a/changelog.d/616.feature b/changelog.d/616.feature deleted file mode 100644 index ca289f7acb..0000000000 --- a/changelog.d/616.feature +++ /dev/null @@ -1 +0,0 @@ -Add a sendAudioFile API to send file using msgType "m.audio". diff --git a/changelog.d/_template.md.jinja b/changelog.d/_template.md.jinja new file mode 100644 index 0000000000..2a7b9d6fed --- /dev/null +++ b/changelog.d/_template.md.jinja @@ -0,0 +1,52 @@ +{# iOS Repositories #} +{%- set gh_sdk = "https://github.com/matrix-org/matrix-ios-sdk" -%} +{%- set gh_kit = "https://github.com/matrix-org/matrix-ios-kit" -%} +{%- set gh_element = "https://github.com/vector-im/element-ios" -%} + +## {{ versiondata.name }} {{ versiondata.version }} ({{ versiondata.date }}) +{% for section, _ in sections.items() %} + +{% if sections[section] %} +{% for category, val in definitions.items() if category in sections[section]%} +{{ definitions[category]['name'] }} + +{% if definitions[category]['showcontent'] %} +{% for text, values in sections[section][category].items() %} +{# Build all types of links we can have from our different repositories #} +{%- set links = [] -%} +{%- for value in values %} + {%- if value.startswith("sdk-") %} + {%- set gh_issue = value.replace("sdk-", "") -%} + {{- links.append( "[#%s](%s/issues/%s)" | format(gh_issue, gh_sdk, gh_issue) ) | default("", True) -}} + {%- elif value.startswith("kit-") %} + {%- set gh_issue = value.replace("kit-", "") -%} + {{- links.append( "[#%s](%s/issues/%s)" | format(gh_issue, gh_kit, gh_issue) ) | default("", True) -}} + {%- elif value.startswith("#") %} + {%- set gh_issue = value.replace("#", "") -%} + {{- links.append( "[#%s](%s/issues/%s)" | format(gh_issue, gh_element, gh_issue) ) | default("", True) -}} + {%- elif value.startswith("pr-") %} + {%- set pr = value.replace("pr-", "#") -%} + {{- links.append(pr) | default("", True) -}} + {% else %} + {{- links.append(value) | default("", True) -}} + {% endif -%} +{% endfor -%} +- {{ text }} ({{ links | join(', ') }}) +{% endfor %} +{% else %} +- {{ sections[section][category]['']|join(', ') }} + +{% endif %} +{% if sections[section][category]|length == 0 %} +No significant changes. + +{% else %} +{% endif %} + +{% endfor %} +{% else %} +No significant changes. + + +{% endif %} +{% endfor %} \ No newline at end of file diff --git a/changelog.d/sdk-1175.bugfix b/changelog.d/sdk-1175.bugfix new file mode 100644 index 0000000000..17b7396699 --- /dev/null +++ b/changelog.d/sdk-1175.bugfix @@ -0,0 +1 @@ +Tests: Fix a crash in various tests from a missing `storeMaxUploadSize` method. \ No newline at end of file diff --git a/towncrier.toml b/towncrier.toml new file mode 100644 index 0000000000..2587d18b2a --- /dev/null +++ b/towncrier.toml @@ -0,0 +1,45 @@ +[tool.towncrier] +name = "Changes in" +filename = "CHANGES.md" +directory = "changelog.d" +template = "changelog.d/_template.md.jinja" + +[[tool.towncrier.type]] + directory = "feature" + name = "✨ Features" + showcontent = true + +[[tool.towncrier.type]] + directory = "change" + name = "🙌 Improvements" + showcontent = true + +[[tool.towncrier.type]] + directory = "bugfix" + name = "🐛 Bugfixes" + showcontent = true + +[[tool.towncrier.type]] + directory = "api" + name = "⚠️ API Changes" + showcontent = true + +[[tool.towncrier.type]] + directory = "i18n" + name = "🗣 Translations" + showcontent = true + +[[tool.towncrier.type]] + directory = "build" + name = "🧱 Build" + showcontent = true + +[[tool.towncrier.type]] + directory = "doc" + name = "📄 Documentation" + showcontent = true + +[[tool.towncrier.type]] + directory = "misc" + name = "Others" + showcontent = true