Awesome Rust has a "changelog" section under all projects. You can find it next to the "Repo" button in the header. There are two features that make it unique.

  1. It is an aggregation of parsed "CHANGELOG.md" files and releases information from Github. This way, it is easier to see all changes in a single place and a uniform style.
  2. All changelogs are "emojified". This helps with identifying each change easier. Emojification is achieved by parsing each line and applying a specific emoji based on the first word or some other tokens.

The combination of the above two makes package changelogs on Awesome Rust unique.

As you know, an example is worth a 1,000 words ๐Ÿš€

Changelog examples

  • Realm 10.28.4 (August 03, 2022)

    โœจ Enhancements

    • โž• Add support for building arm64 watchOS when installing Realm via CocoaPods.
    • โฌ‡๏ธ Reduce the amount of virtual address space used (Core #5645).

    ๐Ÿ›  Fixed

    • ๐Ÿ›  Fix some warnings when building with Xcode 14 (Core #5577).
    • ๐Ÿ›  Fix compilation failures on watchOS platforms which do not support thread-local storage. (#7694, #7695 since v10.21.1)
    • ๐Ÿ›  Fix a data race when committing a transaction while multiple threads are waiting to begin write transactions. This appears to not have caused any functional problems.
    • ๐Ÿ›  Fix a data race when writing audit events which could occur if the sync client thread was busy with other work when the event Realm was opened.
    • ๐Ÿ›  Fix some cases of running out of virtual address space (seen/reported as mmap failures) (Core #5645).
    • Audit event scopes containing only write events and no read events would occasionally throw a BadVersion exception when a write transaction was committed (since v10.26.0).
    • The client reset callbacks for the DiscardLocal mode would be passed invalid Realm instances if the callback was invoked at a point where the Realm was not otherwise open. (Core #5654, since the introduction of DiscardLocal reset mode in v10.25.0)

    Compatibility

    • Realm Studio: 11.0.0 or later.
    • ๐Ÿš€ APIs are backwards compatible with all previous releases in the 10.x.y series.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 13.4.1.
    • CocoaPods: 1.10 or later.
    • Xcode: 13.1-14 beta 4.

    Internal

    • โฌ†๏ธ Upgraded realm-core from 12.3.0 to 12.4.0.
  • GradientLoadingBar 2.3.1 (October 05, 2022)

    ๐Ÿ›  Fixed

    • Fixed incorrect layout on NotchGradientLoadingBar when using "iPhone 11 Pro" and "iPhone 11 Pro Max" (#029)
  • Realm 10.25.0 (March 29, 2022)

    ๐Ÿ”€ Synchronized Realm files written by this version cannot be opened by older ๐Ÿ”– versions of Realm. Existing files will be automatically upgraded when opened.

    ๐Ÿ”€ Non-synchronized Realm files remain backwards-compatible.

    โœจ Enhancements

    • โž• Add ability to use Swift Query syntax in @ObservedResults, which allows you to filter results using the where parameter.
    • โž• Add ability to use MutableSet with StateRealmObject in SwiftUI.
    • ๐Ÿ— Async/Await extensions are now compatible with iOS 13 and above when building with Xcode 13.3.
    • ๐Ÿ”€ Sync changesets waiting to be uploaded to the server are now compressed, reducing the disk space needed when large write transactions are performed while offline or limited in bandwidth.(Core #5260).
    • โž• Added new SyncConfiguration.clientResetMode and RLMSyncConfiguration.clientResetMode properties.
      • The values of these properties will dictate client behavior in the event of a client reset.
      • See below for information on ClientResetMode values.
      • clientResetMode defaults to .manual if not set otherwise.
    • โž• Added new ClientResetMode and RLMClientResetMode enums.
      • These enums represent possible client reset behavior for SyncConfiguration.clientResetMode and RLMSyncConfiguration.clientResetMode, respectively.
      • .manual and RLMClientResetModeManual
      • The local copy of the Realm is copied into a recovery directory for safekeeping, and then deleted from the original location. The next time the Realm for that partition value is opened, the Realm will automatically be re-downloaded from MongoDB Realm, and can be used as normal.
      • Data written to the Realm after the local copy of the Realm diverged from the backup remote copy will be present in the local recovery copy of the Realm file. The re-downloaded Realm will initially contain only the data present at the time the Realm was backed up on the server.
      • rlmSync_clientResetBackedUpRealmPath and SyncError.clientResetInfo() are used for accessing the recovery directory.
      • .discardLocal and RLMClientResetDiscardLocal
      • All unsynchronized local changes are automatically discarded and the local state is automatically reverted to the most recent state from the server. Unsynchronized changes can then be recovered in a post-client-reset callback block (See changelog below for more details).
      • If RLMClientResetModeDiscardLocal is enabled but the client reset operation is unable to complete then the client reset process reverts to manual mode.
      • The realm's underlying object accessors remain bound so the UI may be updated in a non-disruptive way.
    • โž• Added support for client reset notification blocks for .discardLocal and RLMClientResetDiscardLocal
      • RealmSwift implementation: discardLocal(((Realm) -> Void)? = nil, ((Realm, Realm) -> Void)? = nil)
      • RealmSwift client reset blocks are set when initializing the user configuration swift var configuration = user.configuration(partitionValue: "myPartition", clientResetMode: .discardLocal(beforeClientResetBlock, afterClientResetBlock))
      • The before client reset block -- ((Realm) -> Void)? = nil -- is executed prior to a client reset. Possible usage includes: swift let beforeClientResetBlock: (Realm) -> Void = { beforeRealm in var recoveryConfig = Realm.Configuration() recoveryConfig.fileURL = myRecoveryPath do { beforeRealm.writeCopy(configuration: recoveryConfig) /* The copied realm could be used later for recovery, debugging, reporting, etc. */ } catch { /* handle error */ } }
      • The after client reset block -- ((Realm, Realm) -> Void)? = nil) -- is executed after a client reset. Possible usage includes: Swift let afterClientResetBlock: (Realm, Realm) -> Void = { before, after in /* This block could be used to add custom recovery logic, back-up a realm file, send reporting, etc. */ for object in before.objects(myClass.self) { let res = after.objects(myClass.self) if (res.filter("primaryKey == %@", object.primaryKey).first != nil) { /* ...custom recovery logic... */ } else { /* ...custom recovery logic... */ } }
      • Realm Obj-c implementation: Both before and after client reset callbacks exist as properties on RLMSyncConfiguration and are set at initialization. objective-c RLMRealmConfiguration *config = [user configurationWithPartitionValue:partitionValue clientResetMode:RLMClientResetModeDiscardLocal notifyBeforeReset:beforeBlock notifyAfterReset:afterBlock]; where beforeBlock is of type RLMClientResetBeforeBlock. And afterBlock is of type RLMClientResetAfterBlock.

    ๐Ÿ’ฅ Breaking Changes

    • ๐Ÿ— Xcode 13.2 is no longer supported when building with Async/Await functions. Use Xcode 13.3 to build with Async/Await functionality.

    ๐Ÿ›  Fixed

    • โž• Adding a Realm Object to a ObservedResults or a collections using StateRealmObject that is managed by the same Realm would throw if the Object was frozen and not thawed before hand.
    • ๐Ÿ”ง Setting a Realm Configuration for @ObservedResults using it's initializer would be overrode by the Realm Configuration stored in .environment(\.realmConfiguration, ...) if they did not match (Cocoa #7463, since v10.6.0).
    • ๐Ÿ›  Fix searchable component filter overriding the initial filter on @ObservedResults, (since v10.23.0).
    • Comparing Results, LinkingObjects or AnyRealmCollection when using Realm via XCFramework would result in compile time errors (Cocoa #7615, since v10.21.0)
    • ๐ŸŽ Opening an encrypted Realm while the keychain is locked on macOS would crash (#7438).
    • โšก๏ธ Updating subscriptions while refreshing the access token would crash (Core #5343, since v10.22.0)
    • ๐Ÿ›  Fix several race conditions in SyncSession related to setting customRequestHeaders while using the SyncSession on a different thread.

    Compatibility

    • Realm Studio: 11.0.0 or later.
    • ๐Ÿš€ APIs are backwards compatible with all previous releases in the 10.x.y series.
    • ๐Ÿš€ Carthage release for Swift is built with Xcode 13.3.
    • CocoaPods: 1.10 or later.
    • Xcode: 12.4-13.3.

    Internal

    • โฌ†๏ธ Upgraded realm-core from v11.12.0 to v11.13.0