Skip to content

Commit

Permalink
Remove all Atlas App Services/Device Sync functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
tgoyne committed Sep 9, 2024
1 parent ac48824 commit 7ea8be1
Show file tree
Hide file tree
Showing 346 changed files with 352 additions and 42,775 deletions.
16 changes: 1 addition & 15 deletions .github/workflows/publish-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,20 +74,6 @@ jobs:
bundler-cache: true
- name: Publish
run: bundle exec ./build.sh publish-cocoapods v${{ needs.prepare.outputs.VERSION }}
update-checker:
runs-on: macos-latest
name: Update to latest version update checker file
needs: tag-release
env:
AWS_ACCESS_KEY_ID: ${{ secrets.UPDATE_CHECKER_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.UPDATE_CHECKER_SECRET_KEY }}
steps:
- uses: actions/checkout@v4
- uses: ruby/setup-ruby@v1
with:
bundler-cache: true
- run: brew install s3cmd
- run: bundle exec ./build.sh publish-update-checker
test-installation:
runs-on: macos-14
name: Run installation test for ${{ matrix.platform }}, ${{ matrix.installation }} and ${{ matrix.linkage }}
Expand Down Expand Up @@ -148,7 +134,7 @@ jobs:
post-slack-release:
runs-on: macos-latest
name: Publish to release Slack channel
needs: [create-release, prepare, publish-cocoapods, update-checker, publish-docs]
needs: [create-release, prepare, publish-cocoapods, publish-docs]
env:
WEBHOOK_URL: ${{ secrets.SLACK_RELEASES_WEBHOOK }}
steps:
Expand Down
56 changes: 46 additions & 10 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
x.y.z Release notes (yyyy-MM-dd)
20.0.0 Release notes (2024-09-09)
=============================================================

The minimum supported version of Xcode is now 15.3.

### Enhancements

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

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

<!-- ### Breaking Changes - ONLY INCLUDE FOR NEW MAJOR version -->
* All Atlas App Services and Atlas Device Sync functionality has been removed.
Users of Atlas Device Sync should pin to v10.
* Queries on AnyRealmValue properties previously considered strings to be
equivalent to Data containing the UTF-8 encoded string. Strings and Data are
now considered different types and queries for one of them will not match the
other.
* Realms are no longer autoreleased when initialized. This means that code
along the lines of the following will no longer work:

```Swift
try! Realm().beginWrite()
try! Realm().create(MyObject.self, value: ...)
try! Realm().commitWrite()
```

This was a pattern which was somewhat natural with the original version of
the objective-c API, but only worked in debug builds and would fail in
release builds. We decided to make it consistently work by forcing the Realm
to be autoreleased rather than let users write code which appeared to work
but was actually broken. In modern Swift this code is very strange, and
autoreleasing the Realm made it much more difficult to ensure that the
file is actually closed at predictable times.

Realms are now returned retained in both debug and release modes, so this
will always break rather than appearing to work. Note that there is still a
weak cache of Realms and `Realm()` will still return a reference to the
existing Realm if there is one open on the current thread.
* Iterating a Map now produces the tuple `(key: KeyType, value: ValueType)`
rather than a very similar struct, and `.asKeyValueSequence()` has been
removed. This aligns `Map` with `Dictionary` and makes many operations
defined by `Sequence` work on `Map`.
* Passing an empty array for notification keypaths to filter on (e.g.
`obj.observe(keyPaths: [])`) was treated the same as passing `nil`, i.e. no
filtering was done. It now instead observes no keypaths. For objects this
means it will only report the object being deleted, and for collections it
will only report collection-level changes and not changes to the objects
inside the collection.
* `Decimal128(string:)` was marked as `throws`, but it never actually threw an
error and instead returned `NaN` if the string could not be parsed as a
decimal128. That behavior was kept and it is no longer marked as `throws`.

### Compatibility

* Realm Studio: 15.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 15.4.0.
* CocoaPods: 1.10 or later.
* Xcode: 15.3.0-16.1 beta.

### Internal
* Upgraded realm-core from ? to ?

* Upgraded realm-core from v14.12.1 to v20.0.0.

10.53.1 Release notes (2024-09-05)
=============================================================
Expand Down
2 changes: 1 addition & 1 deletion Configuration/Debug.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,4 @@ ONLY_ACTIVE_ARCH = YES;
SWIFT_OPTIMIZATION_LEVEL = -Onone;
OTHER_SWIFT_FLAGS = -Xfrontend -enable-actor-data-race-checks;

GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 REALM_DEBUG REALM_HAVE_CONFIG REALM_ENABLE_SYNC __ASSERTMACROS__;
GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1 REALM_DEBUG REALM_HAVE_CONFIG __ASSERTMACROS__;
5 changes: 0 additions & 5 deletions Configuration/ObjectServerTests.xcconfig

This file was deleted.

2 changes: 1 addition & 1 deletion Configuration/Release.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ DEBUG_INFORMATION_FORMAT_1500 = dwarf;
DEBUG_INFORMATION_FORMAT = $(DEBUG_INFORMATION_FORMAT_$(XCODE_VERSION_MAJOR));

ENABLE_NS_ASSERTIONS = NO;
GCC_PREPROCESSOR_DEFINITIONS = REALM_HAVE_CONFIG REALM_ENABLE_SYNC __ASSERTMACROS__;
GCC_PREPROCESSOR_DEFINITIONS = REALM_HAVE_CONFIG __ASSERTMACROS__;
LLVM_LTO = YES_THIN;
VALIDATE_PRODUCT = YES;

Expand Down
2 changes: 1 addition & 1 deletion Configuration/Static.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@

REALM_MACH_O_TYPE = staticlib;
LLVM_LTO = NO;
GCC_PREPROCESSOR_DEFINITIONS = REALM_STATIC_FRAMEWORK REALM_HAVE_CONFIG REALM_ENABLE_SYNC __ASSERTMACROS__;
GCC_PREPROCESSOR_DEFINITIONS = REALM_STATIC_FRAMEWORK REALM_HAVE_CONFIG __ASSERTMACROS__;
4 changes: 0 additions & 4 deletions Configuration/SwiftUISyncTestHost.xcconfig

This file was deleted.

11 changes: 0 additions & 11 deletions Configuration/SwiftUISyncTests.xcconfig

This file was deleted.

Loading

0 comments on commit 7ea8be1

Please sign in to comment.