Enhancements
- Added change_base_url() function to update the App base URL at runtime. (PR #7173)
- Sync Client should use the base_url value provided in App::Config instead of always using stored info after first connection to server. (#7201)
Fixed
- Handle
EOPNOTSUPP
when usingposix_fallocate()
and fallback to manually consume space. This should enable android users to open a Realm on restrictive filesystems. (realm-js #6349, more prevalent since v13.23.3 with the change toREALM_HAVE_POSIX_FALLOCATE
but it was also an issue in some platforms before this) - Application may crash with
incoming_changesets.size() != 0
when a download message is mistaken for a bootstrap message. This can happen if the synchronization session is paused and resumed at a specific time. (PR #7238, since v11.8.0) - Fixed errors complaining about missing symbols such as
__atomic_is_lock_free
on ARMv7 Linux. (PR #7257)
Breaking changes
App::get_uncached_app(...)
andApp::get_shared_app(...)
have been replaced byApp::get_app(App::CacheMode, ...)
. The App constructor is now enforced to be unusable, useApp::get_app()
instead. (#7237)- The schema version field in the Realm config had no use for the flexible sync Realms previously. It is now being used for the upcoming Sync Schema Migrations feature. If it was set to a value other than zero, the application will start receiving an error from the server. Data synchronization will be stopped until the Realm is opened with schema version zero. (PR #7239)
Compatibility
- Fileformat: Generates files with format v23. Reads and automatically upgrade from fileformat v5.
Internals
- Add support for chunked transfer encoding when using
HTTPParser
. - Bump the sync protocol to v11. The new protocol version comes with the following changes:
- JSON_ERROR server message contains the previous schema version
- Flexible sync BIND client message contains the current schema version
- Add BAAS admin API to create new schema versions (drafts can be used to deploy all changes at once)