OXYGENHUB

Prebuilt dependencies for oxygen and oxygenflow too 2b40cb9b87e1

The build image prebuilds all three workspaces (images/rust/build.sh),
imported on Earth as cas://blob/169de040f406eec3ec4af81400cff8736d0966c7532e73a44cdcf7d35cda05a4.
This pipeline pins it and its cargo jobs start from /opt/warm/oxygenflow
through .flow/warm-target.sh, as oxygenhub's do (oxygenhub#29).
Author
Andy McCall @andymccall <[email protected]>
When
· 2026-09-29 04:23 UTC
Signature
✔ signed by Andy McCall
Hash
2b40cb9b87e16769db3a118c0cbcfc29bb0c9928f36ddd7dab9dc4db869e11d6
Depends on
eb5c4db673e5 eba589f87e4f f29b88af0d9b fe128fa67a06
Depended on by
9e5fd161efc3 c1a24672dbd5 67634e22f48f
In bookmarks
main newer-pipeline push-uses-login
In tags
v0.2.0 v0.3.0 v0.3.1 v0.4.0 v0.5.0 v0.5.1 v0.5.2 v0.5.3
Edits
8 atoms, 53 tree operations, 55 files

Browse the tree at this change

added .flow/warm-target.sh +20 −0
1 +
#!/bin/sh
2 +
# Start from the build image's prebuilt dependencies, then run the command.
3 +
# OxygenFlow's rust image holds this workspace's dependencies built at /src with
4 +
# this pipeline's environment (oxygenflow/images/rust, backlog F6b2); the
5 +
# job's target disk starts empty, so copying them in leaves cargo only this
6 +
# workspace's own crates to compile. Without them (an older image, or a
7 +
# failed copy) the job simply builds everything, as before.
8 +
set -eu
9 +
warm=/opt/warm/oxygenflow
10 +
# A fresh ext4 target disk holds only lost+found.
11 +
if [ -d "$warm" ] && [ -z "$(ls -A target 2>/dev/null | grep -vx 'lost+found')" ]; then
12 +
    start=$(date +%s)
13 +
    if cp -R --preserve=timestamps "$warm/." target/; then
14 +
        echo "flow: prebuilt dependencies copied in $(( $(date +%s) - start )) s"
15 +
    else
16 +
        echo "flow: could not copy the prebuilt dependencies; building them" >&2
17 +
        rm -rf target/* 2>/dev/null || true
18 +
    fi
19 +
fi
20 +
exec "$@"
removed images/rust/warm +0 −0

No line changes.

removed images/rust/warm/oxygenhub +0 −0

No line changes.

removed images/rust/warm/oxygenhub/Cargo.lock +0 −0
…
4542 unchanged lines
removed images/rust/warm/oxygenhub/Cargo.toml +0 −0
…
65 unchanged lines
removed images/rust/warm/oxygenhub/crates +0 −0

No line changes.

removed images/rust/warm/oxygenhub/crates/hub +0 −0

No line changes.

removed images/rust/warm/oxygenhub/crates/hub-api +0 −0

No line changes.

removed images/rust/warm/oxygenhub/crates/hub-api/Cargo.toml +0 −0
…
16 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub-api/src +0 −0

No line changes.

removed images/rust/warm/oxygenhub/crates/hub-api/src/bin +0 −0

No line changes.

removed images/rust/warm/oxygenhub/crates/hub-api/src/bin/typescript.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub-api/src/lib.rs +0 −0

No line changes.

removed images/rust/warm/oxygenhub/crates/hub/Cargo.toml +0 −0
…
63 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub/src +0 −0

No line changes.

removed images/rust/warm/oxygenhub/crates/hub/src/lib.rs +0 −0

No line changes.

removed images/rust/warm/oxygenhub/crates/hub/src/main.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub/tests +0 −0

No line changes.

removed images/rust/warm/oxygenhub/crates/hub/tests/accounts.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub/tests/api.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub/tests/browse.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub/tests/contrast.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub/tests/edits.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub/tests/flow.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub/tests/issues.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub/tests/proposals.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub/tests/recovery.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/crates/hub/tests/releases.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/deps +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/Cargo.toml +0 −0
…
24 unchanged lines
removed images/rust/warm/oxygenhub/deps/oxygenflow/crates +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/crates/flow-core +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/crates/flow-core/Cargo.toml +0 −0
…
17 unchanged lines
removed images/rust/warm/oxygenhub/deps/oxygenflow/crates/flow-core/src +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/crates/flow-core/src/lib.rs +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/Cargo.toml +0 −0
…
35 unchanged lines
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/Cargo.toml +0 −0
…
27 unchanged lines
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/src +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/src/lib.rs +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/tests +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/tests/bench.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-core/tests/commutativity.rs +0 −0
…
1 unchanged lines
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server/Cargo.toml +0 −0
…
17 unchanged lines
removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server/src +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server/src/lib.rs +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server/tests +0 −0

No line changes.

removed images/rust/warm/oxygenhub/deps/oxygenflow/deps/oxygen/crates/oxy-server/tests/http.rs +0 −0
…
1 unchanged lines
modified .flow/pipeline.kdl +4 −4
…
36 unchanged lines
37 37
// vendored crates. oxygen comes from the pinned subrepo in deps/.
38 38
sandbox "rust" {
39 39
    runtime "microvm"
40 -
    rootfs "cas://blob/3ba0779a55b1d66fce10adf5a01585624c9aab089f590d228368c38fd3e65a46"
40 +
    rootfs "cas://blob/169de040f406eec3ec4af81400cff8736d0966c7532e73a44cdcf7d35cda05a4"
41 41
    memory-limit "8GiB"
42 42
    cpu-limit 4
43 43
    network "loopback"
…
1 unchanged lines
45 45
46 46
sandbox "rust-small" {
47 47
    runtime "microvm"
48 -
    rootfs "cas://blob/3ba0779a55b1d66fce10adf5a01585624c9aab089f590d228368c38fd3e65a46"
48 +
    rootfs "cas://blob/169de040f406eec3ec4af81400cff8736d0966c7532e73a44cdcf7d35cda05a4"
49 49
    memory-limit "1GiB"
50 50
    cpu-limit 1
51 51
    network "isolated"
…
16 unchanged lines
68 68
    env {
69 69
        CARGO_INCREMENTAL "0"
70 70
    }
71 -
    exec "cargo" "clippy" "--workspace" "--all-targets" "--locked" "--" "-D" "warnings"
71 +
    exec "sh" ".flow/warm-target.sh" "cargo" "clippy" "--workspace" "--all-targets" "--locked" "--" "-D" "warnings"
72 72
}
73 73
74 74
job "test" {
…
7 unchanged lines
82 82
    env {
83 83
        CARGO_INCREMENTAL "0"
84 84
    }
85 -
    exec "cargo" "test" "--workspace" "--locked"
85 +
    exec "sh" ".flow/warm-target.sh" "cargo" "test" "--workspace" "--locked"
86 86
}
87 87
88 88
job "summary" {
…
7 unchanged lines
modified images/rust/build.sh +1 −1
…
27 unchanged lines
28 28
# Dependency recipes of the workspaces whose dependencies the image
29 29
# prebuilds (see the Dockerfile).
30 30
rm -rf "${here:?}/warm"
31 -
for ws in oxygenhub; do
31 +
for ws in oxygenhub oxygen oxygenflow; do
32 32
    python3 "$here/recipe.py" "$dev/$ws" "$here/warm/$ws"
33 33
done
34 34
docker build -q -t oxygenflow-build \
…
6 unchanged lines