Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update realm to v3 (major) #13

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open

Update realm to v3 (major) #13

wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jul 22, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
io.realm.kotlin 1.16.0 -> 3.0.0 age adoption passing confidence
io.realm.kotlin:library-base (source) 1.16.0 -> 3.0.0 age adoption passing confidence

Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

realm/realm-kotlin (io.realm.kotlin:library-base)

v3.0.0

Breaking Changes
  • None.
Enhancements
  • None.
Fixed
  • None.
Compatibility
  • File format: Generates Realms with file format v24 (reads and upgrades file format v10 or later).
  • Realm Studio 15.0.0 or above is required to open Realms created by this version.
  • This release is compatible with the following Kotlin releases:
  • Minimum Kbson 0.4.0.
  • Minimum Gradle version: 7.2.
  • Minimum Android Gradle Plugin version: 7.1.3.
  • Minimum Android SDK: 16.
  • Minimum R8: 8.0.34.
Internal
  • None.

v2.3.0

Breaking Changes
  • None.
Enhancements
  • Support Android 15 page size 16 KB. (Issue #​1787 JIRA).
  • Reduce the size of the local transaction log produced by creating objects, improving the performance of insertion-heavy transactions (Core issue realm/realm-core#7734).
  • Performance has been improved for range queries on integers and timestamps. Requires that you use the "BETWEEN" operation in RQL or the Query::between() method when you build the query. (Core issue realm/realm-core#7785)
  • Updated bundled OpenSSL version to 3.3.1 (Core issue realm/realm-core#7947).
  • [Sync] Add support for switching users with App.switchUser(User). (Issue #​1813/RKOTLIN-1115).
  • [Sync] Report the originating error that caused a client reset to occur. (Core issue realm/realm-core#6154).
  • [Sync] It is no longer an error to set a base url for an App with a trailing slash - for example, https://services.cloud.mongodb.com/ instead of https://services.cloud.mongodb.com - before this change that would result in a 404 error from the server (Core issue realm/realm-core#7791).
  • [Sync] On Windows devices Device Sync will additionally look up SSL certificates in the Windows Trusted Root Certification Authorities certificate store when establishing a connection. (Core issue realm/realm-core#7882)
  • [Sync] Role and permissions changes no longer require a client reset to update the local realm. (Core issue realm/realm-core#7440).
  • [Sync] Sync log statements now include the app services connection id in their prefix (e.g Connection[1:<connection id>] Session[1]: log message) to make correlating sync activity to server logs easier during troubleshooting (Core issue realm/realm-core#7849)).
  • [Sync] Improve sync bootstrap performance by reducing the number of table selections in the replication logs for embedded objects (Core issue realm/realm-core#7945).
  • [Sync] Released a read lock which was pinned for the duration of a mutable subscription even after commit. This frees resources earlier, and may improve performance of sync bootstraps where the starting state is large (Core issue realm/realm-core#7946).
  • [Sync] Client reset cycle detection now checks if the previous recovery attempt was made by the same core version, and if not attempts recovery again (Core issue realm/realm-core#7944).
Fixed
  • Via https://github.com/realm/realm-kotlin/pull/1826. Fix compiler crash caused by a change in Kotlin 2.0.20. (Issue #​1825). Thanks @​KitsuneAlex.
  • Comparing a numeric property with an argument list containing a string would throw. (Core issue realm/realm-core#7714, since v2.0.0).
  • After compacting, a file upgrade would be triggered. This could cause loss of data if schema mode is SoftResetFile (Core issue realm/realm-core#7747, since v1.15.0).
  • Encrypted files on Windows had a maximum size of 2GB even on x64 due to internal usage of off_t, which is a 32-bit type on 64-bit Windows (Core issue realm/realm-core#7698).
  • The encryption code no longer behaves differently depending on the system page size, which should entirely eliminate a recurring source of bugs related to copying encrypted Realm files between platforms with different page sizes. One known outstanding bug was (RNET-1141), where opening files on a system with a larger page size than the writing system would attempt to read sections of the file which had never been written to (Core issue realm/realm-core#7698).
  • There were several complicated scenarios which could result in stale reads from encrypted files in multiprocess scenarios. These were very difficult to hit and would typically lead to a crash, either due to an assertion failure or DecryptionFailure being thrown (Core issue realm/realm-core#7698, since v1.8.0).
  • Encrypted files have some benign data races where we can memcpy a block of memory while another thread is writing to a limited range of it. It is logically impossible to ever read from that range when this happens, but Thread Sanitizer quite reasonably complains about this. We now perform a slower operations when running with TSan which avoids this benign race (Core issue realm/realm-core#7698).
  • Tokenizing strings for full-text search could pass values outside the range [-1, 255] to isspace(), which is undefined behavior (Core issue realm/realm-core#7698, since the introduction of FTS).
  • Clearing a List of RealmAnys in an upgraded file would lead to an assertion failing (Core issue realm/realm-core#7771, since v1.15.0)
  • You could get unexpected merge results when assigning to a nested collection (Core issue realm/realm-core#7809, since v1.15.0)
  • Fixed removing backlinks from the wrong objects if the link came from a nested list, nested dictionary, top-level dictionary, or list of mixed, and the source table had more than 256 objects. This could manifest as array_backlink.cpp:112: Assertion failed: int64_t(value >> 1) == key.value when removing an object. (Core issue realm/realm-core#7594, since Core v11 for dictionaries)
  • Fixed the collapse/rejoin of clusters which contained nested collections with links. This could manifest as array.cpp:319: Array::move() Assertion failed: begin <= end [2, 1] when removing an object. (Core issue realm/realm-core#7839, since the introduction of nested collections in v1.15.0)
  • Fixed an "invalid column key" exception when using a RQL "BETWEEN" query on an int or timestamp property across links (Core issue realm/realm-core#7935, since v2.0.0)
  • [Sync] Platform networking was not enabled even if setting AppConfiguration.Builder.usePlatformNetworking. (Issue #​1811/RKOTLIN-1114).
  • [Sync] Fix some client resets (such as migrating to flexible sync) potentially failing with AutoClientResetFailed if a new client reset condition (such as rolling back a flexible sync migration) occurred before the first one completed. (Core issue realm/realm-core#7542, since v1.9.0)
  • [Sync] Fixed a change of mode from Strong to All when removing links from an embedded object that links to a tombstone. This affects sync apps that use embedded objects which have a Lst<Mixed> that contains a link to another top level object which has been deleted by another sync client (creating a tombstone locally). In this particular case, the switch would cause any remaining link removals to recursively delete the destination object if there were no other links to it. (Core issue realm/realm-core#7828, since v1.15.0)
  • [Sync] SyncSession.uploadAllLocalChanges was inconsistent in how it handled commits which did not produce any changesets to upload. Previously it would sometimes complete immediately if all commits waiting to be uploaded were empty, and at other times it would wait for a server roundtrip. It will now always complete immediately. (Core issue realm/realm-core#7796).
  • [Sync] Sync client can crash if a session is resumed while the session is being suspended. (Core issue realm/realm-core#7860, since v1.0.0)
  • [Sync] When a sync session is interrupted by a disconnect or restart while downloading a bootstrap, stale data from the previous bootstrap may be included when the session reconnects and downloads the bootstrap. This can lead to objects stored in the database that do not match the actual state of the server and potentially leading to compensating writes. (Core issue realm/realm-core#7827, since v1.0.0).
  • [Sync] App subscription callback was getting fired before the user profile was retrieved on login, leading to an empty user profile when using the callback. (Core issue realm/realm-core#7889, since v2.0.0).
  • [Sync] Fixed conflict resolution bug related to ArrayErase and Clear instructions, which could sometimes cause an "Invalid prior_size" exception to prevent synchronization (Core issue realm/realm-core#7893, since v2.0.0).
  • [Sync] Fixed bug which would prevent eventual consistency during conflict resolution. Affected clients would experience data divergence and potentially consistency errors as a result (Core issue realm/realm-core#7955, since v2.0.0).
  • [Sync] Fixed issues loading the native Realm libraries on Linux ARMv7 systems when they linked against our bundled OpenSSL resulting in errors like unexpected reloc type 0x03 (Core issue realm/realm-core#7947, since Realm Core v14.1.0).
Compatibility
  • File format: Generates Realms with file format v24 (reads and upgrades file format v10 or later).
  • Realm Studio 15.0.0 or above is required to open Realms created by this version.
  • This release is compatible with the following Kotlin releases:
  • Minimum Kbson 0.4.0.
  • Minimum Gradle version: 7.2.
  • Minimum Android Gradle Plugin version: 7.1.3.
  • Minimum Android SDK: 16.
  • Minimum R8: 8.0.34.
Internal
  • Updated to Realm Core 14.12.0 commit c2552e1.
  • Updated to Sync protocol version 14 to support server intiated bootstraps and role change updates without a client reset. (Core issue realm/realm-core#7440).

v2.1.0

Breaking Changes
  • None.
Enhancements
  • Avoid exporting Core's symbols so we can statically build the Kotlin SDK with other SDKs like Swift in the same project. (Issue JIRA).
  • Improved mechanism for unpacking of JVM native libs suitable for local development. (Issue #​1715 JIRA).
  • [Sync] Add SyncException.isFatal to signal fatal unrecoverable exceptions. (Issue #​1767 RKOTLIN-1096).
Fixed
Compatibility
  • File format: Generates Realms with file format v24 (reads and upgrades file format v10 or later).
  • Realm Studio 15.0.0 or above is required to open Realms created by this version.
  • This release is compatible with the following Kotlin releases:
  • Minimum Kbson 0.4.0.
  • Minimum Gradle version: 7.2.
  • Minimum Android Gradle Plugin version: 7.1.3.
  • Minimum Android SDK: 16.
  • Minimum R8: 8.0.34.
Internal
  • Reworked test app initializer framework.

v2.0.0

[!NOTE]
This release will bump the Realm file format 24. Opening a file with an older format will automatically upgrade it from file format v10. If you want to upgrade from an earlier file format version you will have to use Realm Kotlin v1.13.1 or earlier. Downgrading to a previous file format is not possible.

Breaking changes
  • Removed property RealmLog.level. Log levels can be set with RealmLog.setLevel. (Issue #​1691 JIRA)
  • Removed LogConfiguration. Log levels and custom loggers can be set with RealmLog. (Issue #​1691 JIRA)
  • Removed deprecated io.realm.kotlin.types.ObjectId. Use org.mongodb.kbson.BsonObjectId or its type alias org.mongodb.kbson.ObjectId instead. (Issue #​1749 JIRA)
  • Removed deprecated RealmClass.isEmbedded. Class embeddeness can be check with RealmClassKind.EMBEDDED. (Issue #​1753 JIRA)
  • Some authentication related operations will no longer throw specialized InvalidCredentialsException and CredentialsCannotBeLinkedException but the more general AuthException and ServiceException. (Issue #​1763/RKOTLIN-1091)
  • [Sync] Removed deprecated methods User.identity and User.provider, user identities can be accessed with the already existing User.identities. (Issue #​1751 JIRA)
  • [Sync] App.allUsers does no longer return a map, but only a list of users known locally. (Issue #​1751 JIRA)
  • [Sync] Removed deprecated DiscardUnsyncedChangesStrategy.onError. (Issue #​1755 JIRA)
  • [Sync] Sync progress notifications now reports an estimate ranged from 0.0 to 1.0 with Progress.estimate instead of transferredBytes and totalBytes. (Issue #​1744/RKOTLIN-1079).
Enhancements
  • Support for RealmLists and RealmDictionaries in RealmAny. (Issue #​1434)
  • Optimized RealmList.indexOf() and RealmList.contains() using Core implementation of operations instead of iterating elements and comparing them in Kotlin. (Issue #​1625 RKOTLIN-995).
  • Add support for filtering logs by category. (Issue #​1691 JIRA)
  • [Sync] Add Mongo Client API to access Atlas App Service collections. It can be accessed through User.mongoClient. (Issue #​972/RKOTLIN-612)
  • [Sync] Sync progress notifications is now also supported for flexible sync configurations. (Issue #​1744 RKOTLIN-1079).
Fixed
  • Inserting the same typed link to the same key in a dictionary more than once would incorrectly create multiple backlinks to the object. This did not appear to cause any crashes later, but would have affecting explicit backlink count queries (eg: ...@&#8203;links.@&#8203;count) and possibly notifications (Core Issue realm/realm-core#7676 since v1.16.0).
  • [Sync] Automatic client reset recovery would crash when recovering AddInteger instructions on a Mixed property if its type was changed to non-integer (Core issue realm/realm-core#7683, since v0.11.0).
  • [Sync] Typos [SubscriptionSetState.SUPERSEDED], [SyncTimeoutOptions.pingKeepalivePeriod] and [SyncTimeoutOptions.pongKeepalivePeriod]. (Issue #​1754
Compatibility
  • File format: Generates Realms with file format v24 (reads and upgrades file format v10 or later).
  • Realm Studio 15.0.0 or above is required to open Realms created by this version.
  • This release is compatible with the following Kotlin releases:
  • Minimum Kbson 0.4.0.
  • Minimum Gradle version: 7.2.
  • Minimum Android Gradle Plugin version: 7.1.3.
  • Minimum Android SDK: 16.
  • Minimum R8: 8.3.37.
Internal

Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/major-realm branch 2 times, most recently from 13c39e3 to 9de88da Compare September 16, 2024 13:32
@renovate renovate bot changed the title Update realm to v2 (major) Update realm (major) Oct 3, 2024
@renovate renovate bot changed the title Update realm (major) Update realm to v3 (major) Oct 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0 participants