Repository navigation
esrun@0.40.0
Fixed
-
The installers send
GITHUB_TOKEN, when it is set, with their one GitHub
API request (the release lookup). Unauthenticated, an address gets 60
requests an hour, and a shared CI runner can find them spent: the JS
workflow'ssetup-esdevstep failed that way, and now passes the
workflow's token. Release downloads never see the token. -
The postgres driver's
environmenttest no longer dials a hardcoded port
5433: it takes the test server's port fromPGPORT, like the rest of the
suite. CI serves postgres on 5432, so the two URL-precedence connects
failed with connection refused there while passing locally. -
The Windows CI leg passes again.
metrics_reports_the_whole_process
allowed 1ms between the process's and the thread's CPU time, and on
Windows the two are kept apart and advance in clock ticks; it now allows
one tick there, and theruntime:diagnosticsreference says so. The
watch-restart test waits for the restarted run's output itself, and
prints stderr when it is missing. -
The Windows build passes
clippy -D warningsagain: a listener backlog
constant and a socket file's path, both used only on Unix, are compiled
only there. -
Security dependency bumps with no API change:
rustls0.23.45 → 0.23.46
(RUSTSEC-2026-0346 through RUSTSEC-2026-0349) andquinn-proto0.11.16 →
0.11.19 (RUSTSEC-2026-0338 through RUSTSEC-2026-0342). -
bench/db/run.shlaunches esrun with--allow-all, like every other
bench runner. Without it the esrun column failed on the imports
permission before running a single query, so the SQLite benchmark had no
esrun numbers at all.
Added
-
runtime:path:toSlash(p), the forward-slash form of a path. On Windows
a backslash becomes/; on POSIX the path is returned unchanged, because a
backslash is part of a file name there. It is the form esdev gives a
plugin's module ids, for comparing one with a path fromruntime:fsor
runtime:watch. -
One path interface (DECISIONS D165): every path,
file:URL and module-id
conversion in the workspace goes throughdefault-providers'path
module. A workspaceclippy.tomlrefuses directcanonicalizeand
Url::from_file_path-family calls, andtsr path-discipline(run in CI)
refuses the hand-written string forms. -
runtime:imagesexposes theotf-pixels0.3.0 additions: resize
position(nine gravities) andwithoutReduction,modulate's
lightness, the adjustmentsnegate,gamma,linear,threshold,
tint,greyscale,recomb,ensureAlphaandremoveAlpha, named
channels inextractChannelwith layout-aware errors, and multi-page TIFF
pages (new Image(input, { page }),metadata().pages). Names and
defaults follow sharp where it has the operation; the documented
divergences aregamma's single exponent (libvips' definition, not
sharp's pair),thresholdkeeping the channel count, andgreyscale
keeping three channels wheregrayscale()makes one. The images guide
has an adjustments section.
Changed
-
CI no longer runs
test (esdev with the inspector).tsr test:inspector
stays, to run locally before changing--inspector--coverage; CI's
esdev suite checks only that those flags are refused in a build without
the inspector. -
CI tests esrun and esdev in separate jobs on each OS (
tsr test:esrun,
tsr test:esdev;tsr teststill runs both). A failure in one no longer
hides the other's result, and each job keeps its own build cache, saved
even when its tests fail. rust-cache saves only after a passing job, so the
Linux leg, which had not passed since early October, had no cache and
rebuilt the whole tree on every run. -
The
esrunCLI test suites run outside Cargo too. Every path they need
(the binary under test, a scratch directory and the fixture tree) comes
from onetests/commonmodule, which readsESRUN_TEST_BIN,
ESRUN_TEST_TMPDIRandESRUN_TEST_MANIFESTand otherwise uses Cargo's
own paths, as before. The Windows build of the suites runs that way in a
Windows guest, where the paths baked in at compile time do not exist. -
runtime:imagesnow runs onotf-pixels0.3.0 instead of 0.2.0: JPEG
decoding is about twice as fast with identical output, progressive JPEG
is decoded in-house (opening one reads only its headers, and the
published crates have no dependencies outside the Pixels workspace), and
the tile worker pool no longer usescrossbeam. The image and workloads
benchmark rows were re-measured on this build throughbench/publish.sh. -
runtime:db's SQLite engine (turso_core) moves from the 0.8.0
pre-release to stable 0.8.3: final 0.8.0 with MVCC concurrent writes no
longer experimental, full window-frame support andTransactionBehavior
concurrency in the Rust bindings, plus the 0.8.1–0.8.3 MVCC and sync
fixes. No API change on this side — the engine is used through one
module — and the 28 database CLI tests and 386 provider tests pass
unchanged. The benchmarks page gains the SQLite section it was missing,
measured on this build throughbench/db/run.shagainst Node, Bun and
Deno.