Skip to content

Commit 4179ad9

Browse files
committed
[tyler/fix-on-conflict]: Merge remote-tracking branch 'origin/master' into tyler/fix-on-conflict
2 parents 2c4e1ee + 462cac9 commit 4179ad9

185 files changed

Lines changed: 11836 additions & 1196 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
name: Attach client binaries to release
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
release_tag:
7+
description: "Release tag (e.g. v1.9.0)"
8+
required: true
9+
10+
jobs:
11+
upload-assets:
12+
runs-on: spacetimedb-new-runner
13+
container:
14+
image: localhost:5000/spacetimedb-ci:latest
15+
options: >-
16+
--privileged
17+
permissions:
18+
contents: write # needed to modify releases
19+
20+
steps:
21+
- name: Checkout
22+
uses: actions/checkout@v4
23+
24+
- name: Download artifacts from private base URL
25+
env:
26+
RELEASE_TAG: ${{ github.event.inputs.release_tag }}
27+
BASE_URL: ${{ secrets.ARTIFACT_BASE_URL }}
28+
run: |
29+
set -euo pipefail
30+
31+
FULL_URL="$BASE_URL/$RELEASE_TAG"
32+
33+
mkdir -p artifacts
34+
cd artifacts
35+
36+
download() {
37+
local filename="$1"
38+
if ! wget -q "${FULL_URL}/${filename}" -O "${filename}"; then
39+
echo "Failed to download ${filename}"
40+
exit 1
41+
fi
42+
}
43+
44+
download "spacetime-aarch64-apple-darwin.tar.gz"
45+
download "spacetime-aarch64-unknown-linux-gnu.tar.gz"
46+
download "spacetime-x86_64-apple-darwin.tar.gz"
47+
download "spacetime-x86_64-pc-windows-msvc.zip"
48+
download "spacetime-x86_64-unknown-linux-gnu.tar.gz"
49+
download "spacetimedb-update-aarch64-apple-darwin"
50+
download "spacetimedb-update-aarch64-unknown-linux-gnu"
51+
download "spacetimedb-update-x86_64-apple-darwin"
52+
download "spacetimedb-update-x86_64-pc-windows-msvc.exe"
53+
download "spacetimedb-update-x86_64-unknown-linux-gnu"
54+
55+
- name: Upload artifacts to GitHub Release
56+
env:
57+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
58+
RELEASE_TAG: ${{ github.event.inputs.release_tag }}
59+
run: |
60+
set -euo pipefail
61+
62+
cd artifacts
63+
64+
gh release upload "$RELEASE_TAG" ./* \
65+
--repo "$GITHUB_REPOSITORY" \
66+
--clobber
67+

.github/workflows/ci.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -317,16 +317,21 @@ jobs:
317317
fi
318318
319319
update:
320-
name: Test spacetimedb-update flow
320+
name: Test spacetimedb-update flow (${{ matrix.target }})
321321
permissions: read-all
322322
strategy:
323323
matrix:
324324
include:
325-
- { target: x86_64-unknown-linux-gnu, runner: spacetimedb-runner }
325+
- runner: spacetimedb-new-runner
326+
target: x86_64-unknown-linux-gnu
327+
container:
328+
image: localhost:5000/spacetimedb-ci:latest
329+
options: --privileged
326330
- { target: aarch64-unknown-linux-gnu, runner: arm-runner }
327331
- { target: aarch64-apple-darwin, runner: macos-latest }
328332
- { target: x86_64-pc-windows-msvc, runner: windows-latest }
329333
runs-on: ${{ matrix.runner }}
334+
container: ${{ matrix.container }}
330335
steps:
331336
- name: Checkout
332337
uses: actions/checkout@v3
@@ -512,7 +517,7 @@ jobs:
512517
cargo run --features markdown-docs -p spacetimedb-cli > docs/docs/cli-reference.md
513518
pnpm format
514519
git status
515-
if git diff --exit-code HEAD; then
520+
if git diff --exit-code HEAD -- docs/docs/cli-reference.md; then
516521
echo "No docs changes detected"
517522
else
518523
echo "It looks like the CLI docs have changed:"

.github/workflows/discord-posts.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ jobs:
6060
message+=$'\n'
6161
# This uses special Discord syntax for pinging a particular role.
6262
# Note the '&' - this is the difference between pinging a *role* and pinging a *person*.
63-
message+=" (cc <@&${MENTION_ON_FAILURE}>"
6463
if [[ -n "${author_discord_id}" ]]; then
65-
message+=" <@${author_discord_id}>"
64+
message+="<@${author_discord_id}> please investigate these failures."
6665
fi
67-
message+=")"
66+
message+=$'\n'
67+
message+="(cc <@&${MENTION_ON_FAILURE}> - Releases may be affected)"
6868
fi
6969
# Use `jq` to construct the json data blob in the format required by the webhook.
7070
data="$(jq --null-input --arg msg "$message" '.content=$msg')"

.github/workflows/upgrade-version-check.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@ permissions: read-all
88

99
jobs:
1010
version_upgrade_check:
11-
runs-on: spacetimedb-runner
11+
runs-on: spacetimedb-new-runner
12+
container:
13+
image: localhost:5000/spacetimedb-ci:latest
14+
options: --privileged
1215
steps:
1316
- name: Checkout
1417
uses: actions/checkout@v3

Cargo.lock

Lines changed: 41 additions & 12 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,12 @@ members = [
4444
"modules/sdk-test",
4545
"modules/sdk-test-connect-disconnect",
4646
"modules/sdk-test-procedure",
47+
"modules/sdk-test-view",
4748
"sdks/rust/tests/test-client",
4849
"sdks/rust/tests/test-counter",
4950
"sdks/rust/tests/connect_disconnect_client",
5051
"sdks/rust/tests/procedure-client",
52+
"sdks/rust/tests/view-client",
5153
"tools/upgrade-version",
5254
"tools/license-check",
5355
"tools/replace-spacetimedb",
@@ -179,7 +181,7 @@ env_logger = "0.10"
179181
ethnum = { version = "1.5.0", features = ["serde"] }
180182
flate2 = "1.0.24"
181183
flume = { version = "0.11", default-features = false, features = ["async"] }
182-
foldhash = "0.1.4"
184+
foldhash = "0.2.0"
183185
fs-err = "2.9.0"
184186
fs_extra = "1.3.0"
185187
fs2 = "0.4.3"
@@ -189,7 +191,7 @@ futures-util = "0.3"
189191
getrandom02 = { package = "getrandom", version = "0.2" }
190192
git2 = "0.19"
191193
glob = "0.3.1"
192-
hashbrown = { version = "0.15", default-features = false, features = ["equivalent", "inline-more"] }
194+
hashbrown = { version = "0.16.1", default-features = false, features = ["equivalent", "inline-more", "rayon", "serde"] }
193195
headers = "0.4"
194196
heck = "0.4"
195197
hex = "0.4.3"

crates/bench/Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,15 @@ spacetimedb-standalone = { path = "../standalone" }
5252
spacetimedb-table = { path = "../table" }
5353
spacetimedb-testing = { path = "../testing" }
5454

55+
ahash.workspace = true
5556
anyhow.workspace = true
5657
anymap.workspace = true
5758
byte-unit.workspace = true
5859
clap.workspace = true
5960
criterion.workspace = true
6061
futures.workspace = true
6162
foldhash.workspace = true
63+
hashbrown.workspace = true
6264
lazy_static.workspace = true
6365
log.workspace = true
6466
mimalloc.workspace = true

crates/bench/benches/index.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
use core::{hint::black_box, iter::repeat_with, time::Duration};
1+
use core::{hash::BuildHasherDefault, hint::black_box, iter::repeat_with, time::Duration};
22
use criterion::{
33
criterion_group, criterion_main,
44
measurement::{Measurement as _, WallTime},
55
BenchmarkGroup, Criterion,
66
};
77
use foldhash::{HashSet, HashSetExt};
8+
use hashbrown::{hash_map::Entry, HashMap};
89
use itertools::Itertools as _;
9-
use spacetimedb_data_structures::map::{Entry, HashMap};
1010
use spacetimedb_sats::layout::Size;
1111
use spacetimedb_table::indexes::{PageIndex, PageOffset, RowPointer, SquashedOffset};
1212
use spacetimedb_table::table_index::unique_direct_index::UniqueDirectIndex;
@@ -191,7 +191,7 @@ impl Index for IBTree {
191191
}
192192

193193
#[derive(Clone)]
194-
struct IAHash(HashMap<K, RowPointer>);
194+
struct IAHash(HashMap<K, RowPointer, BuildHasherDefault<ahash::AHasher>>);
195195
impl Index for IAHash {
196196
const NAME: &'static str = "IAHash";
197197
fn new() -> Self {

0 commit comments

Comments
 (0)