Skip to content

Commit 7623c9f

Browse files
committed
Merge branch 'master' of github.com:realm/realm-core into next-major
2 parents aabe7cc + 94bbeef commit 7623c9f

File tree

144 files changed

+7108
-6881
lines changed

Some content is hidden

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

144 files changed

+7108
-6881
lines changed

.gitmodules

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
[submodule "external/catch"]
2-
path = external/catch
3-
url = https://github.com/catchorg/Catch2.git
41
[submodule "src/external/sha-1"]
52
path = src/external/sha-1
63
url = https://github.com/clibs/sha1.git
74
[submodule "src/external/sha-2"]
85
path = src/external/sha-2
96
url = https://github.com/kalven/sha-2.git
7+
[submodule "test/external/catch"]
8+
path = test/external/catch
9+
url = https://github.com/catchorg/Catch2.git

CHANGELOG.md

Lines changed: 29 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
### Enhancements
44
* <New feature description> (PR [#????](https://github.com/realm/realm-core/pull/????))
5-
* None.
65

76
### Fixed
87
* <How do the end-user experience this issue? what was the impact?> ([#????](https://github.com/realm/realm-core/issues/????), since v?.?.?)
@@ -21,6 +20,33 @@
2120

2221
----------------------------------------------
2322

23+
# 14.5.2 Release notes
24+
25+
### Fixed
26+
* Fix compilation errors when using command-line `swift build` ([#7587](https://github.com/realm/realm-core/pull/7587), since v14.5.1).
27+
* Fixed crash when integrating removal of already removed dictionary key ([#7488](https://github.com/realm/realm-core/issues/7488), since v10.0.0).
28+
29+
### Compatibility
30+
* Fileformat: Generates files with format v24. Reads and automatically upgrade from fileformat v10. If you want to upgrade from an earlier file format version you will have to use RealmCore v13.x.y or earlier.
31+
32+
-----------
33+
34+
### Internals
35+
* `prior_size` field in Clear instruction is being repurposed as `collection_type` (no protocol changes required)
36+
37+
----------------------------------------------
38+
39+
# 14.5.1 Release notes
40+
41+
### Fixed
42+
* Clearing a nested collection may end with a crash ([#7556](https://github.com/realm/realm-core/issues/7556), since v14.0.0)
43+
* Removing nested collections in Mixed for synced realms throws realm::StaleAccessor ([#7573](https://github.com/realm/realm-core/issues/7573), since v14.0.0)
44+
* Add a privacy manifest to the Swift package ([Swift #8535](https://github.com/realm/realm-swift/issues/8535)).
45+
46+
### Compatibility
47+
* Fileformat: Generates files with format v24. Reads and automatically upgrade from fileformat v10. If you want to upgrade from an earlier file format version you will have to use RealmCore v13.x.y or earlier.
48+
49+
----------------------------------------------
2450
# 14.5.0 Release notes
2551

2652
### Enhancements
@@ -262,7 +288,7 @@
262288
* Use `clonefile()` when possible in `File::copy()` on Apple platforms for faster copying. ([PR #7341](https://github.com/realm/realm-core/pull/7341)).
263289

264290
### Fixed
265-
* Fixed queries like `indexed_property == NONE {x}` which mistakenly matched on only x instead of not x. This only applies when an indexed property with equality (==, or IN) matches with `NONE` on a list of one item. If the constant list contained more than one value then it was working correctly. ([realm-js #7862](https://github.com/realm/realm-java/issues/7862), since v12.5.0)
291+
* Fixed queries like `indexed_property == NONE {x}` which mistakenly matched on only x instead of not x. This only applies when an indexed property with equality (==, or IN) matches with `NONE` on a list of one item. If the constant list contained more than one value then it was working correctly. ([realm-js #7862](https://github.com/realm/realm-java/issues/7862), since v12.5.0)
266292
* Uploading the changesets recovered during an automatic client reset recovery may lead to 'Bad server version' errors and a new client reset. ([#7279](https://github.com/realm/realm-core/issues/7279), since v13.24.1)
267293
* Fixed invalid data in error reason string when registering a subscription change notification after the subscription has already failed. ([#6839](https://github.com/realm/realm-core/issues/6839), since v11.8.0)
268294
* Fixed crash in fulltext index using prefix search with no matches ([#7309](https://github.com/realm/realm-core/issues/7309), since v13.18.0)
@@ -271,7 +297,7 @@
271297
* Fixed a crash with `Assertion failed: m_initiated` during sync session startup ([#7074](https://github.com/realm/realm-core/issues/7074), since v10.0.0).
272298
* Fixed a TSAN violation where the user thread could race to read `m_finalized` with the sync event loop ([#6844](https://github.com/realm/realm-core/issues/6844), since v13.15.1)
273299
* Fix a minor race condition when backing up Realm files before a client reset which could have lead to overwriting an existing file. ([PR #7341](https://github.com/realm/realm-core/pull/7341)).
274-
300+
275301
### Breaking changes
276302
* SyncManager no longer supports reconfiguring after calling reset_for_testing(). SyncManager::configure() has been folded into the constructor, and reset_for_testing() has been renamed to tear_down_for_testing(). ([PR #7351](https://github.com/realm/realm-core/pull/7351))
277303

CMakeLists.txt

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -266,6 +266,7 @@ option(REALM_VALGRIND "Tell the test suite we are running with valgrind" OFF)
266266
option(REALM_SYNC_MULTIPLEXING "Enables/disables sync session multiplexing by default" ON)
267267
set(REALM_MAX_BPNODE_SIZE "1000" CACHE STRING "Max B+ tree node size.")
268268
option(REALM_ENABLE_GEOSPATIAL "Enable geospatial types and queries." ON)
269+
option(REALM_APP_SERVICES "Enable the default app services implementation." ON)
269270

270271
# Find dependencies
271272
set(THREADS_PREFER_PTHREAD_FLAG ON)
@@ -399,27 +400,14 @@ install(FILES tools/cmake/AcquireRealmDependency.cmake
399400
COMPONENT devel
400401
)
401402

402-
if(CMAKE_SYSTEM_NAME MATCHES "^Windows")
403-
# Increase the Catch2 virtual console width because our test names can be very long and they break test reports
404-
set(CATCH_CONFIG_CONSOLE_WIDTH 300)
405-
elseif(APPLE AND NOT CMAKE_SYSTEM_NAME STREQUAL "Darwin")
406-
set(CATCH_CONFIG_NO_POSIX_SIGNALS ON CACHE BOOL "Disable Catch support for POSIX signals on Apple platforms other than macOS")
403+
if(REALM_BUILD_LIB_ONLY)
404+
set(REALM_EXCLUDE_TESTS EXCLUDE_FROM_ALL)
407405
endif()
408-
set(CATCH_CONFIG_ENABLE_ALL_STRINGMAKERS ON CACHE BOOL "Enable Catch2's optional standard library stringmakers")
409-
410-
add_subdirectory(external EXCLUDE_FROM_ALL)
411406

412-
# Cmake does not let us easily set the deployment target per-target, but Catch2
413-
# can use modern features because we only run tests on recent OS versions.
414-
target_compile_definitions(Catch2 PRIVATE _LIBCPP_DISABLE_AVAILABILITY)
415-
416-
# Enable CTest and include unit tests
417-
enable_testing()
418-
419-
if(REALM_BUILD_LIB_ONLY OR REALM_NO_TESTS)
420-
set(REALM_EXCLUDE_TESTS EXCLUDE_FROM_ALL)
407+
if (NOT REALM_NO_TESTS)
408+
enable_testing()
409+
add_subdirectory(test)
421410
endif()
422-
add_subdirectory(test ${REALM_EXCLUDE_TESTS})
423411

424412
if (REALM_BUILD_TEST_CLIENT)
425413
add_subdirectory(test/client)

Package.swift

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import PackageDescription
44
import Foundation
55

6-
let versionStr = "14.5.0"
6+
let versionStr = "14.5.2"
77
let versionPieces = versionStr.split(separator: "-")
88
let versionCompontents = versionPieces[0].split(separator: ".")
99
let versionExtra = versionPieces.count > 1 ? versionPieces[1] : ""
@@ -17,6 +17,7 @@ var cxxSettings: [CXXSetting] = [
1717
.define("REALM_ENABLE_ENCRYPTION", to: "1"),
1818
.define("REALM_ENABLE_SYNC", to: "1"),
1919
.define("REALM_ENABLE_GEOSPATIAL", to: "1"),
20+
.define("REALM_APP_SERVICES", to: "1"),
2021

2122
.define("REALM_VERSION_MAJOR", to: String(versionCompontents[0])),
2223
.define("REALM_VERSION_MINOR", to: String(versionCompontents[1])),
@@ -364,7 +365,7 @@ let package = Package(
364365
products: [
365366
.library(
366367
name: "RealmCore",
367-
targets: ["RealmCore"]),
368+
targets: ["RealmCoreResources"]),
368369
.library(
369370
name: "RealmQueryParser",
370371
targets: ["RealmQueryParser"]),
@@ -417,6 +418,7 @@ let package = Package(
417418
"realm/tools",
418419
"realm/util/config.h.in",
419420
"realm/version_numbers.hpp.in",
421+
"spm",
420422
"swift",
421423
"win32",
422424
] + syncExcludes + syncServerSources) as [String],
@@ -430,6 +432,20 @@ let package = Package(
430432
.linkedFramework("Foundation", .when(platforms: [.macOS, .iOS, .tvOS, .watchOS, .macCatalyst])),
431433
.linkedFramework("Security", .when(platforms: [.macOS, .iOS, .tvOS, .watchOS, .macCatalyst])),
432434
]),
435+
// Adding resources to a target makes command line swift build (but not
436+
// xcodebuild) force-include Foundation.h without properly excluding
437+
// non-objc c++ files. Adding the resources in a separate target which
438+
// depends on RealmCore works around this. This target needs a single
439+
// source file (dummy.mm) to work around a different bug in xcodebuild
440+
// (but not swift build) that makes empty targets not work.
441+
.target(
442+
name: "RealmCoreResources",
443+
dependencies: ["RealmCore"],
444+
path: "src/spm",
445+
resources: [
446+
.copy("PrivacyInfo.xcprivacy")
447+
],
448+
publicHeadersPath: "."),
433449
.target(
434450
name: "RealmQueryParser",
435451
dependencies: ["RealmCore"],
@@ -478,18 +494,19 @@ let package = Package(
478494
.target(
479495
name: "RealmFFI",
480496
dependencies: ["Capi"],
481-
path: "src/swift"),
497+
path: "src/swift",
498+
cxxSettings: (cxxSettings) as [CXXSetting]),
482499
.target(
483500
name: "Catch2Generated",
484-
path: "external/generated",
501+
path: "test/external/generated",
485502
// this file was manually generated with catch v3.0.1
486503
// and should be regenerated when catch is upgraded
487504
resources: [.copy("catch2/catch_user_config.hpp")],
488505
publicHeadersPath: "."),
489506
.target(
490507
name: "Catch2",
491508
dependencies: ["Catch2Generated"],
492-
path: "external/catch/src",
509+
path: "test/external/catch/src",
493510
exclude: [
494511
"CMakeLists.txt",
495512
"catch2/catch_user_config.hpp.in",

0 commit comments

Comments
 (0)