Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
14 changes: 7 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 7 additions & 7 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -54,20 +54,20 @@ members = ["crates/*"]
default-members = [".", "crates/*"]

[workspace.package]
version = "3.1.1"
version = "3.1.2"
edition = "2024"
rust-version = "1.87"
license = "MIT"
repository = "https://github.com/execution-associates/isb"
homepage = "https://github.com/execution-associates/isb"

[workspace.dependencies]
isb-core = { path = "crates/isb-core", version = "=3.1.1" }
isb-server = { path = "crates/isb-server", version = "=3.1.1" }
isb-apps = { path = "crates/isb-apps", version = "=3.1.1" }
isb-daemon = { path = "crates/isb-daemon", version = "=3.1.1" }
isb-tui = { path = "crates/isb-tui", version = "=3.1.1" }
isb-egress = { path = "crates/isb-egress", version = "=3.1.1" }
isb-core = { path = "crates/isb-core", version = "=3.1.2" }
isb-server = { path = "crates/isb-server", version = "=3.1.2" }
isb-apps = { path = "crates/isb-apps", version = "=3.1.2" }
isb-daemon = { path = "crates/isb-daemon", version = "=3.1.2" }
isb-tui = { path = "crates/isb-tui", version = "=3.1.2" }
isb-egress = { path = "crates/isb-egress", version = "=3.1.2" }

serde = { version = "1", features = ["derive"] }
serde_json = "1"
Expand Down
4 changes: 2 additions & 2 deletions docs/reference/rpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ it; relative paths resolve against that directory.
When it starts, the server writes one hello line:

```json
{"isb": "3.1.1", "protocol": 1}
{"isb": "3.1.2", "protocol": 1}
```

A client checks `protocol` and refuses versions it does not know.
Expand Down Expand Up @@ -205,7 +205,7 @@ All take `files` (default `./isb.yaml` plus `./isb.override.yaml` if present),
## Example session

```text
<- {"isb":"3.1.1","protocol":1}
<- {"isb":"3.1.2","protocol":1}
-> {"id":1,"method":"sandbox.ensure","params":{"spec":{"name":"web","image":"dev-base","cpus":2}}}
<- {"id":1,"event":"progress","data":"web: creating from dev-base"}
<- {"id":1,"event":"progress","data":"web: starting"}
Expand Down
2 changes: 1 addition & 1 deletion isb.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ services:
type: vm
image: images:ubuntu/24.04/cloud
cpus: 8
mem_limit: 16g
mem_limit: 24g # ra-jit's build daemon holds ~10 GB (scripts/preview/build.sh)
labels: { owner: isb-preview }
# The firmware refuses this image's bootloader under secure boot
# ("prohibited by secure boot policy"), so the VM never boots.
Expand Down
16 changes: 14 additions & 2 deletions scripts/preview/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,25 @@
# Run as ubuntu inside the preview VM. Builds isb from the read-only checkout
# at /src into ~/.local/bin/isb (the target directory stays on the VM's own
# disk) and installs the web UI's dependencies.
#
# The build is ra-jit's (github.com/indexable-inc/ra-jit): the first one is
# cargo's, and once its daemon has loaded the workspace a rebuild after an
# edit compiles only the functions that changed, in about a second where
# cargo takes 10 to 20. ra-jit works with Rust 1.99.0 only, so the preview
# pins it; on any other toolchain every build is plain cargo's. The daemon
# holds about 10 GB and exits after 30 minutes without a build. ra-jit 0.1.0
# has no borrow checker, so an edit cargo rejects can build here: the final
# word stays scripts/check.sh and CI, which are plain cargo.
set -euo pipefail

mise use -g --yes rust@stable bun@1 >/dev/null
mise use -g --yes rust@1.99.0 bun@1 >/dev/null
mise trust --yes /src/mise.toml >/dev/null
mise exec -- rustup component add rust-src >/dev/null
# A few minutes the first time; after that cargo sees it installed and returns.
mise exec -- cargo install --locked --quiet ra-jit@0.1.0
cd /src
export CARGO_TARGET_DIR="$HOME/target"
mise exec -- cargo build --locked --bin isb
mise exec -- cargo ra-jit build --locked --bin isb
install -D -m 0755 "$CARGO_TARGET_DIR/debug/isb" "$HOME/.local/bin/isb"

bash /src/scripts/preview/node-modules.sh
Expand Down
2 changes: 1 addition & 1 deletion sdk/python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "hatchling.build"

[project]
name = "isb-sdk"
version = "3.1.1"
version = "3.1.2"
description = "Python SDK for isb: declarative incus sandboxes (containers and VMs)"
readme = "README.md"
license = "MIT"
Expand Down
2 changes: 1 addition & 1 deletion sdk/python/src/isb/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ async def main():
from ._util import Duration
from .volumes import Volumes

__version__ = "3.1.1"
__version__ = "3.1.2"

__all__ = [
"PROTOCOL",
Expand Down
6 changes: 3 additions & 3 deletions sdk/python/tests/test_unit.py
Original file line number Diff line number Diff line change
Expand Up @@ -222,7 +222,7 @@ async def test_death_fails_pending_requests(self) -> None:
path = fake_server(
self.tmp.name,
"""\
echo '{"isb":"3.1.1","protocol":1}'
echo '{"isb":"3.1.2","protocol":1}'
read line
echo "boom" >&2
exit 3
Expand All @@ -243,7 +243,7 @@ async def test_close_fails_pending(self) -> None:
path = fake_server(
self.tmp.name,
"""\
echo '{"isb":"3.1.1","protocol":1}'
echo '{"isb":"3.1.2","protocol":1}'
cat >/dev/null
""",
)
Expand All @@ -261,7 +261,7 @@ async def test_events_and_out_of_order_replies(self) -> None:
path = fake_server(
self.tmp.name,
"""\
echo '{"isb":"3.1.1","protocol":1}'
echo '{"isb":"3.1.2","protocol":1}'
read a
read b
echo 'not json'
Expand Down
2 changes: 1 addition & 1 deletion sdk/python/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions sdk/typescript/bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion sdk/typescript/npm/linux-arm64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@execution-associates/isb-linux-arm64",
"version": "3.1.1",
"version": "3.1.2",
"description": "The static isb binary for Linux arm64 (aarch64-unknown-linux-musl), used by @execution-associates/isb",
"license": "MIT",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion sdk/typescript/npm/linux-x64/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@execution-associates/isb-linux-x64",
"version": "3.1.1",
"version": "3.1.2",
"description": "The static isb binary for Linux x64 (x86_64-unknown-linux-musl), used by @execution-associates/isb",
"license": "MIT",
"repository": {
Expand Down
6 changes: 3 additions & 3 deletions sdk/typescript/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@execution-associates/isb",
"version": "3.1.1",
"version": "3.1.2",
"description": "TypeScript SDK for isb: declarative incus sandboxes (containers and VMs)",
"license": "MIT",
"type": "module",
Expand Down Expand Up @@ -51,8 +51,8 @@
"prepack": "bun run build"
},
"optionalDependencies": {
"@execution-associates/isb-linux-arm64": "3.1.1",
"@execution-associates/isb-linux-x64": "3.1.1"
"@execution-associates/isb-linux-arm64": "3.1.2",
"@execution-associates/isb-linux-x64": "3.1.2"
},
"devDependencies": {
"@biomejs/biome": "^2.2.0",
Expand Down
Loading