Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
15 commits
Select commit Hold shift + click to select a range
4c322d9
SRE-984: Read the Cargo workspace natively instead of generated packa…
TimDiekmann Sep 16, 2026
69edb2d
SRE-984: Let the prune action call turbo prune directly
TimDiekmann Sep 16, 2026
e89e967
SRE-984: Drop the dependencyOutputs inputs until turbo loads crate sc…
TimDiekmann Sep 16, 2026
73f347a
SRE-984: Match the retried harpc-net tests by name in the nextest config
TimDiekmann Sep 16, 2026
c5b8d6a
SRE-984: Name the graph image's package by its Cargo name in the depl…
TimDiekmann Sep 16, 2026
a561c98
SRE-984: Give the image prune stage the Rust toolchain turbo prune needs
TimDiekmann Sep 16, 2026
a285f64
SRE-984: Merge the dot-files into the pruned tree instead of skipping…
TimDiekmann Sep 16, 2026
ab71e96
SRE-984: Satisfy rustfmt and clippy in the task-dependencies generator
TimDiekmann Sep 16, 2026
a104679
SRE-984: Install the Rust toolchain in the petrinaut-opt bindings too…
TimDiekmann Sep 16, 2026
2ef808e
SRE-984: Keep the brunch-agent turbo.json strict JSON
TimDiekmann Sep 16, 2026
e3ebd71
SRE-984: Let turbo map the root Cargo.toml to the crates itself
TimDiekmann Sep 17, 2026
b561317
SRE-984: Bring the problematic crate onto the native workspace
TimDiekmann Sep 17, 2026
f5354d0
SRE-984: Restore the dependencyOutputs inputs now that turbo defers t…
TimDiekmann Sep 17, 2026
2466c75
SRE-984: Let turbo hash the package configurations and lockfiles itself
TimDiekmann Sep 18, 2026
217d59c
SRE-984: Name the graph by its Cargo name in the root scripts and the…
TimDiekmann Sep 19, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .changeset/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
"ignore": [
"@apps/*",
"@local/*",
"@rust/*",
"@tests/*",
"@hashintel/block-design-system",
"@hashintel/design-system",
Expand Down
10 changes: 0 additions & 10 deletions .config/mise/tasks/sync/turborepo.sh

This file was deleted.

5 changes: 4 additions & 1 deletion .config/nextest.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@ fail-fast = false
failure-output = "final"
status-level = "skip"

# The two tests live in `harpc-net`. A package matcher would name the crate, but nextest
# rejects a matcher that names no package of the workspace, and a pruned workspace may not
# contain the crate.
[[profile.ci.overrides]]
filter = 'package(harpc-net) and (test(session::test::echo_tcp_concurrent) or test(session::test::echo_memory_concurrent))'
filter = 'test(session::test::echo_tcp_concurrent) or test(session::test::echo_memory_concurrent)'
retries = 3
2 changes: 1 addition & 1 deletion .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ New local packages should follow these rules:
1. Anything which is imported or consumed by something else belongs in `libs/` and have a `package.json` `"name"`:
- beginning with `@local/` for non-published JavaScript dependencies
- identical to their `npm` name for published JavaScript dependencies
- begin with `@rust/` for Rust dependencies
- Rust crates carry no `package.json`; Turborepo knows them by their `Cargo.toml` `[package].name`
2. Things which are executed belong in `apps/`, and are named `@apps/app-name
3. Packages which aren't published to `npm` should have `"private": true` in their `package.json`
4. All TypeScript packages should be `"type": "module"`
Expand Down
35 changes: 30 additions & 5 deletions .github/actions/prune-repository/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,41 @@ runs:
shell: bash
env:
SCOPE: ${{ inputs.scope }}
run: python3 ${{ github.action_path }}/prune.py "$SCOPE"
run: |
read -r -a scopes <<< "${SCOPE//$'\n'/ }"
turbo prune "${scopes[@]}"

# `turbo prune` copies the workspace directories and the root manifests; paths a package
# reads from outside any workspace are copied here.
- name: Copy paths outside the workspaces
shell: bash
env:
SCOPE: ${{ inputs.scope }}
run: |
copy() { mkdir -p "out/$(dirname "$1")" && cp -R "$1" "out/$1"; }
read -r -a scopes <<< "${SCOPE//$'\n'/ }"
for scope in "${scopes[@]}"; do
case "$scope" in
# The app's product tests execute evaluation runners and inspect committed evidence.
@apps/brunch-agent)
copy libs/@hashintel/brunch-agent/docs
copy libs/@hashintel/brunch-agent/evaluations
;;
esac
done
Comment thread
TimDiekmann marked this conversation as resolved.

- name: Copy required files
shell: bash
run: |
cp -R Cargo.toml Cargo.lock rust-toolchain.toml oxfmt.config.ts infra/ out/
cp -R oxfmt.config.ts infra/ out/
Comment thread
TimDiekmann marked this conversation as resolved.

# Globs are fun, especially in Bash. Covers all dot-files except `.`, `..`, and `.git`.
shopt -s extglob
cp -R .[!.!(.git)]* .git?* out/
# Every dot-file except `.git`, merged into what `turbo prune` already wrote there (the
# pruned `.cargo/config.toml`, the `.claude/hooks` workspace), which stays as it is.
shopt -s dotglob nullglob
for entry in .[!.]*; do
[ "$entry" = .git ] && continue
rsync --archive --ignore-existing "$entry" out/
done

- name: Remove old repository files
shell: bash
Expand Down
296 changes: 0 additions & 296 deletions .github/actions/prune-repository/prune.py

This file was deleted.

Loading
Loading