Awesome Go 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.
- 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.
- 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 Go 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)
- Fixed incorrect layout on
-
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 thewhere
parameter. - โ Add ability to use
MutableSet
withStateRealmObject
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
andRLMSyncConfiguration.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
andRLMClientResetMode
enums.- These enums represent possible client reset behavior for
SyncConfiguration.clientResetMode
andRLMSyncConfiguration.clientResetMode
, respectively. .manual
andRLMClientResetModeManual
- 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
andSyncError.clientResetInfo()
are used for accessing the recovery directory. .discardLocal
andRLMClientResetDiscardLocal
- 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.
- These enums represent possible client reset behavior for
- โ Added support for client reset notification blocks for
.discardLocal
andRLMClientResetDiscardLocal
- 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];
wherebeforeBlock
is of typeRLMClientResetBeforeBlock
. AndafterBlock
is of typeRLMClientResetAfterBlock
.
- RealmSwift implementation:
๐ฅ 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 usingStateRealmObject
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
orAnyRealmCollection
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 settingcustomRequestHeaders
while using theSyncSession
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
- โ Add ability to use Swift Query syntax in