Skip to content

Commit 7ea8be1

Browse files
committed
Remove all Atlas App Services/Device Sync functionality
1 parent ac48824 commit 7ea8be1

File tree

346 files changed

+352
-42775
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

346 files changed

+352
-42775
lines changed

.github/workflows/publish-release.yml

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -74,20 +74,6 @@ jobs:
7474
bundler-cache: true
7575
- name: Publish
7676
run: bundle exec ./build.sh publish-cocoapods v${{ needs.prepare.outputs.VERSION }}
77-
update-checker:
78-
runs-on: macos-latest
79-
name: Update to latest version update checker file
80-
needs: tag-release
81-
env:
82-
AWS_ACCESS_KEY_ID: ${{ secrets.UPDATE_CHECKER_ACCESS_KEY }}
83-
AWS_SECRET_ACCESS_KEY: ${{ secrets.UPDATE_CHECKER_SECRET_KEY }}
84-
steps:
85-
- uses: actions/checkout@v4
86-
- uses: ruby/setup-ruby@v1
87-
with:
88-
bundler-cache: true
89-
- run: brew install s3cmd
90-
- run: bundle exec ./build.sh publish-update-checker
9177
test-installation:
9278
runs-on: macos-14
9379
name: Run installation test for ${{ matrix.platform }}, ${{ matrix.installation }} and ${{ matrix.linkage }}
@@ -148,7 +134,7 @@ jobs:
148134
post-slack-release:
149135
runs-on: macos-latest
150136
name: Publish to release Slack channel
151-
needs: [create-release, prepare, publish-cocoapods, update-checker, publish-docs]
137+
needs: [create-release, prepare, publish-cocoapods, publish-docs]
152138
env:
153139
WEBHOOK_URL: ${{ secrets.SLACK_RELEASES_WEBHOOK }}
154140
steps:

CHANGELOG.md

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
x.y.z Release notes (yyyy-MM-dd)
1+
20.0.0 Release notes (2024-09-09)
22
=============================================================
33

44
The minimum supported version of Xcode is now 15.3.
55

66
### Enhancements
7+
78
* Build in Swift 6 language mode when using Xcode 16. Libraries build in Swift
89
6 mode can be consumed by apps built in Swift 5 mode, so this should not have
910
any immediate effects beyond eliminating some warnings and ensuring that all
@@ -19,9 +20,6 @@ The minimum supported version of Xcode is now 15.3.
1920
of macros. It can still be used as a property wrapper for class properties
2021
and as a manual wrapper locally, but note that it does not combine well with
2122
actor-isolated Realms.
22-
- In Swift 6 mode a few mongo client functions have changed from returning
23-
`[AnyHashable: Any]` to `Document`. These should have been `Document` all
24-
along, and the old return type no longer compiles due to not being Sendable.
2523
* Some SwiftUI components are now explicitly marked as `@MainActor`. These
2624
types were implicitly `@MainActor` in Swift 5, but became nonisolated when
2725
using Xcode 16 in Swift 5 mode due to the removal of implicit isolation when
@@ -30,21 +28,59 @@ The minimum supported version of Xcode is now 15.3.
3028
* Add Xcode 16 and 16.1 binaries to the release packages (currently built with
3129
beta 6 and beta 1 respectively).
3230

33-
### Fixed
34-
* <How to hit and notice issue? what was the impact?> ([#????](https://github.com/realm/realm-swift/issues/????), since v?.?.?)
35-
* None.
31+
### Breaking Changes
3632

37-
<!-- ### Breaking Changes - ONLY INCLUDE FOR NEW MAJOR version -->
33+
* All Atlas App Services and Atlas Device Sync functionality has been removed.
34+
Users of Atlas Device Sync should pin to v10.
35+
* Queries on AnyRealmValue properties previously considered strings to be
36+
equivalent to Data containing the UTF-8 encoded string. Strings and Data are
37+
now considered different types and queries for one of them will not match the
38+
other.
39+
* Realms are no longer autoreleased when initialized. This means that code
40+
along the lines of the following will no longer work:
41+
42+
```Swift
43+
try! Realm().beginWrite()
44+
try! Realm().create(MyObject.self, value: ...)
45+
try! Realm().commitWrite()
46+
```
47+
48+
This was a pattern which was somewhat natural with the original version of
49+
the objective-c API, but only worked in debug builds and would fail in
50+
release builds. We decided to make it consistently work by forcing the Realm
51+
to be autoreleased rather than let users write code which appeared to work
52+
but was actually broken. In modern Swift this code is very strange, and
53+
autoreleasing the Realm made it much more difficult to ensure that the
54+
file is actually closed at predictable times.
55+
56+
Realms are now returned retained in both debug and release modes, so this
57+
will always break rather than appearing to work. Note that there is still a
58+
weak cache of Realms and `Realm()` will still return a reference to the
59+
existing Realm if there is one open on the current thread.
60+
* Iterating a Map now produces the tuple `(key: KeyType, value: ValueType)`
61+
rather than a very similar struct, and `.asKeyValueSequence()` has been
62+
removed. This aligns `Map` with `Dictionary` and makes many operations
63+
defined by `Sequence` work on `Map`.
64+
* Passing an empty array for notification keypaths to filter on (e.g.
65+
`obj.observe(keyPaths: [])`) was treated the same as passing `nil`, i.e. no
66+
filtering was done. It now instead observes no keypaths. For objects this
67+
means it will only report the object being deleted, and for collections it
68+
will only report collection-level changes and not changes to the objects
69+
inside the collection.
70+
* `Decimal128(string:)` was marked as `throws`, but it never actually threw an
71+
error and instead returned `NaN` if the string could not be parsed as a
72+
decimal128. That behavior was kept and it is no longer marked as `throws`.
3873

3974
### Compatibility
75+
4076
* Realm Studio: 15.0.0 or later.
41-
* APIs are backwards compatible with all previous releases in the 10.x.y series.
4277
* Carthage release for Swift is built with Xcode 15.4.0.
4378
* CocoaPods: 1.10 or later.
4479
* Xcode: 15.3.0-16.1 beta.
4580

4681
### Internal
47-
* Upgraded realm-core from ? to ?
82+
83+
* Upgraded realm-core from v14.12.1 to v20.0.0.
4884

4985
10.53.1 Release notes (2024-09-05)
5086
=============================================================

Configuration/Debug.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ ONLY_ACTIVE_ARCH = YES;
77
SWIFT_OPTIMIZATION_LEVEL = -Onone;
88
OTHER_SWIFT_FLAGS = -Xfrontend -enable-actor-data-race-checks;
99

10-
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 REALM_DEBUG REALM_HAVE_CONFIG REALM_ENABLE_SYNC __ASSERTMACROS__;
10+
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 REALM_DEBUG REALM_HAVE_CONFIG __ASSERTMACROS__;

Configuration/ObjectServerTests.xcconfig

Lines changed: 0 additions & 5 deletions
This file was deleted.

Configuration/Release.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ DEBUG_INFORMATION_FORMAT_1500 = dwarf;
77
DEBUG_INFORMATION_FORMAT = $(DEBUG_INFORMATION_FORMAT_$(XCODE_VERSION_MAJOR));
88

99
ENABLE_NS_ASSERTIONS = NO;
10-
GCC_PREPROCESSOR_DEFINITIONS = REALM_HAVE_CONFIG REALM_ENABLE_SYNC __ASSERTMACROS__;
10+
GCC_PREPROCESSOR_DEFINITIONS = REALM_HAVE_CONFIG __ASSERTMACROS__;
1111
LLVM_LTO = YES_THIN;
1212
VALIDATE_PRODUCT = YES;
1313

Configuration/Static.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
REALM_MACH_O_TYPE = staticlib;
44
LLVM_LTO = NO;
5-
GCC_PREPROCESSOR_DEFINITIONS = REALM_STATIC_FRAMEWORK REALM_HAVE_CONFIG REALM_ENABLE_SYNC __ASSERTMACROS__;
5+
GCC_PREPROCESSOR_DEFINITIONS = REALM_STATIC_FRAMEWORK REALM_HAVE_CONFIG __ASSERTMACROS__;

Configuration/SwiftUISyncTestHost.xcconfig

Lines changed: 0 additions & 4 deletions
This file was deleted.

Configuration/SwiftUISyncTests.xcconfig

Lines changed: 0 additions & 11 deletions
This file was deleted.

0 commit comments

Comments
 (0)