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

⬆️ Bump realm from 2.1.0 to 2.3.0 #1902

Merged
merged 1 commit into from
Sep 16, 2024

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Sep 16, 2024

Bumps realm from 2.1.0 to 2.3.0.
Updates io.realm.kotlin:library-base from 2.1.0 to 2.3.0

Changelog

Sourced from io.realm.kotlin:library-base's changelog.

2.3.0-SNAPSHOT (YYYY-MM-DD)

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 realm/realm-kotlin#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:
    • Kotlin 2.0.20 and above. Support for experimental K2-compilation with kotlin.experimental.tryK2=true.

... (truncated)

Commits

Updates io.realm.kotlin from 2.1.0 to 2.3.0

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps `realm` from 2.1.0 to 2.3.0.

Updates `io.realm.kotlin:library-base` from 2.1.0 to 2.3.0
- [Changelog](https://github.com/realm/realm-kotlin/blob/main/CHANGELOG.md)
- [Commits](realm/realm-kotlin@v2.1.0...v2.3.0)

Updates `io.realm.kotlin` from 2.1.0 to 2.3.0

---
updated-dependencies:
- dependency-name: io.realm.kotlin:library-base
  dependency-type: direct:production
  update-type: version-update:semver-minor
- dependency-name: io.realm.kotlin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added the Dependencies Pull requests that update a dependency file label Sep 16, 2024
@guiyanakuang guiyanakuang merged commit f0459b9 into main Sep 16, 2024
1 of 2 checks passed
@dependabot dependabot bot deleted the dependabot/gradle/realm-2.3.0 branch September 16, 2024 12:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant