Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge master, adapt exceptions #6361

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
148 commits
Select commit Hold shift + click to select a range
53fe690
Exception unification in core/core (#5186)
jedelbo Apr 26, 2022
46bf64f
Merge branch 'master' into feature/exception-unification
jedelbo Apr 27, 2022
0bfb454
Replace specialized exceptions defined in shared_realm.hpp with stand…
jedelbo Apr 28, 2022
b8f19b2
Adapt exceptions thrown in Collections and Results to new exception s…
jedelbo May 4, 2022
75061e5
Merge branch 'master' into feature/exception-unification
jedelbo May 4, 2022
75cd32a
Adapt AppError to new Exception framework (#5462)
jedelbo May 9, 2022
098f6c1
Merge branch 'master' into feature/exception-unification
jedelbo May 9, 2022
fb15115
Add textural representation of category to realm_sync_error_code_t
jedelbo May 10, 2022
0aae829
Merge branch 'master' into feature/exception-unification
jedelbo May 12, 2022
f24bc3f
Fix Apple build (#5482)
jedelbo May 18, 2022
e539791
Merge branch 'master' into feature/exception-unification
jedelbo May 20, 2022
cf207ce
C API: Make path available through realm_error_t
jedelbo May 20, 2022
c9e1ea5
Rearrange error codes (#5521)
jedelbo May 24, 2022
f13d50f
Merge branch 'master' into feature/exception-unification
jedelbo May 25, 2022
d656381
Added ErrorCodes::SchemaVersionMismatch
jedelbo May 25, 2022
a3da7b3
Assign explicit numbers to error codes
jedelbo May 25, 2022
ca9798c
Merge branch 'master' into feature/exception-unification
jedelbo May 27, 2022
15e9278
Merge branch 'master' into feature/exception-unification
jedelbo Jun 13, 2022
43ef034
Fix exception handling after merge
jedelbo Jun 14, 2022
bbe5c58
Throw an exception when trying to aggregate on a collection property
jedelbo Jun 15, 2022
fa575cf
Merge branch 'master' into feature/exception-unification
jedelbo Aug 8, 2022
a751cba
Fix exception handling after merge
jedelbo Aug 9, 2022
8b715e8
Fix Windows build
jedelbo Aug 10, 2022
87acb34
Merge branch 'master' into feature/exception-unification
jedelbo Sep 15, 2022
f51ef63
Merge remote-tracking branch 'origin/master' into feature/exception-u…
tgoyne Sep 15, 2022
3859697
Merge remote-tracking branch 'origin/master' into feature/exception-u…
tgoyne Sep 19, 2022
1bd547b
Update release notes
jedelbo Sep 23, 2022
dd011d1
Merge branch 'master' into feature/exception-unification
jedelbo Sep 23, 2022
eb06da5
Merge remote-tracking branch 'origin/master' into feature/exception-u…
tgoyne Sep 27, 2022
8c5d069
Merge branch 'master' into feature/exception-unification
jedelbo Oct 4, 2022
fc417aa
Merge remote-tracking branch 'origin/master' into feature/exception-u…
tgoyne Oct 7, 2022
2870aba
Remove exception subclasses which cannot be caught
tgoyne Sep 6, 2022
09930ca
Don't swallow access errors when deleting Realms
tgoyne Sep 7, 2022
9097eba
Remove a pointless namespace
tgoyne Sep 7, 2022
ac61db4
Add error_codes.h to the installed headers
tgoyne Sep 7, 2022
732e304
Remove an inaccurate comment claiming that ErrorCodes is generated code
tgoyne Sep 7, 2022
5221297
Avoid building huge map during initialization
jedelbo Oct 7, 2022
e4cbd26
Merge pull request #5927 from realm/je/exception-unification
jedelbo Oct 10, 2022
0e167fb
Extract some of the inline definitions from exceptions.hpp
tgoyne Sep 12, 2022
020f262
Store the relevant index in OutOfBoundsException
tgoyne Sep 12, 2022
732312e
Combine the invalid schema change error codes
tgoyne Sep 21, 2022
c401be7
Make more exceptions inherit from realm::Exception
tgoyne Sep 21, 2022
cb31a1e
Replace DuplicatePrimaryKeyValue with a more general MigrationFailed
jedelbo Oct 10, 2022
fcab2ea
Adopt realm::Exception in audit
tgoyne Sep 27, 2022
97f815c
Fix REQUIRE_THROW_LOGIC_ERROR_WITH_CODE
jedelbo Oct 11, 2022
263c83d
Merge pull request #5930 from realm/je/exception-unification
jedelbo Oct 11, 2022
967bc6d
Merge remote-tracking branch 'origin/master' into feature/exception-u…
tgoyne Oct 18, 2022
2836692
Fix CHANGELOG.md
jedelbo Oct 19, 2022
f2b799a
Merge remote-tracking branch 'origin/master' into feature/exception-u…
tgoyne Oct 26, 2022
b8e5b7b
Fix some formatting errors introduced in merges
tgoyne Oct 26, 2022
6bdcd7a
Expose the error category for basic_system_error
tgoyne Oct 11, 2022
ae7b2b6
constexprify the collection fixtures
tgoyne Oct 18, 2022
a220b8b
Make more StringData operations constexpr
tgoyne Oct 18, 2022
28a2b59
Delete some unused test helper code
tgoyne Oct 18, 2022
65d1d8e
Convert some uses of std exceptions to realm::Exception
tgoyne Oct 18, 2022
9c3f5fc
Add missing validation to many of Realm's entry point functions
tgoyne Oct 18, 2022
75cd8e3
Remove the baas dependency for some tests which don't actually talk t…
tgoyne Oct 18, 2022
c995aa6
Improve error reporting when initializing ExternalCommitHelper fails
tgoyne Oct 18, 2022
74e3d8d
Improve the error messages in exceptions thrown by collections
tgoyne Oct 18, 2022
9eb5580
Improve error messages for file operations and opening Realm files
tgoyne Oct 18, 2022
6e06cc6
Validate the message and code for most tests which test exceptions
tgoyne Oct 18, 2022
506f118
Merge pull request #5911 from realm/tg/exception-unification
tgoyne Oct 26, 2022
8b3db89
Remove unused templates
jedelbo Oct 27, 2022
372e466
Make AppError a RuntimeError
jedelbo Oct 27, 2022
75cecef
Delete InvalidEmbeddedOperationException
tgoyne Oct 27, 2022
6d878f2
Merge branch 'master' into feature/exception-unification
jedelbo Nov 17, 2022
13f5e40
Merge branch master into feature/exception-unification
jedelbo Jan 12, 2023
9c997e0
Merge branch master into feature/exception-unification
jedelbo Jan 12, 2023
e420e8d
Merge branch master into feature/exception-unification
jedelbo Jan 12, 2023
498f5ed
Enhance ErrorCodes unittest
jedelbo Jan 12, 2023
5c5e000
Possible fix for unittest on Mac
jedelbo Jan 13, 2023
d5cacf9
Merge branch 'master' into feature/exception-unification
jedelbo Jan 13, 2023
144ccc8
Fix compilation and tests
jedelbo Jan 13, 2023
afc0557
Fix warning
jedelbo Jan 16, 2023
40d2fcf
Merge branch 'master' into feature/exception-unification
jedelbo Jan 20, 2023
53b6c98
Convert some std exceptions to realm::Exception types
jedelbo Jan 19, 2023
54948cf
Fix classification of InvalidQuery
jedelbo Jan 23, 2023
cbbbf7f
Add Exception::category() function
jedelbo Jan 25, 2023
3131a22
Merge branch 'master' into feature/exception-unification
jedelbo Jan 25, 2023
a6d9f6e
Merge branch 'master' into feature/exception-unification
jedelbo Jan 26, 2023
968a6e7
Fix unit tests
jedelbo Jan 26, 2023
5e2d0c2
Merge branch 'master' into feature/exception-unification
jedelbo Feb 1, 2023
aa24664
Add test for client reset during async open (#6236)
leemaguire Feb 2, 2023
737e6d9
Fuzzer Framework (#5940)
nicola-cab Feb 2, 2023
f259397
Only use flock emulation for readers-writer locks (#6258)
tgoyne Feb 3, 2023
476a2ad
Fix websocket redirection after server migration if user is logged in…
Feb 3, 2023
b9467f3
Prepare release 13.4.0
Feb 3, 2023
f90419a
Merge pull request #6274 from realm/release/13.4.0
Feb 4, 2023
02f7d43
Updated release notes
Feb 4, 2023
cbbeeba
Separate lifecycle of sync Client from its websocket provider (#6276)
jbreams Feb 6, 2023
0c360d0
Fix sync benchmarks (#6281)
jbreams Feb 6, 2023
1588845
Keep sync event loop running when there are no callbacks/async IO (#6…
jbreams Feb 7, 2023
8f1746e
Fix distro size for fuzzer build variant (#6269)
nicola-cab Feb 7, 2023
5c34f92
Add handling of hex encoded key to realm-trawler (#6264)
finnschiermer Feb 7, 2023
0ed74b2
BadChangesetError and TransformError notify users to contact support …
danieltabacaru Feb 7, 2023
bad48eb
Revisit metrics test - update metrics to store whether or not sync to…
Feb 7, 2023
e3ddb59
App 301/308 redirection support doesn't use new location if metadata …
Feb 7, 2023
cf4ef7e
Notify using the key instead of the index for dictionaries. (#6268)
nicola-cab Feb 9, 2023
68934b6
Fix wrong handling of WebSocket_Retry_Error (#6290)
danieltabacaru Feb 9, 2023
4262a05
Use a real transaction version for immutable Realms (#6272)
tgoyne Feb 10, 2023
dfc3334
Add support for nested and overlapping audit scopes
tgoyne Feb 6, 2023
d66cd36
Ensure that all events generated are identical other than the scope name
tgoyne Feb 10, 2023
3dbeb43
Re-create all objects before updating their properties during client_…
jbreams Feb 10, 2023
9d6ef5e
Merge pull request #6288 from realm/tg/audit-scopes
tgoyne Feb 13, 2023
7376492
[C API] Integration test for websocket provider (#6277)
danieltabacaru Feb 13, 2023
a7d486d
Prepare release 13.4.1
kiburtse Feb 14, 2023
fa6c93f
Merge pull request #6303 from realm/release/13.4.1
kiburtse Feb 14, 2023
1378f9b
Updated release notes
Feb 14, 2023
07c0e28
OpenSSL 3.0.8 (#6305)
fealebenpae Feb 15, 2023
18c99b7
Improve util/file for Windows (#6221)
fealebenpae Feb 15, 2023
e2dba2a
Update yarn download path in install_baas.sh (#6309)
Feb 15, 2023
f447145
Update websocket error messages to be more descriptive (#6298)
Feb 15, 2023
6fb228e
Avoid to fail build for fuzzer build variant (#6296)
nicola-cab Feb 16, 2023
006660c
Pass callback and user data by valye in realm_mongo_collection_<funct…
desistefanova Feb 16, 2023
b05f9f0
Wait for sessions to drain during sync client shutdown (#6293)
jbreams Feb 17, 2023
7d68f3d
prepare core release 13.4.2
nicola-cab Feb 17, 2023
5ae5980
Fix bad changeset loop (#6086)
danieltabacaru Feb 17, 2023
9a53023
Merge pull request #6316 from realm/release/13.4.2
nicola-cab Feb 17, 2023
e5f1a67
Updated release notes
Feb 17, 2023
c6a8170
Support in-memory realms (#6246)
jedelbo Feb 20, 2023
db62914
Fix crash caused by null embedded objects when converting local realm…
danieltabacaru Feb 21, 2023
25082db
Improve RealmTrawler and RealmDump
jedelbo Feb 21, 2023
94146de
Initialize sub-query only once
jedelbo Feb 22, 2023
557a912
subquery microbenchmark
ironage Feb 22, 2023
953d400
Merge pull request #6328 from realm/je/fix-sub-query
jedelbo Feb 23, 2023
39be1ad
Merge branch 'master' into je/exception-unification-merge
jedelbo Feb 23, 2023
52b8206
Make compile
jedelbo Feb 23, 2023
ffe555b
Fix format
jedelbo Feb 23, 2023
b6669a5
Fix some unresolved merge conflicts
jedelbo Feb 23, 2023
ae58f29
Make compile on Windows
jedelbo Feb 23, 2023
a280309
Add document filters to baas service role configuration in tests (#6319)
jonatlee Feb 23, 2023
027cfe4
Fix ssl stream crash (#6323)
Feb 24, 2023
650865c
Make the network code compile (#6262)
jedelbo Feb 24, 2023
8314f84
Merge branch 'master' into feature/exception-unification
jedelbo Feb 24, 2023
f762b8d
Use proper error message when CreateFile() fails
jedelbo Feb 24, 2023
37cc588
Prepare release
jedelbo Feb 24, 2023
3b47ff1
Updated release notes
Feb 24, 2023
7af9a40
Merge pull request #6335 from realm/release/13.5.0
jedelbo Feb 24, 2023
fb3aa85
remove benchmark compatibility for pre core 6 (#6333)
ironage Feb 24, 2023
09381ba
Update BindingCallbackThreadObserver to be one per sync client (#6156)
Feb 24, 2023
8a2005b
Bump baas version in evergreen tests (#6337)
jbreams Feb 24, 2023
ebeee1c
MigrationStore implementation for PBS -> FLX migration (#6324)
danieltabacaru Feb 27, 2023
32d05f6
Fix unicode path handling on Windows (#6338)
fealebenpae Feb 28, 2023
573bacb
Remove Group::compute_aggregated_byte_size() (#6273)
tgoyne Mar 1, 2023
21cc4fd
Fix ApplyToStateCommand for PBS (#6351)
danieltabacaru Mar 1, 2023
57d1ccc
Merge branch 'master' into kb/geospatial_merge_master
kiburtse Mar 3, 2023
8c1d759
Fix build due to removed error categories
kiburtse Mar 3, 2023
3f13ca9
Replace std exceptions with realm specific
kiburtse Mar 3, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 116 additions & 8 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,61 @@

### Enhancements
* <New feature description> (PR [#????](https://github.com/realm/realm-core/pull/????))
* Add per app support for BindingCallbackThreadObserver ([#6250](https://github.com/realm/realm-core/issues/6250))

### Fixed
* Fixed handling of non-ASCII characters in file paths. ([#6336](https://github.com/realm/realm-core/issues/6336), since v13.4.0)

### Breaking changes
* BindingCallbackThreadObserver interface was updated to be part of SyncClientConfig and global instance was removed. ([PR #6156](https://github.com/realm/realm-core/pull/6156))

### Compatibility
* Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

-----------

### Internals
* Add CAPI test for Binding Callback Thread Observer. ([PR #6156](https://github.com/realm/realm-core/pull/6156))
* Implement MigrationStore to support migration from PBS to FLX ([PR #6324](https://github.com/realm/realm-core/pull/6324))

----------------------------------------------

# 13.5.0 Release notes

### Enhancements
* None.

### Fixed
* <How do the end-user experience this issue? what was the impact?> ([#????](https://github.com/realm/realm-core/issues/????), since v?.?.?)
* Converting local realm to sync'd realm crashes if an embedded object is null ([#6294](https://github.com/realm/realm-core/issues/6294), since v11.9.0)
* Fixed performance degradation on SubQueries ([#6327](https://github.com/realm/realm-core/issues/6327), since v6.0.0)
* The C API type `realm_sync_error_code_t` did not include a textural representation of the underlying category. ([#5399](https://github.com/realm/realm-core/issues/5399)),
* Fixed several cases where wrong type of exception was thrown ([#6208](https://github.com/realm/realm-core/issues/6208), never released)
* Fixed classification of InvalidQuery exception ([#6223](https://github.com/realm/realm-core/issues/6223), never released)
* Fix crash if secure transport returns an error with a non-zero length. ([#5435](https://github.com/realm/realm-core/issues/5435), since 10.0.0)

### Breaking changes
* All exceptions thrown out of Core are now of type 'Exception'. All use of std::runtime_error and std::logical_error etc. has stopped and the specialized error classes that beforehand were based on these are now based on Exception.

### Compatibility
* Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

-----------

### Internals
* Fixed a test failure originating due to the location for flexible sync permissions in the new version of baas changing.
([#6319](https://github.com/realm/realm-core/pull/6319))

----------------------------------------------

# 13.4.2 Release notes

### Enhancements
* None.

### Fixed
* Sync client may [have failed an assertion](https://github.com/realm/realm-core/blob/006660c8d20c4941d3838f74aec6f3561ebf6784/src/realm/sync/noinst/client_impl_base.cpp#L388) during shutdown if all sessions hadn't been ready to finalize by the time the Client destructor ran. (PR [#6293](https://github.com/realm/realm-core/pull/6293), since v13.4.1)
* Fixed the sync client being stuck in a cycle if an integration error occurs by issuing a client reset ([#6051](https://github.com/realm/realm-core/issues/6051), since v10.2.0)

### Breaking changes
* None.

Expand All @@ -16,8 +65,65 @@

-----------

### Internals
* Upgrade OpenSSL from 3.0.7 to 3.0.8. ([#6305](https://github.com/realm/realm-core/pull/6305))
* Windows improvements in util/file ([PR #6221](https://github.com/realm/realm-core/pull/6221)):
* The following APIs are now implemented using std::filesystem: `try_make_dir`/`make_dir`, `make_dir_recursive`, `try_remove_dir`/`remove_dir`, `try_remove_dir_recursive`/`remove_dir_recursive`, `File::exists`, `File::is_dir`, `File::try_remove`/`File::remove`, `File::move`, `File::copy`, `File::last_write_time`, `File::get_free_space`
* `File::get_unique_id` now works on Windows
* Replaced manual path string conversion with `std::filesystem::path`
* Update yarn download path in install_baas.sh ([PR #6309](https://github.com/realm/realm-core/pull/6309))
* Include the websocket close status reason when reporting errors to the sync client ([PR #6298](https://github.com/realm/realm-core/pull/6298))

----------------------------------------------

# 13.4.1 Release notes

### Enhancements
* IntegrationException's which require help from support team mention 'Please contact support' in their message ([#6283](https://github.com/realm/realm-core/pull/6283))
* Add support for nested and overlapping scopes to the Events API. If multiple scopes are active all events generated will be reported to every active scope ([#6288](https://github.com/realm/realm-core/pull/6288)).

### Fixed
* App 301/308 redirection support doesn't use new location if metadata mode is set to 'NoMetadata'. ([#6280](https://github.com/realm/realm-core/issues/6280), since v12.9.0)
* Expose ad hoc interface for querying dictionary key changes in the C-API. ([#6228](https://github.com/realm/realm-core/issues/6228), since v10.3.3)
* Client reset with recovery or discard local could fail if there were dangling links in lists that got ressurected while the list was being transferred from the fresh realm ([#6292](https://github.com/realm/realm-core/issues/6292), since v11.5.0)

### Breaking changes
* None.

### Compatibility
* Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

-----------

### Internals
* The lifecycle of the sync client is now separated from the event loop/socket provider it uses for async I/O/timers. The sync client will wait for all outstanding callbacks/sockets to be closed during destruction. The SyncSocketProvider passed to the sync client must run until after the sync client is destroyed but does not need to be stopped as part of tearing down the sync client. ([PR #6276](https://github.com/realm/realm-core/pull/6276))
* The default event loop will now keep running until it is explicitly stopped rather than until there are no more timers/IO to process. Previously there was a timer set for very far in the future to force the event loop to keep running. ([PR #6265](https://github.com/realm/realm-core/pull/6265))
* Disable failing check in Metrics_TransactionTimings test ([PR #6206](https://github.com/realm/realm-core/pull/6206))
* Map ClientError's to ProtocolError's and use ProtocolError's when sending ERROR messages to the server ([PR #6086](https://github.com/realm/realm-core/pull/6086))

----------------------------------------------

# 13.4.0 Release notes

### Enhancements
* Improve performance of interprocess mutexes on iOS which don't need to support reader-writer locking. The primary beneficiary of this is beginning and ending read transactions, which is now almost as fast as pre-v13.0.0 ([PR #6258](https://github.com/realm/realm-core/pull/6258)).

### Fixed
* Sharing Realm files between a Catalyst app and Realm Studio did not properly synchronize access to the Realm file ([PR #6258](https://github.com/realm/realm-core/pull/6258), since v6.21.0).
* Fix websocket redirection after server migration if user is logged in ([#6056](https://github.com/realm/realm-core/issues/6056), since v12.9.0)
* Freezing an immutable Realm would hit an assertion failure ([#6260]https://github.com/realm/realm-core/issues/6260), since v13.3.0).

### Breaking changes
* Remove Group::compute_aggregated_byte_size(), which is no longer used by anything.

### Compatibility
* Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.

-----------

### Internals
* Added `REALM_ARCHITECTURE_ARM32` and `REALM_ARCHITECTURE_ARM64` macros to `features.h` for easier platform detection. ([#6256](https://github.com/realm/realm-core/pull/6256))
* Create the fuzzer framework project in order to run fuzz testing on evergreen ([PR #5940](https://github.com/realm/realm-core/pull/5940))

----------------------------------------------

Expand All @@ -28,6 +134,7 @@
* Improve the performance of `Realm::freeze()` by eliminating some redudant work around schema initialization and validation. These optimizations do not apply to Realm::get_frozen_realm() ([PR #6211](https://github.com/realm/realm-core/pull/6211)).
* Include context about what object caused the merge exception in OT ([#6204](https://github.com/realm/realm-core/issues/6204))
* Add support for `Dictionary::get_keys()`, `Dictionary::contains()`, `Dictionary::find_any()` in the C API. ([#6181](https://github.com/realm/realm-core/issues/6181))
* Adds upport for in-memory Realms. If a Realm is opened without a path it will be in memory only.

### Fixed
* "find first" on Decimal128 field with value NaN does not find objects ([6182](https://github.com/realm/realm-core/issues/6182), since v6.0.0)
Expand All @@ -41,6 +148,7 @@
* Online compaction may cause a single commit to take a long time ([#6245](https://github.com/realm/realm-core/pull/6245), since v13.0.0)
* Expose `collection_was_cleared` in the C API ([#6200](https://github.com/realm/realm-core/issues/6200), since v.10.4.0)
* `Set<Mixed>::sort()` used a different sort order from sorting any other collection, including a filtered `Set<Mixed>` ([PR #6238](https://github.com/realm/realm-core/pull/6238), since v13.0.0).
* Fix issue where calling `RealmCoordinator::get_realm(Realm::Config, util::Optional<VersionID>)` would not correctly set `m_schema_version` to `ObjectStore::NotVersioned` if no schema was provided in the config when the realm is first opened ([PR #6236](https://github.com/realm/realm-core/pull/6236), since v10.0.0).

### Breaking changes
* `SyncSession::log_out()` has been renamed to `SyncSession::force_close()` to reflect what it actually does ([#6183](https://github.com/realm/realm-core/pull/6183))
Expand Down Expand Up @@ -85,11 +193,11 @@
* Fixed possible segfault in sync client where async callback was using object after being deallocated ([#6053](https://github.com/realm/realm-core/issues/6053), since v11.7.0)
* Fixed crash when using client reset with recovery and flexible sync with a single subscription ([#6070](https://github.com/realm/realm-core/issues/6070), since v12.3.0)
* Fixed crash with wrong transaction state, during realm migration if realm is frozen due to schema mismatch ([#6144](https://github.com/realm/realm-core/issues/6144), since v13.0.0)

### Breaking changes
* Core no longer provides any vcpkg infrastructure (the ports submodule and overlay triplets), because it handles dependant libraries internally now.
* Allow Realm instances to have a complete view of their schema, if mode is additive. ([PR #5784](https://github.com/realm/realm-core/pull/5784)).
* `realm_sync_immediately_run_file_actions` (c-api) now takes a third argument `bool* did_run` that will be set to the result of `SyncManager::immediately_run_file_actions`. ((#6117)[https://github.com/realm/realm-core/pull/6117])
* `realm_sync_immediately_run_file_actions` (c-api) now takes a third argument `bool* did_run` that will be set to the result of `SyncManager::immediately_run_file_actions`. ((#6117)[https://github.com/realm/realm-core/pull/6117])
* Device information in sync connection parameters was moved into a new `device_info` structure in App::Config ([PR #6066](https://github.com/realm/realm-core/pull/6066))
* `sdk` is now a required field in the `device_device` structure in App::Config ([PR #6066](https://github.com/realm/realm-core/pull/6066))

Expand Down Expand Up @@ -117,7 +225,7 @@
### Fixed
* Fixed `realm_add_realm_refresh_callback` and notify immediately that there is not transaction snapshot to advance to. ([#6075](https://github.com/realm/realm-core/issues/6075), since v12.6.0)
* Fix no notification for write transaction that contains only change to backlink property. ([#4994](https://github.com/realm/realm-core/issues/4994), since v11.4.1)

### Breaking changes
* FLX Subscription API reworked to better match SDK consumption patterns ([#6065](https://github.com/realm/realm-core/pull/6065)). Not all changes are breaking, but listing them all here together.
* `Subscription` is now a plain struct with public fields rather than getter functions
Expand All @@ -143,7 +251,7 @@
### Fixed
* Not possible to open an encrypted file on a device with a page size bigger than the one on which the file was produced. ([#8030](https://github.com/realm/realm-swift/issues/8030), since v12.11.0)
* Fixed `realm_refresh` so it uses an argument value for the refresh result and returns any error conditions as return value. ([#6068](https://github.com/realm/realm-core/pull/6068), since v10.4.0)
* Fixed `realm_compact` to actually do the compaction even if the caller did not provide a `did_compact` argument. ([#6068](https://github.com/realm/realm-core/pull/6068), since v12.7.0)
* Fixed `realm_compact` to actually do the compaction even if the caller did not provide a `did_compact` argument. ([#6068](https://github.com/realm/realm-core/pull/6068), since v12.7.0)
### Breaking changes
* ObjectId constructor made explicit, so no more implicit conversions from const char* or array of 12 bytes. It now accepts a StringData. ([#6059](https://github.com/realm/realm-core/pull/6059))

Expand Down Expand Up @@ -210,7 +318,7 @@
* Restore fallback to full barrier when F_BARRIERSYNC is not available on Apple platforms. ([PR #6033](https://github.com/realm/realm-core/pull/6033), since v12.12.0)
* Validation of Queries constructed by the Fluent QueryBuilder was missing. ([#6034](https://github.com/realm/realm-core/issues/6034), since v12.7.0)
* Allow setting values on a Mixed property through the C API ([#5985](https://github.com/realm/realm-core/issues/5985), since v10.5.0)

### Breaking changes
* `Table::query()` overload taking `vector<vector<Mixed>>` now takes `vector<variant<Mixed, vector<Mixed>>>` in order to distinguish scalar arguments from single-element lists. ([#5973](https://github.com/realm/realm-core/pull/5973))
* Better error handling for `realm_async_begin_write` and `realm_async_commit`. ([#PR6039](https://github.com/realm/realm-core/pull/6039))
Expand Down Expand Up @@ -384,7 +492,7 @@
* Fix crash when upserting a document with the primary key not an ObjectId into a mongo collection. ([#5345](https://github.com/realm/realm-core/issues/5345), since v10.0.0).

### Breaking changes
None.
* None.

### Compatibility
* Fileformat: Generates files with format v22. Reads and automatically upgrade from fileformat v5.
Expand Down Expand Up @@ -475,7 +583,7 @@ None.
* Using the Query Parser, it was not allowed to query on a property named 'desc'. ([#5723](https://github.com/realm/realm-core/issues/5723))

### Breaking changes
* None.
* None

### Compatibility
* Fileformat: Generates files with format v22. Reads and automatically upgrade from fileformat v5.
Expand Down
4 changes: 2 additions & 2 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
import PackageDescription
import Foundation

let versionStr = "13.3.0"
let versionStr = "13.5.0"
let versionPieces = versionStr.split(separator: "-")
let versionCompontents = versionPieces[0].split(separator: ".")
let versionExtra = versionPieces.count > 1 ? versionPieces[1] : ""
Expand Down Expand Up @@ -93,7 +93,6 @@ let notSyncServerSources: [String] = [
"realm/spec.cpp",
"realm/status.cpp",
"realm/string_data.cpp",
"realm/sync/binding_callback_thread_observer.cpp",
"realm/sync/changeset.cpp",
"realm/sync/changeset_encoder.cpp",
"realm/sync/changeset_parser.cpp",
Expand All @@ -115,6 +114,7 @@ let notSyncServerSources: [String] = [
"realm/sync/noinst/client_reset_operation.cpp",
"realm/sync/noinst/client_reset_recovery.cpp",
"realm/sync/noinst/compact_changesets.cpp",
"realm/sync/noinst/migration_store.cpp",
"realm/sync/noinst/pending_bootstrap_store.cpp",
"realm/sync/noinst/protocol_codec.cpp",
"realm/sync/noinst/sync_metadata_schema.cpp",
Expand Down
6 changes: 3 additions & 3 deletions dependencies.list
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
PACKAGE_NAME=realm-core
VERSION=13.3.0
OPENSSL_VERSION=3.0.7
VERSION=13.5.0
OPENSSL_VERSION=3.0.8
WIN32_ZLIB_VERSION=1.2.13
MDBREALM_TEST_SERVER_TAG=2023-01-19
MDBREALM_TEST_SERVER_TAG=2023-02-18
77 changes: 76 additions & 1 deletion evergreen/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,10 @@ functions:
set_cmake_var realm_vars REALM_ENABLE_ALLOC_SET_ZERO BOOL On
fi

if [ -n "${enable_fuzzer|}" ]; then
set_cmake_var realm_vars REALM_LIBFUZZER BOOL On
fi

if [ -z "${disable_sync|}" ]; then
set_cmake_var realm_vars REALM_ENABLE_SYNC BOOL On
fi
Expand Down Expand Up @@ -225,6 +229,35 @@ functions:
display_name: install baas output
optional: true

"upload fuzzer results":
- command: shell.exec
params:
working_dir: realm-core/build/test/realm-fuzzer
script: |-
if ls crash-*> /dev/null 2>&1; then
echo "Found crash file"
mv crash-* realm-fuzzer-crash.txt
fi

- command: s3.put
params:
working_dir: realm-core/build/test/realm-fuzzer
aws_key: '${artifacts_aws_access_key}'
aws_secret: '${artifacts_aws_secret_key}'
local_file: 'realm-core/build/test/realm-fuzzer/realm-fuzzer-crash.txt'
remote_file: '${project}/${branch_name}/${task_id}/${execution}/realm-fuzzer-crash.txt'
bucket: mciuploads
permissions: public-read
content_type: text/text
display_name: Fuzzer crash report
optional: true

- command: shell.exec
params:
working_dir: realm-core/build/test/realm-fuzzer
script: |-
rm realm-fuzzer-crash.txt

"run hang analyzer":
- command: shell.exec
params:
Expand Down Expand Up @@ -592,7 +625,7 @@ tasks:
export DEVELOPER_DIR="${xcode_developer_dir}"
fi

./evergreen/install_baas.sh -w ./baas-work-dir -b 1e1df073f20bbf490c0f57086e890aa482855f61 2>&1 | tee install_baas_output.log
./evergreen/install_baas.sh -w ./baas-work-dir -b 029b693c53074c29379a67789d6a56740b1aaef9 2>&1 | tee install_baas_output.log
fi

- command: shell.exec
Expand Down Expand Up @@ -659,6 +692,15 @@ tasks:
echo $out
exit 1

- name: fuzzer
commands:
- command: shell.exec
params:
working_dir: realm-core/build/test/realm-fuzzer
shell: /bin/bash
script: |-
${cmake_build_type|Debug}/realm-libfuzz -rss_limit_mb=0 -max_total_time=3600

task_groups:
- name: compile_test_and_package
max_hosts: 1
Expand Down Expand Up @@ -730,6 +772,19 @@ task_groups:
tasks:
- long-running-core-tests

- name: fuzzer-tests
setup_group_can_fail_task: true
setup_group:
- func: "fetch source"
- func: "fetch binaries"
- func: "compile"
vars:
target_to_build: realm-libfuzz
teardown_task:
- func: "upload fuzzer results"
tasks:
- fuzzer

buildvariants:
- name: ubuntu2004
display_name: "Ubuntu 20.04 x86_64 (Clang 11)"
Expand Down Expand Up @@ -862,6 +917,26 @@ buildvariants:
distros:
- ubuntu2004-large

- name: ubuntu2004-fuzzer
display_name: "Ubuntu 20.04 x86_64 (Clang 11 Fuzzer)"
run_on: ubuntu2004-large
expansions:
clang_url: "https://s3.amazonaws.com/static.realm.io/evergreen-assets/clang%2Bllvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz"
cmake_url: "https://s3.amazonaws.com/static.realm.io/evergreen-assets/cmake-3.20.3-linux-x86_64.tar.gz"
cmake_bindir: "./cmake_binaries/bin"
fetch_missing_dependencies: On
run_tests_against_baas: On
enable_ubsan: On
c_compiler: "./clang_binaries/bin/clang"
cxx_compiler: "./clang_binaries/bin/clang++"
cmake_build_type: RelWithDebInfo
run_with_encryption: On
enable_fuzzer: On
tasks:
- name: fuzzer-tests
cron: "@daily"
patchable: true

- name: rhel70
display_name: "RHEL 7 x86_64"
run_on: rhel70-small
Expand Down
2 changes: 1 addition & 1 deletion evergreen/install_baas.sh
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ YARN="$WORK_PATH/yarn/bin/yarn"
if [[ ! -x "$YARN" ]]; then
echo "Getting yarn"
mkdir yarn && cd yarn
$CURL -LsS https://s3.amazonaws.com/stitch-artifacts/yarn/latest.tar.gz | tar -xz --strip-components=1
$CURL -LsS https://yarnpkg.com/latest.tar.gz | tar -xz --strip-components=1
cd -
mkdir "$WORK_PATH/yarn_cache"
fi
Expand Down
Loading