Skip to content

Commit 7fd6ca8

Browse files
committed
Merge branch 'master' of github.com:realm/realm-core into next-major
2 parents 41d7ffa + dde1ab2 commit 7fd6ca8

File tree

17 files changed

+249
-87
lines changed

17 files changed

+249
-87
lines changed

.github/workflows/make-release.yml

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
name: "Make Release"
2+
3+
# This runs automatically after a release PR is merged
4+
# See github.com/realm/realm-core/doc/development/how-to-release.md
5+
6+
on:
7+
pull_request:
8+
types:
9+
- closed
10+
11+
jobs:
12+
finish_release:
13+
if: github.event.pull_request.merged == true && startsWith(github.head_ref, 'release/automated_v')
14+
runs-on: ubuntu-latest
15+
steps:
16+
- name: Checkout
17+
uses: actions/checkout@v4
18+
with:
19+
submodules: false
20+
- name: Read version
21+
id: get-version
22+
run: |
23+
realm_version=$(sed -rn 's/^VERSION: (.*)/\1/p' < "dependencies.yml")
24+
echo "version=$realm_version" >> $GITHUB_OUTPUT
25+
shell: bash
26+
- name: Extract Release Notes Section
27+
run: |
28+
awk '/^#.*Release notes/{if(++i>1)exit} i' CHANGELOG.md > extracted_changelog.md
29+
shell: bash
30+
- name: Make Tag and Publish Github Release
31+
uses: ncipollo/release-action@2c591bcc8ecdcd2db72b97d6147f871fcd833ba5 #! 1.14.0
32+
with:
33+
bodyFile: extracted_changelog.md
34+
name: ${{ steps.get-version.outputs.version }}
35+
commit: ${{ github.base_ref }}
36+
tag: ${{ steps.get-version.outputs.version }}
37+
token: ${{ secrets.GITHUB_TOKEN }}
38+
draft: false
39+
- name: Update Changelog
40+
run: |
41+
cat "doc/CHANGELOG_template.md" "CHANGELOG.md" > temp_file.md; mv temp_file.md "CHANGELOG.md"
42+
shell: bash
43+
- name: Create vNext PR
44+
id: vnext-pr
45+
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e #! 6.0.5
46+
with:
47+
branch: prepare-vnext
48+
title: Prepare for vNext
49+
body: Update Changelog for vNext
50+
delete-branch: true
51+
draft: false
52+
base: ${{ github.base_ref }}
53+
labels: no-jira-ticket
54+
add-paths: CHANGELOG.md
55+
commit-message: New changelog section to prepare for vNext
56+
- name: Merge Pull Request
57+
uses: juliangruber/merge-pull-request-action@9234b8714dda9a08f3d1df5b2a6a3abd7b695353 #! 1.3.1
58+
with:
59+
github-token: ${{ secrets.GITHUB_TOKEN }}
60+
number: ${{ steps.vnext-pr.outputs.pull-request-number }}
61+
method: squash
62+
- name: 'Post to #appx-releases'
63+
uses: realm/ci-actions/release-to-slack@fa20eb972b9f018654fdb4e2c7afb52b0532f907
64+
with:
65+
changelog: extracted_changelog.md
66+
sdk: Core
67+
webhook-url: ${{ secrets.SLACK_RELEASE_WEBHOOK }}
68+
version: ${{ steps.get-version.outputs.version }}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Prepare Release
2+
3+
# This action is triggered manually and starts the release process.
4+
# See github.com/realm/realm-core/doc/development/how-to-release.md
5+
6+
on:
7+
workflow_dispatch:
8+
inputs:
9+
version:
10+
description: Use this to provide a version. For example "10.123.1" or "4.5.0-CustDemo".
11+
required: true
12+
type: string
13+
14+
jobs:
15+
main:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- name: Checkout Code
19+
uses: actions/checkout@v4
20+
with:
21+
submodules: false
22+
fetch-depth: 0 # include history and tags
23+
- name: Change Version
24+
run: tools/release-init.sh ${{ inputs.version }}
25+
shell: bash
26+
- name: Create Release PR
27+
uses: peter-evans/create-pull-request@6d6857d36972b65feb161a90e484f2984215f83e #! 6.0.5
28+
with:
29+
branch: release/automated_v${{ inputs.version }}
30+
title: Prepare for ${{ inputs.version }}
31+
draft: false
32+
body-path: changes-since-last-tag.txt
33+
labels: no-jira-ticket
34+
commit-message: Prepare for release ${{ inputs.version }}
35+
token: ${{ secrets.REALM_CI_PAT }}
36+
add-paths: |
37+
dependencies.yml
38+
Package.swift
39+
CHANGELOG.md

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,3 +107,7 @@ tsconfig.tsbuildinfo
107107
# Baas remote host artifacts
108108
baas-work-dir/
109109
ssh_agent_commands.sh
110+
111+
# release script artifacts
112+
extracted_changelog.md
113+
changes-since-last-tag.txt

Android.bp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ cc_object {
7575
"src/external/IntelRDFPMathLib20U2/LIBRARY/src/bid128_string.c",
7676
"src/external/IntelRDFPMathLib20U2/LIBRARY/src/bid128_2_str_tables.c",
7777
"src/external/IntelRDFPMathLib20U2/LIBRARY/src/bid64_to_bid128.c",
78+
"src/external/IntelRDFPMathLib20U2/LIBRARY/src/bid32_to_bid128.c",
7879
"src/external/IntelRDFPMathLib20U2/LIBRARY/src/bid128_to_int64.c",
7980
"src/external/IntelRDFPMathLib20U2/LIBRARY/src/bid128_quantize.c",
8081
"src/external/IntelRDFPMathLib20U2/LIBRARY/src/bid_convert_data.c",

CHANGELOG.md

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
1-
# NEXT MAJOR RELEASE
1+
# NEXT RELEASE
22

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

66
### Fixed
77
* <How do the end-user experience this issue? what was the impact?> ([#????](https://github.com/realm/realm-core/issues/????), since v?.?.?)
8-
* None.
98

109
### Breaking changes
1110
* None.
@@ -20,6 +19,28 @@
2019

2120
----------------------------------------------
2221

22+
# 14.8.0 Release notes
23+
24+
### Enhancements
25+
* Add vendor support to the Android Blueprint (PR [#7614](https://github.com/realm/realm-core/pull/7614)).
26+
27+
### Fixed
28+
* A non-streaming progress notifier would not immediately call its callback after registration. Instead you would have to wait for a download message 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 ([#7627](https://github.com/realm/realm-core/issues/7627), since v14.6.0).
29+
* Comparing a numeric property with an argument list containing a string would throw. ([#7714](https://github.com/realm/realm-core/issues/7714), since v14.7.0)
30+
31+
### Breaking changes
32+
* None.
33+
34+
### Compatibility
35+
* 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.
36+
37+
-----------
38+
39+
### Internals
40+
* `util::Thread` no longer has any functionality other than `get_name()` and `set_name()`. Use `std::thread` instead ([PR #7696](https://github.com/realm/realm-core/pull/7696)).
41+
42+
----------------------------------------------
43+
2344
# 14.7.0 Release notes
2445

2546
### Enhancements
@@ -68,6 +89,8 @@
6889
* None.
6990

7091
### Fixed
92+
* Fix assertion failure or wrong results when evaluating a RQL query with multiple IN conditions on the same property. Applies to non-indexed int/string/ObjectId/UUID properties, or if they were indexed and had > 100 conditions. ((RCORE-2098) [PR #7628](https://github.com/realm/realm-core/pull/7628) since v14.6.0).
93+
* Fixed a bug when running a IN query (or a query of the pattern `x == 1 OR x == 2 OR x == 3`) when evaluating on a string property with an empty string in the search condition. Matches with an empty string would have been evaluated as if searching for a null string instead. ([PR #7628](https://github.com/realm/realm-core/pull/7628) since v10.0.0-beta.9)
7194

7295
### Breaking changes
7396
* None.
@@ -78,7 +101,10 @@
78101
-----------
79102

80103
### Internals
81-
* None.
104+
* Follow on to ([PR #7300](https://github.com/realm/realm-core/pull/7300)) to allow SDKs to construct a fake user for testing SyncManager::get_user -> App::create_fake_user_for_testing ([PR #7632](https://github.com/realm/realm-core/pull/7632))
105+
* Fix build-apple-device.sh, broken in [#7603](https://github.com/realm/realm-core/pull/7603) ([PR #7640](https://github.com/realm/realm-core/pull/7640)).
106+
* Added a CAPI interface for SDKs to bring their own managed users with core's app services turned off. ([PR #7615](https://github.com/realm/realm-core/pull/7615)).
107+
* Bump the minimum deployment targets on Apple platforms to the minimums supported by Xcode 15 and clean up now unused availability checks. ([PR #7648](https://github.com/realm/realm-core/pull/7648)).
82108
* Build with -Werror on CI to ensure that new warnings don't slip in. ([PR #7646](https://github.com/realm/realm-core/pull/7646))
83109

84110
----------------------------------------------
@@ -200,6 +226,7 @@
200226
* Added `App::default_base_url()` static accessor for SDKs to retrieve the default base URL from Core. ([PR #7534](https://github.com/realm/realm-core/pull/7534))
201227
* Realm2JSON tool will now correctly upgrade file to current fileformat.
202228
* (bindgen) Remove dependency on the `clang-format` package and rely on a binary provided by the system instead.
229+
* Protocol version bumped to 12 ([#7124](https://github.com/realm/realm-core/issues/7124))
203230

204231
----------------------------------------------
205232

@@ -341,7 +368,7 @@
341368
# 14.0.0 Release notes
342369

343370
### Enhancements
344-
* Property keypath in RQL can be substituted with value given as argument. Use '$P<i>' in query string. (Issue [#7033](https://github.com/realm/realm-core/issues/7033))
371+
* Property keypath in RQL can be substituted with value given as argument. Use '$K\<i\>' in query string. (Issue [#7033](https://github.com/realm/realm-core/issues/7033))
345372
* You can now use query substitution for the @type argument ([#7289](https://github.com/realm/realm-core/issues/7289))
346373

347374
### Fixed
@@ -3230,7 +3257,6 @@
32303257
* Added `TableView::update_query()`
32313258

32323259
### Fixed
3233-
* <How to hit and notice issue? what was the impact?> ([#????](https://github.com/realm/realm-core/issues/????), since v?.?.?)
32343260
* Fix race potentially allowing frozen transactions to access incomplete search index accessors. (Since v6)
32353261
* Fix queries for null on non-nullable indexed integer columns returning results for zero entries. (Since v6)
32363262
* Fix queries for null on a indexed ObjectId column returning results for the zero ObjectId. (Since v10)

Package.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import PackageDescription
44
import Foundation
55

6-
let versionStr = "14.7.0"
6+
let versionStr = "14.8.0"
77
let versionPieces = versionStr.split(separator: "-")
88
let versionCompontents = versionPieces[0].split(separator: ".")
99
let versionExtra = versionPieces.count > 1 ? versionPieces[1] : ""

dependencies.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
PACKAGE_NAME: realm-core
2-
VERSION: 14.7.0
2+
VERSION: 14.8.0
33
OPENSSL_VERSION: 3.2.0
44
ZLIB_VERSION: 1.2.13
55
# https://github.com/10gen/baas/commits

doc/development/how-to-release.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
The core release process is automated with github [actions](https://github.com/realm/realm-core/actions)
2+
3+
1. Run the prepare-release action.
4+
- input the base branch that you would like to make a release from (usually this will be "master").
5+
- input the release version (eg. "10.14.7")
6+
7+
2. This will create a PR, which you should look over and get someone else on the team to review. Verify the changelog by checking the PR description which has a list of commits since the last tag was made. If any changes are required, commit them to this PR's branch.
8+
9+
3. When ready, merge the PR. You can squash if there are only "prepare release" changes, but use a "merge-commit" strategy if there are functional changes added manually to the PR. On merge, the "make-release" action will run. This takes care of:
10+
- Making a tag
11+
- Publishing the release on Github
12+
- Updating the Changelog
13+
- Announcing the release in the #appx-releases slack channel
14+
15+
## Previous process
16+
17+
The previous release notes documentation can be found on the old Realm wiki https://github.com/realm/realm-wiki/wiki/Releasing-Realm-Core

src/realm/list.cpp

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ void CollectionBaseImpl<LstBase>::to_json(std::ostream& out, JSONOutputMode outp
136136
if (i > 0)
137137
out << ",";
138138
Mixed val = get_any(i);
139-
if (val.is_type(type_TypedLink)) {
139+
if (val.is_type(type_Link, type_TypedLink)) {
140140
fn(val);
141141
}
142142
else {
@@ -951,19 +951,9 @@ void LnkLst::remove_all_target_rows()
951951
}
952952
}
953953

954-
void LnkLst::to_json(std::ostream& out, JSONOutputMode, util::FunctionRef<void(const Mixed&)> fn) const
954+
void LnkLst::to_json(std::ostream& out, JSONOutputMode mode, util::FunctionRef<void(const Mixed&)> fn) const
955955
{
956-
out << "[";
957-
958-
auto sz = m_list.size();
959-
for (size_t i = 0; i < sz; i++) {
960-
if (i > 0)
961-
out << ",";
962-
Mixed val(m_list.get(i));
963-
fn(val);
964-
}
965-
966-
out << "]";
956+
m_list.to_json(out, mode, fn);
967957
}
968958

969959
void LnkLst::replace_link(ObjKey old_val, ObjKey new_val)

src/realm/object-store/util/scheduler.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
#define HAS_ANDROID_ALOOPER
3838
#endif
3939

40-
#if HAS_ANDROID_ALOOPER
40+
#if defined(HAS_ANDROID_ALOOPER)
4141
#include <realm/object-store/util/android/scheduler.hpp>
4242
#endif
4343

@@ -134,7 +134,7 @@ std::shared_ptr<Scheduler> Scheduler::make_platform_default()
134134
#else
135135
#if REALM_PLATFORM_APPLE
136136
return make_runloop(nullptr);
137-
#elif HAS_ANDROID_ALOOPER
137+
#elif defined(HAS_ANDROID_ALOOPER)
138138
return make_alooper();
139139
#elif defined(__EMSCRIPTEN__)
140140
return std::make_shared<EmscriptenScheduler>();
@@ -176,7 +176,7 @@ std::shared_ptr<Scheduler> Scheduler::make_dispatch(void* queue)
176176
}
177177
#endif // REALM_PLATFORM_APPLE
178178

179-
#if HAS_ANDROID_ALOOPER
179+
#if defined(HAS_ANDROID_ALOOPER)
180180
std::shared_ptr<Scheduler> Scheduler::make_alooper()
181181
{
182182
return std::make_shared<ALooperScheduler>();

0 commit comments

Comments
 (0)