All Versions
285
Latest Version
Avg Release Cycle
11 days
Latest Release
504 days ago

Changelog History
Page 11

  • v5.0.2 Changes

    June 02, 2020

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix errSecDuplicateItem (-25299) errors when opening a synchronized Realm when upgrading from pre-5.0 versions of Realm. (#6538, #6494, since 5.0.0).
    • ๐Ÿ‘ Opening Realms stored on filesystems which do not support preallocation (such as ExFAT) would give "Operation not supported" exceptions. (#6508, since 3.2.0).
    • โฌ†๏ธ 'NoSuchTable' exceptions would sometimes be thrown after upgrading a Relam file to the v10 format. (Core #3701, since 5.0.0)
    • โฌ†๏ธ If the upgrade process was interrupted/killed for various reasons, the following run could stop with some assertions failing. No instances of this happening were reported to us. (Since 5.0.0).
    • Queries filtering a List where the query was on an indexed property over a link would sometimes give incomplete results. (#6540, since 4.1.0 but more common since 5.0.0)
    • Opening a file in read-only mode would attempt to make a spurious write to the file, causing errors if the file was in read-only storage (since 5.0.0).

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
    • Realm Object Server: 3.21.0 or later.
    • Realm Studio: 3.11 or later.
    • ๐Ÿš€ APIs are backwards compatible with all previous releases in the 5.x.y series.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 11.5.

    Internal

    • โฌ†๏ธ Upgraded realm-core from v6.0.4 to v6.0.6
    • โฌ†๏ธ Upgraded realm-sync from v5.0.3 to v5.0.5
  • v5.0.1 Changes

    May 27, 2020

    โœจ Enhancements

    • โž• Add prebuilt binary for Xcode 11.5 to the release package.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix linker error when building a xcframework for Catalyst. (#6511, since 4.3.1).
    • ๐Ÿ›  Fix building for iOS devices when using Swift Package Manager (#6522, since 5.0.0).
    • List and RealmOptional properties on frozen objects were not initialized correctly and would always report nil or an empty list. (#6527, since 5.0.0).

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
    • Realm Object Server: 3.21.0 or later.
    • Realm Studio: 3.11 or later.
    • ๐Ÿš€ APIs are backwards compatible with all previous releases in the 5.x.y series.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 11.5.
  • v5.0.0 Changes

    May 15, 2020

    NOTE: This version bumps the Realm file format to version 10. It is not โฌ‡๏ธ possible to downgrade version 9 or earlier. Files created with older versions โฌ†๏ธ of Realm will be automatically upgraded. Only ๐Ÿš€ Studio 3.11 or later will be able to open the new file format.

    โœจ Enhancements

    • Storing large binary blobs in Realm files no longer forces the file to be at least 8x the size of the largest blob.
    • โฌ‡๏ธ Reduce the size of transaction logs stored inside the Realm file, reducing file size growth from large transactions.
    • โž• Add support for frozen objects. Realm, Results, List and Object now have freeze() methods which return a frozen copy of the object. These objects behave similarly to creating unmanaged deep copies of the source objects. They can be read from any thread and do not update when writes are made to the Realm, but creating frozen objects does not actually copy data out of the Realm and so can be much faster and use less memory. Frozen objects cannot be mutated or observed for changes (as they never change). (PR #6427).
    • โž• Add the isFrozen property to Realm, Results, List and Object.
    • โž• Add Realm.Configuration.maxNumberOfActiveVersions. Each time a write transaction is performed, a new version is created inside the Realm, and then any versions which are no longer in use are cleaned up. If too many versions are kept alive while performing writes (either due to a background thread performing a long operation that doesn't let the Realm on that thread refresh, or due to holding onto frozen versions for a long time) the Realm file will grow in size, potentially to the point where it is too large to be opened. Setting this configuration option will make write transactions which would cause the live version count to exceed the limit to instead fail.
    • โž• Add support for queue-confined Realms. Rather than being bound to a specific thread, queue-confined Realms are bound to a serial dispatch queue and can be used within blocks dispatched to that queue regardless of what thread they happen to run on. In addition, change notifications will be delivered to that queue rather than the thread's run loop. (PR #6478).
    • โž• Add an option to deliver object and collection notifications to a specific serial queue rather than the current thread. (PR #6478).
    • โž• Add Combine publishers for Realm types. Realm collections have a .publisher property which publishes the collection each time it changes, and a .changesetPublisher which publishes a RealmCollectionChange each time the collection changes. Corresponding publishers for Realm Objects can be obtained with the publisher() and changesetPublisher() global functions.
    • Extend Combine publishers which output Realm types with a .freeze() function which will make the publisher instead output frozen objects.
    • String primary keys no longer require a separate index, improving insertion and deletion performance without hurting lookup performance.
    • โฌ‡๏ธ Reduce the encrypted page reclaimer's impact on battery life when encryption is used. (Core #3461).

    ๐Ÿ›  Fixed

    • ๐Ÿ”€ The uploaded bytes in sync progress notifications was sometimes incorrect and wouldn't exactly equal the uploadable bytes when the uploaded completed.
    • ๐Ÿš€ macOS binaries were built with the incorrect deployment target (10.14 rather than 10.9), resulting in linker warnings. (#6299, since 3.18.0).
    • An internal datastructure for List properties could be double-deleted if the last reference was released from a thread other than the one which the List was created on at the wrong time. This would typically manifest as "pthread_mutex_destroy() failed", but could also result in other kinds of crashes. (#6333).
    • Sorting on float or double properties containing NaN values had inconsistent results and would sometimes crash due to out-of-bounds memory accesses. (#6357).

    ๐Ÿ’ฅ Breaking Changes

    • The ObjectChange type in Swift is now generic and includes a reference to the object which changed. When using observe(on:) to receive notifications on a dispatch queue, the object will be confined to that queue.
    • The Realm instance passed in the callback to asyncOpen() is now confined to the callback queue passed to asyncOpen() rather than the thread which the callback happens to be called on. This means that the Realm instance may be stored and reused in further blocks dispatched to that queue, but the queue must now be a serial queue.
    • Files containing Date properties written by version of Realm prior to 1.0 can no longer be opened.
    • Files containing Any properties can no longer be opened. This property type was never documented and was deprecated in 1.0.
    • Deleting objects now preserves the order of objects reported by unsorted Results rather than performing a swap operation before the delete. Note that it is still not safe to assume that the order of objects in an unsorted Results is the order that the objects were created in.
    • ๐Ÿš€ The minimum supported deployment target for iOS when using Swift Package Manager to install Realm is now iOS 11.

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
    • Realm Object Server: 3.21.0 or later.
    • Realm Studio: 3.11 or later.
    • ๐Ÿš€ APIs are backwards compatible with all previous releases in the 5.x.y series.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 11.4.1.

    Internal

    • โฌ†๏ธ Upgraded realm-core from v5.23.8 to v6.0.4
    • โฌ†๏ธ Upgraded realm-sync from v4.9.5 to v5.0.3
  • v5.0.0-beta.6 Changes

    May 10, 2020

    โœจ Enhancements

    • โž• Add support for queue-confined Realms. Rather than being bound to a specific
      thread, queue-confined Realms are bound to a serial dispatch queue and can be
      ๐Ÿ‘‰ used within blocks dispatched to that queue regardless of what thread they
      happen to run on. In addition, change notifications will be delivered to that
      queue rather than the thread's run loop. (PR #6478).
    • โž• Add an option to deliver object and collection notifications to a specific
      serial queue rather than the current thread. (PR #6478).

    ๐Ÿ›  Fixed

    • ๐Ÿ”€ The uploaded bytes in sync progress notifications was sometimes incorrect and
      wouldn't exactly equal the uploadable bytes when the uploaded completed.

    ๐Ÿ’ฅ Breaking Changes

    • The Realm instance passed in the callback to asyncOpen() is now confined to
      the callback queue passed to asyncOpen() rather than the thread which the
      callback happens to be called on. This means that the Realm instance may be
      stored and reused in further blocks dispatched to that queue, but the queue
      must now be a serial queue.

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
    • Realm Object Server: 3.21.0 or later.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 11.4.1.

    Internal

    • โฌ†๏ธ Upgraded realm-core from v6.0.3 to v6.0.4
    • โฌ†๏ธ Upgraded realm-sync from v5.0.1 to v5.0.3
  • v5.0.0-beta.5

    May 10, 2020
  • v5.0.0-beta.4

    May 09, 2020
  • v5.0.0-beta.3 Changes

    February 27, 2020

    Based on 4.3.2 and also includes all changes since 4.3.0.

    โœจ Enhancements

    • โž• Add support for frozen objects. Realm, Results, List and Object now have freeze() methods which return a frozen copy of the object. These objects behave similarly to creating unmanaged deep copies of the source objects. They can be read from any thread and do not update when writes are made to the Realm, but creating frozen objects does not actually copy data out of the Realm and so can be much faster and use less memory. Frozen objects cannot be mutated or observed for changes (as they never change). (PR #6427).
    • โž• Add the isFrozen property to Realm, Results, List and Object.
    • โž• Add Realm.Configuration.maxNumberOfActiveVersions. Each time a write transaction is performed, a new version is created inside the Realm, and then any versions which are no longer in use are cleaned up. If too many versions are kept alive while performing writes (either due to a background thread performing a long operation that doesn't let the Realm on that thread refresh, or due to holding onto frozen versions for a long time) the Realm file will grow in size, potentially to the point where it is too large to be opened. Setting this configuration option will make write transactions which would cause the live version count to exceed the limit to instead fail.

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
    • Realm Object Server: 3.21.0 or later.
    • ๐Ÿš€ APIs are backwards compatible with all previous releases in the 5.x.y series.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 11.3.

    Internal

    • โฌ†๏ธ Upgraded realm-core from v6.0.0-beta.3 to v6.0.3
    • โฌ†๏ธ Upgraded realm-sync from v5.0.0-beta.2 to v5.0.1
  • v5.0.0-beta.2 Changes

    January 14, 2020

    Based on 4.3.0 and also includes all changes since 4.1.1.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix compilation when using CocoaPods targeting iOS versions older than 11 (since 5.0.0-alpha).

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades all previous formats)
    • Realm Object Server: 3.21.0 or later.
    • ๐Ÿš€ APIs are backwards compatible with all previous releases in the 5.x.y series.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 11.3.

    Internal

    • โฌ†๏ธ Upgraded realm-core from v6.0.0-beta.2 to v6.0.0-beta.3
    • โฌ†๏ธ Upgraded realm-sync from v5.0.0-beta.1 to v5.0.0-beta.2
  • v5.0.0-beta.1 Changes

    December 14, 2019

    โฌ‡๏ธ NOTE: This version bumps the Realm file format to version 10. It is not possible to downgrade version 9 or earlier. Files created with older versions of Realm will be automatically upgraded. Be sure to back up any data you care about before opening it with this version of Realm as it is still in beta.

    โœจ Enhancements

    • ๐ŸŽ String primary keys no longer require a separate index, improving insertion and deletion performance without hurting lookup performance.
    • โฌ‡๏ธ Reduce the encrypted page reclaimer's impact on battery life when encryption is used. (Core #3461).
    • Storing large binary blobs in Realm files no longer forces the file to be at least 8x the size of the largest blob.
    • โฌ‡๏ธ Reduce the size of transaction logs stored inside the Realm file, reducing file size growth from large transactions.

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix an error when a table-backed Results was accessed immediately after deleting the object previously at the index being accessed (since 5.0.0-alpha.1).
    • ๐Ÿš€ macOS binaries were built with the incorrect deployment target (10.14 rather than 10.9), resulting in linker warnings. (#6299, since 3.18.0).
    • An internal datastructure for List properties could be double-deleted if the last reference was released from a thread other than the one which the List was created on at the wrong time. This would typically manifest as "pthread_mutex_destroy() failed", but could also result in other kinds of crashes. (#6333).
    • Sorting on float or double properties containing NaN values had inconsistent results and would sometimes crash due to out-of-bounds memory accesses. (#6357).

    ๐Ÿ’ฅ Breaking Changes

    • Files containing Date properties written by version of Realm prior to 1.0 can no longer be opened.
    • ๐Ÿ—„ Files containing Any properties can no longer be opened. This property type was never documented and was deprecated in 1.0.

    Known Issues

    • Changing which property of an object is the primary key in a migration will break incoming links to objects of that type.
    • Changing the primary key of an object with Data properties in a migration will crash.
    • Results notifications after deleting all objects of a type (i.e. realm.delete(realm.objects(MyType.self)) with no filter) will sometimes be incorrect.

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades v9)
    • Realm Object Server: 3.21.0 or later.
    • ๐Ÿš€ APIs are backwards compatible with all previous releases in the 5.x.y series.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 11.3.

    Internal

    • โฌ†๏ธ Upgraded realm-core from v6.0.0-alpha.24 to v6.0.0-beta.2
    • โฌ†๏ธ Upgraded realm-sync from 4.7.1-core6.5 to v5.0.0-beta.1
  • v5.0.0-alpha.1 Changes

    November 18, 2019

    Based on 4.1.0.

    โœจ Enhancements

    • โž• Add -[RLMRealm fileExistsForConfiguration:]/Realm.fileExists(for:), which checks if a local Realm file exists for the given configuration.
    • โž• Add -[RLMRealm deleteFilesForConfiguration:]/Realm.deleteFiles(for:) to delete the Realm file and all auxiliary files for the given configuration.
    • Storing large binary blobs in Realm files no longer forces the file to be at least 8x the size of the largest blob.
    • โฌ‡๏ธ Reduce the size of transaction logs stored inside the Realm file, reducing file size growth from large transactions.

    NOTE: This version bumps the Realm file format to version 10. It is not โฌ‡๏ธ possible to downgrade version 9 or earlier. Files created with older versions โฌ†๏ธ of Realm will be automatically upgraded. This automatic upgrade process is not โœ… yet well tested. Do not open Realm files with data you care about with this alpha version.

    ๐Ÿ’ฅ Breaking Changes

    • Files containing Date properties written by version of Realm prior to 1.0 can no longer be opened.
    • Files containing Any properties can no longer be opened. This property type was never documented and was deprecated in 1.0.

    Compatibility

    • โฌ†๏ธ File format: Generates Realms with format v10 (Reads and upgrades v9)
    • Realm Object Server: 3.21.0 or later.
    • ๐Ÿš€ APIs are backwards compatible with all previous releases in the 4.x.y series.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 11.3.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 11.2.1.

    Internal

    • โฌ†๏ธ Upgraded realm-core from 5.23.6 to v6.0.0-alpha.24.
    • โฌ†๏ธ Upgraded realm-sync from 4.8.2 to 4.7.1-core6.5.