Skip to content

Commit 2a5f1bd

Browse files
Prepare for 12.3.0 (#3648)
* Prepare for 12.3.0 * Try to use older cmake version * Fix docs generation * Update to 14.11.0 --------- Co-authored-by: nirinchev <nirinchev@users.noreply.github.com> Co-authored-by: Nikola Irinchev <irinchev@me.com>
1 parent 2d856d8 commit 2a5f1bd

File tree

11 files changed

+107
-4
lines changed

11 files changed

+107
-4
lines changed

.github/pkl-workflows/helpers/Actions.pkl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,4 @@ const mergePR = "juliangruber/merge-pull-request-action@9234b8714dda9a08f3d1df5b
2222
const createPR = "peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e" // 6.0.5
2323
const publishGithubRelease = "ncipollo/release-action@2c591bcc8ecdcd2db72b97d6147f871fcd833ba5" // 1.14.0
2424
const releaseToSlack = "realm/ci-actions/release-to-slack@6418e15ed9bbdb19b7d456a347e5623779f95cdf"
25+
const setupCmake = "jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be" // 2.0.2

.github/pkl-workflows/helpers/Package.pkl

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,4 +116,27 @@ local const function buildDocs(condition: String): Listing<gha.Step> = new {
116116
}
117117
run = "C:\\docfx\\docfx Docs/docfx.json"
118118
}
119+
new {
120+
name = "Update Improve this doc links"
121+
`if` = condition
122+
run = """
123+
Get-ChildItem Docs/_site -Filter *.html -Recurse -File |
124+
ForEach-Object {
125+
$content = ($_ | Get-Content -Raw)
126+
$content = $content -replace "/Docs/apispec/new\\?filename", "/Docs/apispec?filename"
127+
Set-Content $_.FullName $content
128+
}
129+
"""
130+
shell = "pwsh"
131+
}
132+
new {
133+
name = "Archive docs"
134+
`if` = condition
135+
run = """
136+
Compress-Archive -Path Docs/_site -DestinationPath "Realm/packages/Docs.zip"
137+
"""
138+
}
139+
(Steps.uploadArtifacts("Docs.zip", "Realm/packages/Docs.zip")) {
140+
`if` = condition
141+
}
119142
}

.github/pkl-workflows/helpers/Steps.pkl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,14 @@ const function setupXcode(version: String): gha.Step = new {
6060
}
6161
}
6262

63+
const function setupCmake(version: String): gha.Step = new {
64+
name = "Setup Cmake"
65+
uses = Actions.setupCmake
66+
with {
67+
["cmake-version"] = version
68+
}
69+
}
70+
6371
const function setupMSVC(edition: String): gha.Step = new {
6472
name = "Setup MSVC"
6573
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"

.github/pkl-workflows/wrappers.pkl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,19 @@ jobs {
5252
} |> wrappersJob(new JobConfig {
5353
cmd = "./wrappers/build-macos.sh"
5454
platform = "macos"
55+
intermediateSteps {
56+
Steps.setupCmake("3.29.0")
57+
}
5558
})
5659
["catalyst"] = new Job {
5760
`runs-on` = "macos-12"
5861
name = "Catalyst"
5962
} |> wrappersJob(new JobConfig {
6063
cmd = "pwsh ./wrappers/build-apple-platform.ps1 Catalyst"
6164
platform = "catalyst"
65+
intermediateSteps {
66+
Steps.setupCmake("3.29.0")
67+
}
6268
})
6369
["apple-platform"] = new MatrixJob {
6470
strategy {
@@ -75,6 +81,7 @@ jobs {
7581
platform = "${{ matrix.platform }}-${{ matrix.target }}"
7682
intermediateSteps {
7783
Steps.setupXcode("14")
84+
Steps.setupCmake("3.29.0")
7885
}
7986
ifCondition = "\(Common.applePlatformTargets((platform, target) -> "needs.\(job_CheckCache).outputs.wrappers-\(platform)-\(target) != 'true'").join(" || "))"
8087
})

.github/workflows/main.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,27 @@ jobs:
274274
env:
275275
DOCFX_SOURCE_BRANCH_NAME: ${{ github.head_ref }}
276276
run: C:\docfx\docfx Docs/docfx.json
277+
- name: Update Improve this doc links
278+
if: contains(github.head_ref, 'release')
279+
run: |-
280+
Get-ChildItem Docs/_site -Filter *.html -Recurse -File |
281+
ForEach-Object {
282+
$content = ($_ | Get-Content -Raw)
283+
$content = $content -replace "/Docs/apispec/new\?filename", "/Docs/apispec?filename"
284+
Set-Content $_.FullName $content
285+
}
286+
shell: pwsh
287+
- name: Archive docs
288+
if: contains(github.head_ref, 'release')
289+
run: Compress-Archive -Path Docs/_site -DestinationPath "Realm/packages/Docs.zip"
290+
- name: Store artifacts for Docs.zip
291+
if: contains(github.head_ref, 'release')
292+
uses: actions/upload-artifact@v4
293+
with:
294+
name: Docs.zip
295+
path: Realm/packages/Docs.zip
296+
retention-days: ${{ github.event_name != 'pull_request' && 30 || 1 }}
297+
if-no-files-found: error
277298
build-unity:
278299
name: Package Unity
279300
needs:

.github/workflows/pr.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,27 @@ jobs:
274274
env:
275275
DOCFX_SOURCE_BRANCH_NAME: ${{ github.head_ref }}
276276
run: C:\docfx\docfx Docs/docfx.json
277+
- name: Update Improve this doc links
278+
if: contains(github.head_ref, 'release')
279+
run: |-
280+
Get-ChildItem Docs/_site -Filter *.html -Recurse -File |
281+
ForEach-Object {
282+
$content = ($_ | Get-Content -Raw)
283+
$content = $content -replace "/Docs/apispec/new\?filename", "/Docs/apispec?filename"
284+
Set-Content $_.FullName $content
285+
}
286+
shell: pwsh
287+
- name: Archive docs
288+
if: contains(github.head_ref, 'release')
289+
run: Compress-Archive -Path Docs/_site -DestinationPath "Realm/packages/Docs.zip"
290+
- name: Store artifacts for Docs.zip
291+
if: contains(github.head_ref, 'release')
292+
uses: actions/upload-artifact@v4
293+
with:
294+
name: Docs.zip
295+
path: Realm/packages/Docs.zip
296+
retention-days: ${{ github.event_name != 'pull_request' && 30 || 1 }}
297+
if-no-files-found: error
277298
build-unity:
278299
name: Package Unity
279300
needs:

.github/workflows/wrappers.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,11 @@ jobs:
405405
with:
406406
path: ./wrappers/build/**
407407
key: wrappers-macos-Release-${{hashFiles('./wrappers/**')}}
408+
- name: Setup Cmake
409+
if: steps.check-cache.outputs.cache-hit != 'true'
410+
uses: jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be
411+
with:
412+
cmake-version: 3.29.0
408413
- name: Build Wrappers
409414
if: steps.check-cache.outputs.cache-hit != 'true'
410415
run: ./wrappers/build-macos.sh --configuration=Release -DCMAKE_INTERPROCEDURAL_OPTIMIZATION='ON'
@@ -434,6 +439,11 @@ jobs:
434439
with:
435440
path: ./wrappers/build/**
436441
key: wrappers-catalyst-Release-${{hashFiles('./wrappers/**')}}
442+
- name: Setup Cmake
443+
if: steps.check-cache.outputs.cache-hit != 'true'
444+
uses: jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be
445+
with:
446+
cmake-version: 3.29.0
437447
- name: Build Wrappers
438448
if: steps.check-cache.outputs.cache-hit != 'true'
439449
run: pwsh ./wrappers/build-apple-platform.ps1 Catalyst -Configuration Release -EnableLTO
@@ -468,6 +478,11 @@ jobs:
468478
uses: maxim-lobanov/setup-xcode@60606e260d2fc5762a71e64e74b2174e8ea3c8bd
469479
with:
470480
xcode-version: '14'
481+
- name: Setup Cmake
482+
if: steps.check-cache.outputs.cache-hit != 'true'
483+
uses: jwlawson/actions-setup-cmake@802fa1a2c4e212495c05bf94dba2704a92a472be
484+
with:
485+
cmake-version: 3.29.0
471486
- name: Build Wrappers
472487
if: steps.check-cache.outputs.cache-hit != 'true'
473488
run: 'pwsh ./wrappers/build-apple-platform.ps1 ${{ matrix.platform }} -Targets ${{ matrix.target }} -Configuration Release '

CHANGELOG.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
## vNext (TBD)
1+
## 12.3.0 (2024-07-17)
22

33
### Deprecations
44
* The `Logger` has been deprecated in favor of `RealmLogger`, which `Logger` currently derives from. (PR [#3634](https://github.com/realm/realm-dotnet/pull/3634))
@@ -24,6 +24,8 @@
2424
```csharp
2525
RealmLogger.Default.Log(LogLevel.Warn, LogCategory.Realm, "A warning message");
2626
```
27+
* 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)
28+
* Role and permissions changes no longer require a client reset to update the local realm. (Core 14.11.0)
2729

2830
### Fixed
2931
* 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)
@@ -41,6 +43,11 @@
4143
* 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)
4244
* 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)
4345
* `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)
46+
* 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)
47+
* Sync client can crash if a session is resumed while the session is being suspended. (Core 14.11.0)
48+
* 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)
49+
* Fixed unnecessary server roundtrips when there is no download to acknowledge. (Core 14.11.0)
50+
4451

4552
### Compatibility
4653
* Realm Studio: 15.0.0 or later.

Realm/AssemblyInfo.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
22
<PropertyGroup>
33
<Product Condition="'$(Product)' == ''">Realm .NET</Product>
4-
<VersionPrefix>12.2.0</VersionPrefix>
4+
<VersionPrefix>12.3.0</VersionPrefix>
55
<Description Condition="'$(Description)' == ''">Realm is a mobile database: a replacement for SQLite</Description>
66
<Company>Realm Inc.</Company>
77
<Copyright>Copyright © $([System.DateTime]::Now.ToString(yyyy)) Realm Inc.</Copyright>

Realm/Realm.Unity/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "io.realm.unity",
3-
"version": "12.2.0",
3+
"version": "12.3.0",
44
"displayName": "Realm",
55
"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.",
66
"unity": "2021.1",

0 commit comments

Comments
 (0)