Skip to content

Commit

Permalink
Prepare for 12.3.0 (#3648)
Browse files Browse the repository at this point in the history
* Prepare for 12.3.0

* Try to use older cmake version

* Fix docs generation

* Update to 14.11.0

---------

Co-authored-by: nirinchev <[email protected]>
Co-authored-by: Nikola Irinchev <[email protected]>
  • Loading branch information
3 people authored Jul 20, 2024
1 parent 2d856d8 commit 2a5f1bd
Show file tree
Hide file tree
Showing 11 changed files with 107 additions and 4 deletions.
1 change: 1 addition & 0 deletions .github/pkl-workflows/helpers/Actions.pkl
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ const mergePR = "juliangruber/merge-pull-request-action@9234b8714dda9a08f3d1df5b
const createPR = "peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e" // 6.0.5
const publishGithubRelease = "ncipollo/release-action@2c591bcc8ecdcd2db72b97d6147f871fcd833ba5" // 1.14.0
const releaseToSlack = "realm/ci-actions/release-to-slack@6418e15ed9bbdb19b7d456a347e5623779f95cdf"
const setupCmake = "jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be" // 2.0.2
23 changes: 23 additions & 0 deletions .github/pkl-workflows/helpers/Package.pkl
Original file line number Diff line number Diff line change
Expand Up @@ -116,4 +116,27 @@ local const function buildDocs(condition: String): Listing<gha.Step> = new {
}
run = "C:\\docfx\\docfx Docs/docfx.json"
}
new {
name = "Update Improve this doc links"
`if` = condition
run = """
Get-ChildItem Docs/_site -Filter *.html -Recurse -File |
ForEach-Object {
$content = ($_ | Get-Content -Raw)
$content = $content -replace "/Docs/apispec/new\\?filename", "/Docs/apispec?filename"
Set-Content $_.FullName $content
}
"""
shell = "pwsh"
}
new {
name = "Archive docs"
`if` = condition
run = """
Compress-Archive -Path Docs/_site -DestinationPath "Realm/packages/Docs.zip"
"""
}
(Steps.uploadArtifacts("Docs.zip", "Realm/packages/Docs.zip")) {
`if` = condition
}
}
8 changes: 8 additions & 0 deletions .github/pkl-workflows/helpers/Steps.pkl
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,14 @@ const function setupXcode(version: String): gha.Step = new {
}
}

const function setupCmake(version: String): gha.Step = new {
name = "Setup Cmake"
uses = Actions.setupCmake
with {
["cmake-version"] = version
}
}

const function setupMSVC(edition: String): gha.Step = new {
name = "Setup MSVC"
run = "Start-Process \"C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\vs_installer.exe\" -ArgumentList 'modify --installPath \"C:\\Program Files\\Microsoft Visual Studio\\2022\\Enterprise\" --quiet --add Microsoft.VisualStudio.Component.VC.14.35.17.5.\(edition)' -Wait -PassThru"
Expand Down
7 changes: 7 additions & 0 deletions .github/pkl-workflows/wrappers.pkl
Original file line number Diff line number Diff line change
Expand Up @@ -52,13 +52,19 @@ jobs {
} |> wrappersJob(new JobConfig {
cmd = "./wrappers/build-macos.sh"
platform = "macos"
intermediateSteps {
Steps.setupCmake("3.29.0")
}
})
["catalyst"] = new Job {
`runs-on` = "macos-12"
name = "Catalyst"
} |> wrappersJob(new JobConfig {
cmd = "pwsh ./wrappers/build-apple-platform.ps1 Catalyst"
platform = "catalyst"
intermediateSteps {
Steps.setupCmake("3.29.0")
}
})
["apple-platform"] = new MatrixJob {
strategy {
Expand All @@ -75,6 +81,7 @@ jobs {
platform = "${{ matrix.platform }}-${{ matrix.target }}"
intermediateSteps {
Steps.setupXcode("14")
Steps.setupCmake("3.29.0")
}
ifCondition = "\(Common.applePlatformTargets((platform, target) -> "needs.\(job_CheckCache).outputs.wrappers-\(platform)-\(target) != 'true'").join(" || "))"
})
Expand Down
21 changes: 21 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,27 @@ jobs:
env:
DOCFX_SOURCE_BRANCH_NAME: ${{ github.head_ref }}
run: C:\docfx\docfx Docs/docfx.json
- name: Update Improve this doc links
if: contains(github.head_ref, 'release')
run: |-
Get-ChildItem Docs/_site -Filter *.html -Recurse -File |
ForEach-Object {
$content = ($_ | Get-Content -Raw)
$content = $content -replace "/Docs/apispec/new\?filename", "/Docs/apispec?filename"
Set-Content $_.FullName $content
}
shell: pwsh
- name: Archive docs
if: contains(github.head_ref, 'release')
run: Compress-Archive -Path Docs/_site -DestinationPath "Realm/packages/Docs.zip"
- name: Store artifacts for Docs.zip
if: contains(github.head_ref, 'release')
uses: actions/upload-artifact@v4
with:
name: Docs.zip
path: Realm/packages/Docs.zip
retention-days: ${{ github.event_name != 'pull_request' && 30 || 1 }}
if-no-files-found: error
build-unity:
name: Package Unity
needs:
Expand Down
21 changes: 21 additions & 0 deletions .github/workflows/pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,27 @@ jobs:
env:
DOCFX_SOURCE_BRANCH_NAME: ${{ github.head_ref }}
run: C:\docfx\docfx Docs/docfx.json
- name: Update Improve this doc links
if: contains(github.head_ref, 'release')
run: |-
Get-ChildItem Docs/_site -Filter *.html -Recurse -File |
ForEach-Object {
$content = ($_ | Get-Content -Raw)
$content = $content -replace "/Docs/apispec/new\?filename", "/Docs/apispec?filename"
Set-Content $_.FullName $content
}
shell: pwsh
- name: Archive docs
if: contains(github.head_ref, 'release')
run: Compress-Archive -Path Docs/_site -DestinationPath "Realm/packages/Docs.zip"
- name: Store artifacts for Docs.zip
if: contains(github.head_ref, 'release')
uses: actions/upload-artifact@v4
with:
name: Docs.zip
path: Realm/packages/Docs.zip
retention-days: ${{ github.event_name != 'pull_request' && 30 || 1 }}
if-no-files-found: error
build-unity:
name: Package Unity
needs:
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/wrappers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,11 @@ jobs:
with:
path: ./wrappers/build/**
key: wrappers-macos-Release-${{hashFiles('./wrappers/**')}}
- name: Setup Cmake
if: steps.check-cache.outputs.cache-hit != 'true'
uses: jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be
with:
cmake-version: 3.29.0
- name: Build Wrappers
if: steps.check-cache.outputs.cache-hit != 'true'
run: ./wrappers/build-macos.sh --configuration=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION='ON'
Expand Down Expand Up @@ -434,6 +439,11 @@ jobs:
with:
path: ./wrappers/build/**
key: wrappers-catalyst-Release-${{hashFiles('./wrappers/**')}}
- name: Setup Cmake
if: steps.check-cache.outputs.cache-hit != 'true'
uses: jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be
with:
cmake-version: 3.29.0
- name: Build Wrappers
if: steps.check-cache.outputs.cache-hit != 'true'
run: pwsh ./wrappers/build-apple-platform.ps1 Catalyst -Configuration Release -EnableLTO
Expand Down Expand Up @@ -468,6 +478,11 @@ jobs:
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd
with:
xcode-version: '14'
- name: Setup Cmake
if: steps.check-cache.outputs.cache-hit != 'true'
uses: jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be
with:
cmake-version: 3.29.0
- name: Build Wrappers
if: steps.check-cache.outputs.cache-hit != 'true'
run: 'pwsh ./wrappers/build-apple-platform.ps1 ${{ matrix.platform }} -Targets ${{ matrix.target }} -Configuration Release '
Expand Down
9 changes: 8 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## vNext (TBD)
## 12.3.0 (2024-07-17)

### Deprecations
* The `Logger` has been deprecated in favor of `RealmLogger`, which `Logger` currently derives from. (PR [#3634](https://github.com/realm/realm-dotnet/pull/3634))
Expand All @@ -24,6 +24,8 @@
```csharp
RealmLogger.Default.Log(LogLevel.Warn, LogCategory.Realm, "A warning message");
```
* On Windows devices Device Sync will additionally look up SSL certificates in the Windows Trusted Root Certification Authorities certificate store when establishing a connection. (Core 14.11.0)
* Role and permissions changes no longer require a client reset to update the local realm. (Core 14.11.0)

### Fixed
* A `ForCurrentlyOutstandingWork` progress notifier would not immediately call its callback after registration. Instead you would have to wait for some data to be received to get your first update - if you were already caught up when you registered the notifier you could end up waiting a long time for the server to deliver a download that would call/expire your notifier. (Core 14.8.0)
Expand All @@ -41,6 +43,11 @@
* Fixed removing backlinks from the wrong objects if the link came from a nested list, nested dictionary, top-level dictionary, or list of `RealmValue`, and the source table had more than 256 objects. This could manifest as `array_backlink.cpp:112: Assertion failed: int64_t(value >> 1) == key.value` when removing an object. (Core 14.10.3)
* Fixed the collapse/rejoin of clusters which contained nested collections with links. This could manifest as `array.cpp:319: Array::move() Assertion failed: begin <= end [2, 1]` when removing an object. (Core 14.10.3)
* `Session.WaitForUpload()` was inconsistent in how it handled commits which did not produce any changesets to upload. Previously it would sometimes complete immediately if all commits waiting to be uploaded were empty, and at other times it would wait for a server roundtrip. It will now always complete immediately. (Core 14.10.3)
* When a property is remapped, calling `.Filter("... SORT/DISTINCT(mapped-to-name)")` with the internal name could throw an error like `Cannot sort on key path 'NAME': property 'PersonObject.NAME' does not exist`. (Core 14.10.4)
* Sync client can crash if a session is resumed while the session is being suspended. (Core 14.11.0)
* If a sync session is interrupted by a disconnect or restart while downloading a bootstrap, stale data from the previous bootstrap may be included when the session reconnects and downloads the bootstrap. This can lead to objects stored in the database that do not match the actual state of the server and potentially leading to compensating writes. (Core 14.11.0)
* Fixed unnecessary server roundtrips when there is no download to acknowledge. (Core 14.11.0)


### Compatibility
* Realm Studio: 15.0.0 or later.
Expand Down
2 changes: 1 addition & 1 deletion Realm/AssemblyInfo.props
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Product Condition="'$(Product)' == ''">Realm .NET</Product>
<VersionPrefix>12.2.0</VersionPrefix>
<VersionPrefix>12.3.0</VersionPrefix>
<Description Condition="'$(Description)' == ''">Realm is a mobile database: a replacement for SQLite</Description>
<Company>Realm Inc.</Company>
<Copyright>Copyright © $([System.DateTime]::Now.ToString(yyyy)) Realm Inc.</Copyright>
Expand Down
2 changes: 1 addition & 1 deletion Realm/Realm.Unity/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "io.realm.unity",
"version": "12.2.0",
"version": "12.3.0",
"displayName": "Realm",
"description": "Realm is an embedded, object-oriented database that lets you build real-time, always-on applications. With Realm, data is directly exposed as objects and queryable by code, removing the need for ORM's riddled with performance & maintenance issues. Additionally, objects and collections in Realm are always live, meaning that they always reflect the latest data stored in the database. You can subscribe to changes, letting you keep your UI consistently up to date.\nThe .NET Realm SDK also provide access to Atlas App Services, a secure backend that can sync data between devices, authenticate and manage users, and run serverless JavaScript functions.",
"unity": "2021.1",
Expand Down
2 changes: 1 addition & 1 deletion wrappers/realm-core
Submodule realm-core updated 44 files
+51 −2 CHANGELOG.md
+1 −1 Package.swift
+4 −3 dependencies.yml
+2 −1 evergreen/config.yml
+19 −3 src/realm.h
+5 −0 src/realm/object-store/c_api/app.cpp
+17 −0 src/realm/object-store/c_api/schema.cpp
+2 −0 src/realm/object-store/c_api/sync.cpp
+12 −0 src/realm/object-store/c_api/types.hpp
+3 −0 src/realm/object-store/results.cpp
+19 −0 src/realm/object-store/sync/async_open_task.cpp
+9 −0 src/realm/object-store/sync/async_open_task.hpp
+3 −1 src/realm/object-store/sync/sync_session.hpp
+4 −6 src/realm/sync/CMakeLists.txt
+55 −67 src/realm/sync/client.cpp
+21 −11 src/realm/sync/config.hpp
+123 −2 src/realm/sync/network/network_ssl.cpp
+2 −0 src/realm/sync/network/network_ssl.hpp
+12 −0 src/realm/sync/noinst/client_history_impl.cpp
+9 −0 src/realm/sync/noinst/client_history_impl.hpp
+40 −28 src/realm/sync/noinst/client_impl_base.cpp
+15 −12 src/realm/sync/noinst/client_impl_base.hpp
+13 −5 src/realm/sync/noinst/pending_bootstrap_store.cpp
+2 −1 src/realm/sync/noinst/pending_bootstrap_store.hpp
+10 −5 src/realm/sync/noinst/protocol_codec.hpp
+22 −6 src/realm/sync/protocol.hpp
+1 −3 src/realm/sync/tools/apply_to_state_command.cpp
+1 −0 test/object-store/CMakeLists.txt
+72 −32 test/object-store/c_api/c_api.cpp
+25 −2 test/object-store/results.cpp
+1 −16 test/object-store/sync/app.cpp
+109 −19 test/object-store/sync/client_reset.cpp
+1,223 −0 test/object-store/sync/flx_role_change.cpp
+74 −77 test/object-store/sync/flx_sync.cpp
+9 −6 test/object-store/sync/session/connection_change_notifications.cpp
+280 −18 test/object-store/sync/session/progress_notifications.cpp
+84 −36 test/object-store/util/sync/baas_admin_api.cpp
+12 −5 test/object-store/util/sync/baas_admin_api.hpp
+1 −1 test/object-store/util/sync/flx_sync_harness.hpp
+23 −17 test/object-store/util/sync/sync_test_utils.cpp
+12 −0 test/object-store/util/sync/sync_test_utils.hpp
+14 −2 test/object-store/util/test_utils.hpp
+3 −3 test/test_sync_pending_bootstraps.cpp
+73 −0 test/test_util_network_ssl.cpp

0 comments on commit 2a5f1bd

Please sign in to comment.