Skip to content

Releases: realm/realm-core

Realm Core v13.18.0

18 Aug 12:20
Compare
Choose a tag to compare

Enhancements

  • Full text search supports searching for prefix only. Eg. "description TEXT 'alex*'" (#6860)
  • Unknown protocol errors received from the baas server will no longer cause the application to crash if a valid error action is also received. Unknown error actions will be treated as an ApplicationBug error action and will cause sync to fail with an error via the sync error handler. PR #6885)

Fixed

  • Made binding a sync::Session exception safe so if a MultipleSyncAgents exception is thrown you can safely tear down the sync client. (PR #6868, since v13.4.1)

Breaking changes

  • The WebSocketObserver interface in the sync SocketProvider API now takes a WebSocketError enum/std::string_view for the websocket_closed_handler() instead of a Status. Implementers of platform networking should make sure all their error handling is expressed in terms of the WebSocketError enum. (PR #6859)
  • Status no longer holds a std::error_code for SystemError's (PR #6869)
  • C API no longer has a special type for sync error codes. Instead sync errors codes are converted to realm_error_t (PR #6869)
  • WebSocket specific error codes are no longer in the ErrorCodes enum or C API. (PR #6869)
  • ProtocolError is no longer a std::error_code enum and is no longer directly exposed by the sync error API (PR #6869)
  • The ClientError enum/std::error_code in the sync client has been removed in favor of a simplified error set using Status/ErrorCodes (PR #6846).
  • SyncError now contains a Status to hold the error information from the sync client instead of a std::error_code/std::string (PR #6824).
  • Remove App::Config::local_app_[name|version] parameters. They were not used by the server and were not needed internally also.
  • C API: return whether or not an error is present from realm_get_async_error() (#6897)

Compatibility

  • Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

Internals

  • Removed some unused files/directories and dogless dependency. (PR #6884)

Realm Core v13.17.2

10 Aug 10:38
Compare
Choose a tag to compare

Fixed

  • Fix failed assertion for unknown app server errors (#6758, since v12.9.0).
  • Running a query on @keys in a Dictionary would throw an exception (#6831, since v13.15.1)
  • Change JSON selialization format back to follow ISO 8601 - and add output of nanoseconds (#6855, since 13.17.0)
  • Testing the size of a collection of links against zero would sometimes fail (sometimes = "difficult to explain"). In particular: (#6850, since v13.15.1)

Compatibility

  • Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

Internals

  • Timestamp objects can now only be created from a system clock timepoint. (#6112)

Realm Core v13.17.1

28 Jul 12:30
Compare
Choose a tag to compare

Enhancements

  • None.

Fixed

  • Rare corruption of files on streaming format (often following compact, convert or copying to a new file). (#6807, since v12.12.0)
  • Trying to search a full-text indexes created as a result of an additive schema change (i.e. applying the differences between the local schema and a synchronized realm's schema) could have resulted in an IllegalOperation error with the error code Column has no fulltext index. (PR #6823, since v13.2.0).
  • Sync progress for DOWNLOAD messages from server state was updated wrongly. This may have resulted in an extra round-trip to the server. (#6827, since v12.9.0)

Breaking changes

  • None.

Compatibility

  • Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

Internals

  • wait_for_upload_completion/wait_for_download_completion internal API was changed to use Status's instead of std::error_code. The SDK-facing was already Status oriented, so this change should only result in better error messages. (PR #6796)
  • Separate local and baas object store tests into separate evergreen tasks and allow custom test specification. (PR #6805)
  • Consolidate object store sync util files into test/object-store/util/sync/ directory. (PR #6789)

Realm Core v13.17.0

14 Jul 13:10
Compare
Choose a tag to compare

Enhancements

  • Sync connection and session reconnect timing/backoff logic has been unified into a single implementation and is now configurable. Previously some errors would cause an hour-long wait before attempting to reconnect, now - by default - the sync client will wait for 1 second before retrying and double the timeout after each subsequent attempt up to 5 minutes, after which a retry will be attempted every 5 minutes. If the cause of the error changes, the backoff will be reset. If the sync client voluntarily disconnects, no backoff will be used. (PR #6526).
  • Add support for the SDK initializing the schema inside a before-client-reset callback (PR #6780).

Fixed

  • Sync errors included the error message twice (PR #6774, since v13.16.0).
  • Fix timestamp representation when serializing to json on different platforms. (#5451).

Breaking changes

  • Deprecate Object::obj() in favour of Object::get_obj() in order to provide better cache efficiency and keep Obj up to date when writes happened after then object instance is obtained.

Compatibility

  • Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

Internals

  • Run baas on remote ubuntu host for evergreen object-store-tests. (PR #6757)

Realm Core v13.16.1

07 Jul 13:56
Compare
Choose a tag to compare

Enhancements

  • None.

Fixed

  • Fix an error during async open and client reset if properties have been added to the schema. This fix applies to PBS to FLX migration if async open is used. (#6707, since v12.3.0)
  • Fixed a double move (undefined behaviour) if an async open resulted in an error. (#6768, since v13.16.0)

Breaking changes

  • None.

Compatibility

  • Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

Internals

  • None.

Realm Core v13.16.0

30 Jun 10:57
Compare
Choose a tag to compare

Enhancements

  • Add visionOS binaries to the Cocoa release package (PR #6746).
  • Added support for running initial subscription callback when opening realm, both for synchronous and asynchronous flows. Sync Config contains subscription_initializer and rerun_init_subscription_on_open in order to setup the subscription callback, and select whether rerun this the first time the file is opened or not. (#5962)

Fixed

  • None.

Breaking changes

  • None.

Compatibility

  • Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

Internals

  • Prebuilt binaries for non-Apple platforms are no longer published as nothing was using them (PR #6746).
  • SystemError exceptions now have a more detailed error message. (#6739)

Realm Core v13.15.2

23 Jun 12:08
Compare
Choose a tag to compare

Enhancements

  • None.

Fixed

  • A GeoBox is now just a shortcut for the equivilent GeoPolygon. This provides consistent query results and error checking. (#6703, since v13.11.0)
  • Fixed several corner cases (eg. around the poles) where invalid points matched a geoWithin query.
  • Disallow full text search index for primary key columns. (#6657, since v13.2.0)
  • Searching for objects in Results would not always find the requested item. This is particularly the case when the C API is used. (#6695, since v10.0.0)

Breaking changes

  • None.

Compatibility

  • Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

Internals

  • Fixed Valgrind error (#6643)

Realm Core v13.15.1

17 Jun 01:41
Compare
Choose a tag to compare

Fixed

  • Querying with object list arguments does not work. (#6688, since v10.3.3)
  • Fix SessionWrapper use-after-free crash when tearing down sessions when using session multiplexing (#6656, since v13.9.3)

Breaking changes

  • None.

Compatibility

  • Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

Realm Core v13.15.0

09 Jun 16:32
Compare
Choose a tag to compare

Enhancements

  • It is now allowed to open old frozen versions with a schema that contains additional classes, but not additional properties. (PR 6693)

Fixed

  • Properties in the frozen before Realm instance in the client reset callbacks may have had properties reordered which could lead to exceptions if accessed. (PR 6693, since v13.11.0)

Breaking changes

  • A new provider called IdentityProviderAPIKey replaces both IdentityProviderUserAPIKey and IdentityProviderServerAPIKey since those two did the same thing. If SDKs wish to keep the old behaviour without requiring users to make code changes, they can adapt both their existing server and user API key providers to use the new core type. (#5914)

Compatibility

  • Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

Internals

  • Prebuilt libraries for Apple platforms are now built with Xcode 14.

Realm Core v13.14.0

02 Jun 11:32
Compare
Choose a tag to compare

Enhancements

  • Support sort/distinct based on values from a dictionary e.g. TRUEPREDICATE SORT(meta['age']) (PR #5311)

Fixed

  • Fix the query parser needs to copy list of arguments and own the memory. (#6674, since v12.5.0)
  • Fixed a potential crash when opening the realm after failing to download a fresh FLX realm during an automatic client reset (#6494, since v12.3.0)

Breaking changes

  • None.

Compatibility

  • Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

Internals

  • Added CMake toolchains for cross-targeting Linux x86_64, armv7, and aarch64. (PR #6559)