Skip to content

Commit bff364f

Browse files
authored
chore(release): prepare v0.1.20
1 parent d0e5f67 commit bff364f

6 files changed

Lines changed: 88 additions & 12 deletions

File tree

CHANGELOG.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,41 @@
22

33
## [Unreleased]
44

5+
## [0.1.20] - 2026-04-17
6+
7+
### Highlights
8+
9+
- **Snapshot fidelity** - Added shell-only snapshots, preserved shell functions in snapshots, and stored function source alongside AST for restore parity
10+
- **Bindings parity** - Added Python `shell_state`, `custom_builtins`, `clear_cancel()`, and streaming callback support plus JS `clearCancel` and BashTool snapshot support
11+
- **Bindings hardening** - Rejected same-instance callback re-entry and expanded cancel-state and FastAPI regression coverage
12+
- **CI and release polish** - Added coverage uploads and Codecov config, removed duplicate example builds, and hardened crates publish verification
13+
- **External contributions** - Thanks to @oliverlambson and @shubhlohiya for shipping Python and JS binding improvements in this release
14+
15+
### What's Changed
16+
17+
* fix(snapshot): store function source alongside ast ([#1332](https://github.com/everruns/bashkit/pull/1332)) by @chaliy
18+
* fix(bindings): reject same-instance callback re-entry ([#1331](https://github.com/everruns/bashkit/pull/1331)) by @chaliy
19+
* test(bindings): cover async cancel state recovery ([#1330](https://github.com/everruns/bashkit/pull/1330)) by @chaliy
20+
* test(python): cover fastapi custom builtins ([#1329](https://github.com/everruns/bashkit/pull/1329)) by @chaliy
21+
* fix(snapshot): preserve functions in shell snapshots ([#1328](https://github.com/everruns/bashkit/pull/1328)) by @chaliy
22+
* feat(snapshot): add shell-only snapshots ([#1327](https://github.com/everruns/bashkit/pull/1327)) by @chaliy
23+
* feat(python): expose shell_state on Bash and BashTool ([#1326](https://github.com/everruns/bashkit/pull/1326)) by @oliverlambson
24+
* chore(ci): add codecov config ([#1324](https://github.com/everruns/bashkit/pull/1324)) by @chaliy
25+
* docs(specs): remove numeric prefixes from spec names ([#1323](https://github.com/everruns/bashkit/pull/1323)) by @chaliy
26+
* test(python): cover in-flight clear_cancel recovery ([#1322](https://github.com/everruns/bashkit/pull/1322)) by @chaliy
27+
* feat(js): add clearCancel parity ([#1321](https://github.com/everruns/bashkit/pull/1321)) by @chaliy
28+
* feat(ci): add binding coverage uploads ([#1318](https://github.com/everruns/bashkit/pull/1318)) by @chaliy
29+
* fix(ci): split codecov upload job ([#1317](https://github.com/everruns/bashkit/pull/1317)) by @chaliy
30+
* fix(ci): avoid duplicate example builds in test job ([#1316](https://github.com/everruns/bashkit/pull/1316)) by @chaliy
31+
* feat(python): add custom_builtins to Bash and BashTool ([#1315](https://github.com/everruns/bashkit/pull/1315)) by @oliverlambson
32+
* feat(python): add clear_cancel() to Bash and BashTool ([#1314](https://github.com/everruns/bashkit/pull/1314)) by @shubhlohiya
33+
* fix(ci): harden crates publish verification ([#1313](https://github.com/everruns/bashkit/pull/1313)) by @chaliy
34+
* feat(javascript): add BashTool snapshot support ([#1310](https://github.com/everruns/bashkit/pull/1310)) by @chaliy
35+
* feat(node): expose streaming output callbacks ([#1309](https://github.com/everruns/bashkit/pull/1309)) by @oliverlambson
36+
* feat(python): expose streaming output callbacks ([#1308](https://github.com/everruns/bashkit/pull/1308)) by @oliverlambson
37+
38+
**Full Changelog**: https://github.com/everruns/bashkit/commits/v0.1.20
39+
540
## [0.1.19] - 2026-04-15
641

742
### Highlights

Cargo.lock

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

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ resolver = "2"
77
members = ["crates/*"]
88

99
[workspace.package]
10-
version = "0.1.19"
10+
version = "0.1.20"
1111
edition = "2024"
1212
license = "MIT"
1313
authors = ["Everruns"]

crates/bashkit-js/package-lock.json

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

crates/bashkit-js/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@everruns/bashkit",
3-
"version": "0.1.19",
3+
"version": "0.1.20",
44
"description": "Sandboxed bash interpreter for JavaScript/TypeScript",
55
"main": "wrapper.js",
66
"browser": "bashkit.wasi-browser.js",

justfile

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,14 +223,55 @@ release-check:
223223
# Check nightly CI jobs (last 3 runs must be green)
224224
just check-nightly
225225
226+
# Match publish.yml locally: strip git-only publish blockers, dry-run, restore.
227+
TMPDIR=$(mktemp -d)
228+
LOCKFILE=Cargo.lock
229+
BASHKIT_TOML=crates/bashkit/Cargo.toml
230+
CLI_TOML=crates/bashkit-cli/Cargo.toml
231+
JS_TOML=crates/bashkit-js/Cargo.toml
232+
PY_TOML=crates/bashkit-python/Cargo.toml
233+
cp "$LOCKFILE" "$TMPDIR/Cargo.lock"
234+
cp "$BASHKIT_TOML" "$TMPDIR/bashkit.Cargo.toml"
235+
cp "$CLI_TOML" "$TMPDIR/bashkit-cli.Cargo.toml"
236+
cp "$JS_TOML" "$TMPDIR/bashkit-js.Cargo.toml"
237+
cp "$PY_TOML" "$TMPDIR/bashkit-python.Cargo.toml"
238+
trap 'cp "$TMPDIR/Cargo.lock" "$LOCKFILE"; \
239+
cp "$TMPDIR/bashkit.Cargo.toml" "$BASHKIT_TOML"; \
240+
cp "$TMPDIR/bashkit-cli.Cargo.toml" "$CLI_TOML"; \
241+
cp "$TMPDIR/bashkit-js.Cargo.toml" "$JS_TOML"; \
242+
cp "$TMPDIR/bashkit-python.Cargo.toml" "$PY_TOML"; \
243+
rm -rf "$TMPDIR"' EXIT
244+
perli() {
245+
perl -0pi.bak -e "$1" "$2"
246+
rm -f "$2.bak"
247+
}
248+
249+
# --- bashkit core: remove monty dep and python feature ---
250+
perli 's/^monty = .*?\n//m' "$BASHKIT_TOML"
251+
perli 's/^python = \["dep:monty"\]\n//m' "$BASHKIT_TOML"
252+
perli 's/\n\[\[example\]\]\nname = "python_scripts"\nrequired-features = \["python"\]\n//g' "$BASHKIT_TOML"
253+
perli 's/\n\[\[example\]\]\nname = "python_external_functions"\nrequired-features = \["python"\]\n//g' "$BASHKIT_TOML"
254+
255+
# --- bashkit-cli: remove python feature ---
256+
perli 's/^python = \["bashkit\/python"\]\n//m' "$CLI_TOML"
257+
perli 's/, "python"//g; s/"python", //g; s/\["python"\]/[]/g' "$CLI_TOML"
258+
259+
# --- bashkit-js/bashkit-python: remove python from features list ---
260+
perli 's/, "python"//g; s/"python", //g' "$JS_TOML"
261+
perli 's/, "python"//g; s/"python", //g' "$PY_TOML"
262+
226263
# Dry-run publish
227264
echo ""
228265
echo "Dry-run publish bashkit..."
229-
cargo publish -p bashkit --dry-run
266+
cargo publish -p bashkit --dry-run --allow-dirty
230267
231268
echo ""
232269
echo "Dry-run publish bashkit-cli..."
233-
cargo publish -p bashkit-cli --dry-run
270+
# bashkit-cli verifies against the registry package of bashkit.
271+
# Before the matching bashkit release is published, local dry-run cannot
272+
# compile that packaged dependency graph. The real publish workflow keeps
273+
# verification enabled after bashkit is live on crates.io.
274+
cargo publish -p bashkit-cli --dry-run --allow-dirty --no-verify
234275
235276
echo ""
236277
echo "All release checks passed!"

0 commit comments

Comments
 (0)