turecross321 / SoundShapesServer

A custom server for Sound Shapes
https://sound.ture.fish
GNU Affero General Public License v3.0
5 stars 1 forks source link

Bump Realm from 11.7.0 to 12.0.0 #230

Closed dependabot[bot] closed 5 months ago

dependabot[bot] commented 5 months ago

Bumps Realm from 11.7.0 to 12.0.0.

Release notes

Sourced from Realm's releases.

12.0.0 (2024-04-17)

File format version bumped. Old files will be automatically upgraded but cannot be downgraded and opened with older versions of the .NET SDK.

Breaking Changes

  • Added automatic serialization and deserialization of Realm classes when using methods on MongoClient.Collection, without the need to annotate classes with MongoDB.Bsonattributes. This feature required to change the default serialization for various types (including DateTimeOffset). If you prefer to use the previous serialization, you need to call Realm.SetLegacySerialization before any kind of serialization is done, otherwise it may not work as epxected. #3459
  • SyncProgress.TransferredBytes and SyncProgress.TransferableBytes have been removed in favour of SyncProgress.ProgressEstimate, a double value between 0.0 and 1.0 that expresses the percentage estimate of the current progress. (Issue #3478)
  • Support for upgrading from Realm files produced by RealmCore v5.23.9 (Realm .NET v5.0.1) or earlier is no longer supported. (Core 14.0.0)
  • String and byte[] are now strongly typed for comparisons and queries. This change is especially relevant when querying for a string constant on a RealmValue property, as now only strings will be returned. If searching for binary data is desired, then that type must be specified by the constant. In RQL (.Filter()) the new way to specify a binary constant is to use RealmValueProp = bin('xyz') or RealmValueProp = binary('xyz'). (Core 14.0.0)
  • Sorting order of strings has changed to use standard unicode codepoint order instead of grouping similar english letters together. A noticeable change will be from "aAbBzZ" to "ABZabz". (Core 14.0.0)
  • In RQL (Filter()), if you want to query using @type operation, you must use objectlink to match links to objects. object is reserved for dictionary types. (Core 14.0.0)
  • Opening realm with file format 23 or lower (Realm .NET versions earlier than 12.0.0) in read-only mode will crash. (Core 14.0.0)

Enhancements

  • Reduced memory usage of RealmValue. (PR #3441)

  • Add support for passing a key paths collection (KeyPathsCollection) when using IRealmCollection.SubscribeForNotifications. Passing a KeyPathsCollection allows to specify which changes in properties should raise a notification.

    A KeyPathsCollection can be obtained by:

    • building it explicitly by using the methods KeyPathsCollection.Of or KeyPathsCollection.Of<T>;
    • building it implicitly with the conversion from a List or array of KeyPath or strings;
    • getting one of the static values Full and Shallow for full and shallow notifications respectively.

    A KeyPath can be obtained by implicit conversion from a string or built from an expression using the KeyPath.ForExpression<T> method.

    For example:

    var query = realm.All<Person>();
    

    KeyPath kp1 = "Email"; KeyPath kp2 = KeyPath.ForExpression<Person>(p => p.Name);

    KeyPathsCollection kpc;

    //Equivalent declarations kpc = KeyPathsCollection.Of("Email", "Name"); kpc = KeyPathsCollection.Of<Person>(p => p.Email, p => p.Name); kpc = new List<KeyPath> {"Email", "Name"}; kpc = new List<KeyPath> {kp1, kp2};

    query.SubscribeForNotifications(NotificationCallback, kpc);

    (PR #3501 )

  • Added the MongoClient.GetCollection<T> method to get a collection of documents from MongoDB that can be deserialized in Realm objects. This methods works the same as MongoClient.GetDatabase(dbName).GetCollection(collectionName), but the database name and collection name are automatically derived from the Realm object class. #3414

  • Improved performance of RQL (.Filter()) queries on a non-linked string property using: >, >=, <, <=, operators and fixed behaviour that a null string should be evaulated as less than everything, previously nulls were not matched. (Core 13.27.0)

  • Updated bundled OpenSSL version to 3.2.0. (Core 13.27.0)

  • Storage of Decimal128 properties has been optimised so that the individual values will take up 0 bits (if all nulls), 32 bits, 64 bits or 128 bits depending on what is needed. (Core 14.0.0)

  • Add support for collection indexes in RQL (Filter()) queries. For example:

    var people = realm.All<Person>();
    

... (truncated)

Changelog

Sourced from Realm's changelog.

12.0.0 (2024-04-17)

File format version bumped. Old files will be automatically upgraded but cannot be downgraded and opened with older versions of the .NET SDK.

Breaking Changes

  • Added automatic serialization and deserialization of Realm classes when using methods on MongoClient.Collection, without the need to annotate classes with MongoDB.Bsonattributes. This feature required to change the default serialization for various types (including DateTimeOffset). If you prefer to use the previous serialization, you need to call Realm.SetLegacySerialization before any kind of serialization is done, otherwise it may not work as epxected. #3459
  • SyncProgress.TransferredBytes and SyncProgress.TransferableBytes have been removed in favour of SyncProgress.ProgressEstimate, a double value between 0.0 and 1.0 that expresses the percentage estimate of the current progress. (Issue #3478)
  • Support for upgrading from Realm files produced by RealmCore v5.23.9 (Realm .NET v5.0.1) or earlier is no longer supported. (Core 14.0.0)
  • String and byte[] are now strongly typed for comparisons and queries. This change is especially relevant when querying for a string constant on a RealmValue property, as now only strings will be returned. If searching for binary data is desired, then that type must be specified by the constant. In RQL (.Filter()) the new way to specify a binary constant is to use RealmValueProp = bin('xyz') or RealmValueProp = binary('xyz'). (Core 14.0.0)
  • Sorting order of strings has changed to use standard unicode codepoint order instead of grouping similar english letters together. A noticeable change will be from "aAbBzZ" to "ABZabz". (Core 14.0.0)
  • In RQL (Filter()), if you want to query using @type operation, you must use objectlink to match links to objects. object is reserved for dictionary types. (Core 14.0.0)
  • Opening realm with file format 23 or lower (Realm .NET versions earlier than 12.0.0) in read-only mode will crash. (Core 14.0.0)

Enhancements

  • Reduced memory usage of RealmValue. (PR #3441)

  • Add support for passing a key paths collection (KeyPathsCollection) when using IRealmCollection.SubscribeForNotifications. Passing a KeyPathsCollection allows to specify which changes in properties should raise a notification.

    A KeyPathsCollection can be obtained by:

    • building it explicitly by using the methods KeyPathsCollection.Of or KeyPathsCollection.Of<T>;
    • building it implicitly with the conversion from a List or array of KeyPath or strings;
    • getting one of the static values Full and Shallow for full and shallow notifications respectively.

    A KeyPath can be obtained by implicit conversion from a string or built from an expression using the KeyPath.ForExpression<T> method.

    For example:

    var query = realm.All<Person>();
    

    KeyPath kp1 = "Email"; KeyPath kp2 = KeyPath.ForExpression<Person>(p => p.Name);

    KeyPathsCollection kpc;

    //Equivalent declarations kpc = KeyPathsCollection.Of("Email", "Name"); kpc = KeyPathsCollection.Of<Person>(p => p.Email, p => p.Name); kpc = new List<KeyPath> {"Email", "Name"}; kpc = new List<KeyPath> {kp1, kp2};

    query.SubscribeForNotifications(NotificationCallback, kpc);

    (PR #3501 )

  • Added the MongoClient.GetCollection<T> method to get a collection of documents from MongoDB that can be deserialized in Realm objects. This methods works the same as MongoClient.GetDatabase(dbName).GetCollection(collectionName), but the database name and collection name are automatically derived from the Realm object class. #3414

  • Improved performance of RQL (.Filter()) queries on a non-linked string property using: >, >=, <, <=, operators and fixed behaviour that a null string should be evaulated as less than everything, previously nulls were not matched. (Core 13.27.0)

  • Updated bundled OpenSSL version to 3.2.0. (Core 13.27.0)

  • Storage of Decimal128 properties has been optimised so that the individual values will take up 0 bits (if all nulls), 32 bits, 64 bits or 128 bits depending on what is needed. (Core 14.0.0)

  • Add support for collection indexes in RQL (Filter()) queries. For example:

    var people = realm.All<Person>();
    

... (truncated)

Commits


Dependabot compatibility score

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 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)