Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
6d348cc
Add RustPython generated WASM WS module
jayvdb Jun 16, 2026
503f522
Force driver
jayvdb Jun 16, 2026
67d5617
another win fix
jayvdb Jun 16, 2026
81e8fb2
oxlint & oxfmt, and fixes
jayvdb Jun 16, 2026
946fa95
Build rust-python assets
jayvdb Jun 17, 2026
4c5f3e6
fixes
jayvdb Jun 17, 2026
2afff9c
various fixes
jayvdb Jun 17, 2026
6ccc815
fixes; activate pywasm1
jayvdb Jun 17, 2026
d85174d
Add suse
jayvdb Jun 17, 2026
62c07cf
a few fixes
jayvdb Jun 17, 2026
384cf65
more fixes
jayvdb Jun 17, 2026
73e74e3
fixes
jayvdb Jun 17, 2026
dba572f
two fixes
jayvdb Jun 17, 2026
444d786
a few fixes
jayvdb Jun 17, 2026
6acf928
rm bashisms
jayvdb Jun 17, 2026
349a911
two fixes
jayvdb Jun 17, 2026
3743cbd
stuff
jayvdb Jun 17, 2026
d356827
fixes
jayvdb Jun 17, 2026
f749193
switch to et-rp
jayvdb Jun 17, 2026
5ee1d91
cowsay on nano
jayvdb Jun 17, 2026
321f0b5
two win fixes
jayvdb Jun 17, 2026
8e06f97
more win fixes
jayvdb Jun 17, 2026
53d8f24
remove gen: dep task from the build tasks
jayvdb Jun 17, 2026
995b2cf
more windows fixes
jayvdb Jun 18, 2026
091b08c
narrow gha for faster feedback; fix windows; lint conftest
jayvdb Jun 18, 2026
ec208ee
Add MISE_ENV support to edge-toolkit
jayvdb Jun 18, 2026
8f31bb9
add servercore
jayvdb Jun 18, 2026
cbd1513
fix per-lang skip
jayvdb Jun 18, 2026
c0bc834
two fixes
jayvdb Jun 18, 2026
8448c74
Re-enable langs
jayvdb Jun 18, 2026
fea14fe
fix windows tool paths
jayvdb Jun 18, 2026
24d6931
fixes
jayvdb Jun 18, 2026
dcd7346
windows fixes and shared actions
jayvdb Jun 18, 2026
773555e
disable python on nana, add HELP.md
jayvdb Jun 18, 2026
23a78bc
new approach to fix prefetch hang on windows test.yaml
jayvdb Jun 18, 2026
ef43153
rv buildkit
jayvdb Jun 18, 2026
9990949
another rv
jayvdb Jun 18, 2026
acdc43a
debug mise
jayvdb Jun 18, 2026
d30ae7c
debugging
jayvdb Jun 18, 2026
bc0c483
more diagnostics
jayvdb Jun 18, 2026
eb622b6
Bypass mise file shims for retry inner command
jayvdb Jun 18, 2026
87624a5
Empty MISE_ENV in test.yaml to bisect language toolchain
jayvdb Jun 18, 2026
a96442b
Dump mise shim contents to diagnose setlocal recursion
jayvdb Jun 18, 2026
524633c
Fix pwsh "$name:" parse error in shim diagnostic
jayvdb Jun 18, 2026
bdbb445
Delete self-recursive mise.cmd shim on Windows
jayvdb Jun 18, 2026
5c960b3
Move mise.cmd-removal step AFTER mise install
jayvdb Jun 18, 2026
d4e5d01
Set HOME=USERPROFILE on Windows for mise Tera renderer
jayvdb Jun 18, 2026
a540cca
add .js lang
jayvdb Jun 18, 2026
cb71709
Gate more tests on MISE_ENV-loaded language envs
jayvdb Jun 18, 2026
f5d5668
Bisect: MISE_ENV='rust' on test.yaml
jayvdb Jun 18, 2026
02c2e6e
Bisect: MISE_ENV='rust,python' on test.yaml
jayvdb Jun 18, 2026
63e8dfc
Bisect: MISE_ENV='rust,python,zig' on test.yaml
jayvdb Jun 18, 2026
2ac92b1
Bisect: MISE_ENV='rust,python,zig,java' on test.yaml
jayvdb Jun 18, 2026
4994fb5
Bisect: skip java, try dotnet next
jayvdb Jun 18, 2026
ffacb78
Comment out all use of recur
jayvdb Jun 18, 2026
f74314c
Add per-step timeouts to test.yaml
jayvdb Jun 18, 2026
78b1750
build-ws-wasm-agent: route wasm-pack through mise exec
jayvdb Jun 19, 2026
6092b62
Revert build-ws-wasm-agent `mise exec --` wrapper
jayvdb Jun 19, 2026
177898f
Stable-toolchain wasm-agent + re-enable ubuntu-latest
jayvdb Jun 19, 2026
3a1e0c8
Add +reference-types to wasm_rustflags
jayvdb Jun 19, 2026
0490dbc
Hoist wasm_rustflags from task env to workspace [env]
jayvdb Jun 19, 2026
d5bb7e0
Move build-ws-wasm-agent into config.rust.toml
jayvdb Jun 19, 2026
307b8ec
Move build-et-cli into config.rust.toml
jayvdb Jun 19, 2026
a6d1dfa
Restore build-et-cli to base config, use shell=bash
jayvdb Jun 19, 2026
4d703cf
Use busybox-w32 ash as Windows default shell
jayvdb Jun 19, 2026
b409163
Drop --noprofile --norc from busybox ash invocation
jayvdb Jun 19, 2026
7141deb
Disable mise's vfox backend + pin idiomatic-files off
jayvdb Jun 19, 2026
914c143
Disable chromedriver in [tools]
jayvdb Jun 19, 2026
3ac0d60
Bisect: add js to MISE_ENV; re-enable docker-windows servercore 2025
jayvdb Jun 19, 2026
e52df89
windows fixes and build more binary assets
jayvdb Jun 19, 2026
eb6e488
Drop workflow_dispatch-only gating on new upstream-cache jobs
jayvdb Jun 19, 2026
7e32f61
set windows_default_inline_shell_args
jayvdb Jun 19, 2026
90cd565
Add java to MISE_ENV bisect; set JAVA_HOME on Windows; lift pkgx auge…
jayvdb Jun 19, 2026
cfa309c
Drop empty env block from test.yaml job (regressed from previous push)
jayvdb Jun 19, 2026
576f852
Wire up http:gnupg-w32 from the upstream-cache release
jayvdb Jun 19, 2026
93a198a
augeas Windows: add -Duint=unsigned for the BSD-ism
jayvdb Jun 19, 2026
bf3edc1
augeas Windows: patch augtool.c to skip pwd.h
jayvdb Jun 19, 2026
451f208
Rename upstream-cache config to a single dir
jayvdb Jun 19, 2026
cdd057b
add patch
jayvdb Jun 19, 2026
bc0024e
Park test.yaml + docker-windows.yaml while iterating on augeas
jayvdb Jun 19, 2026
68e7fbc
augeas Windows: shim `uint` in internal.h; wrap sigaction guards
jayvdb Jun 19, 2026
d0a172c
augeas Windows: use a non-zero blob index for the internal.h hunk
jayvdb Jun 19, 2026
8c34e94
augeas Windows: ship a minimal <glob.h> shim for syntax.c
jayvdb Jun 19, 2026
338ad82
update
jayvdb Jun 19, 2026
79108ae
augeas Windows: cygpath -m \$RUNNER_TEMP for libtool -rpath
jayvdb Jun 19, 2026
2b81850
augeas Windows: route the final tar through cygpath -m too
jayvdb Jun 19, 2026
b5a2419
augeas Windows: tar --force-local to silence the host:path heuristic
jayvdb Jun 19, 2026
6c03465
Wire up http:augeas; drop cargo:toml-cli
jayvdb Jun 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: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
**/target/
**/.DS_Store
services/ws-wasm-agent/pkg/
services/ws-modules/pywasm1/pkg/
services/ws-server/static/models/
**/.zig-cache/
**/zig-out/
Expand Down
9 changes: 9 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -79,3 +79,12 @@ max_line_length = unset
# The generator is the source of truth; we don't edit its output by hand.
[generated/zig-rest/**]
max_line_length = unset

# config/upstream-cache/data.toml stores per-asset metadata including the canonical
# download URL (`https://github.com/edge-toolkit/core/releases/download/<tag>/<long-asset-name>`)
# and the upstream project URL. Both routinely exceed 120 chars and can't be
# meaningfully line-wrapped in TOML (a string value can't span lines without
# multi-line-string syntax that would change the parsed value). Loosen to 200.
[config/upstream-cache/data.toml]
max_line_length = 200

90 changes: 90 additions & 0 deletions .github/actions/install-mise-tools/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
name: Install mise tools
description: >-
Install mise (via install-mise), then trust the .mise config, and install
the toolchain named by the workflow's MISE_ENV (with one retry on transient
HTTP flakes). Shared by check.yaml and test.yaml; the caller must run
`actions/checkout` before this so .mise/config*.toml exists for `mise trust`.

inputs:
github-token:
description: >-
GitHub token forwarded as `$GITHUB_TOKEN` to the mise/preinstall steps.
Raises the api.github.com rate-limit ceiling on aqua's attestation
lookups + tool-asset fetches.
required: true
extra-tools:
description: >-
Comma-separated tools to co-install via taiki-e/install-action in the
same step as mise. Forwarded to install-mise's `extra-tools` input.
NOT used for `aube` -- install-action's manifest expects an `aubr`
binary that recent aube releases don't ship, so the install resolves
to a cargo source-build that flakes on crates.io SSL. The aube path
below uses the original `mise run setup-aube` (npm-backed, allowed
to fail) which has been the reliable install method.
required: false
default: ""

runs:
using: composite
steps:
- name: Install mise binary
uses: ./.github/actions/install-mise
with:
extra-tools: ${{ inputs.extra-tools }}

- name: Show MISE_ENV
shell: bash
run: echo "MISE_ENV=$MISE_ENV"

# Optional npm backend, installed before the main `mise install`.
# Only useful when js env is loaded (it's the backend for npm:* tools, all
# of which live in config.js.toml); skip otherwise to avoid the install
# cost on workflows that don't need any npm: install.
# See [tasks.setup-aube] in .mise/config.toml for the full rationale.
- name: Install aube (optional npm backend, allowed to fail)
if: contains(env.MISE_ENV, 'js')
continue-on-error: true
shell: bash
env:
GITHUB_TOKEN: ${{ inputs.github-token }}
run: mise run setup-aube

- name: Install mise tools
shell: bash
env:
GITHUB_TOKEN: ${{ inputs.github-token }}
run: |
mise run preinstall
# Retry once on transient api.github.com 5xx during the aqua attestation
# / asset fetches: the first attempt re-uses what's already on disk, so
# the retry usually clears single-tool HTTP flakes in seconds.
mise install || { echo "::warning::mise install failed, retrying once"; mise install; }

# Delete the self-recursive `mise.cmd` shim mise generates on Windows.
# Captured contents:
# @echo off
# setlocal
# mise x -- mise %*
# `mise x -- mise %*` invokes `mise` via cmd's PATH search; with the shims
# dir prepended (by install-mise), that lookup resolves back to mise.cmd
# itself, which does the same lookup, recursing inside cmd.exe and blowing
# the setlocal stack with `Maximum setlocal recursion level reached. /
# The syntax of the command is incorrect.` Every OTHER .cmd shim whose
# body invokes `mise` (cargo.cmd, rclone.cmd, ...) trips the same loop:
# cargo.cmd → mise → mise.cmd → mise → mise.cmd → ... Removing mise.cmd
# + the extensionless `mise` companion lets cmd's PATH search fall
# through to the real `mise.exe` at `~/.cargo/bin/mise.exe` (staged by
# taiki-e/install-action) which spawns each tool directly via mise's
# own tool registry. Must run AFTER `mise install` -- that's the step
# that creates the shims. Observed in
# https://github.com/edge-toolkit/core/actions/runs/27758913526/job/82127840771
# on 524633c8d80e8867d (the prefetch:rust diagnostic dump printed the
# cargo.cmd / mise.cmd shim contents verbatim).
- name: Remove self-recursive mise.cmd shim on Windows
if: runner.os == 'Windows'
shell: bash
run: |
shims="$LOCALAPPDATA/mise/shims"
rm -fv "$shims/mise.cmd" "$shims/mise"
ls "$shims" | grep -i '^mise' || true
49 changes: 49 additions & 0 deletions .github/actions/install-mise/action.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
---
name: Install mise
description: >-
Install the mise binary (and cargo-binstall as its source-build backend)
via taiki-e/install-action, and on Windows add mise's file-shim dir to
PATH so subsequent steps can resolve mise-managed tools by bare name.
Shared by every workflow that runs `mise` on the runner. For the heavier
"also install everything named by MISE_ENV" flow, use install-mise-tools.

inputs:
extra-tools:
description: >-
Comma-separated tools to co-install via taiki-e/install-action in the
same step as mise (cheaper than a second install-action call). Use the
same syntax as install-action's `tool:` input.
required: false
default: ""

runs:
using: composite
steps:
- name: Install mise (and any extra tools)
uses: taiki-e/install-action@v2
with:
tool: cargo-binstall,mise@2026.6.5${{ inputs.extra-tools && ',' || '' }}${{ inputs.extra-tools }}

# taiki-e/install-action's mise manifest stages only `mise.exe`; mise's
# per-tool `.cmd` "file" shims under `%LOCALAPPDATA%\mise\shims` aren't
# on PATH by default, so tool lookups inside `mise run` fail with
# `'dart' / 'mvn' / 'recur' / 'wasm-pack' / 'zig' is not recognized…`.
# We append the shims dir for subsequent steps. The companion
# `mise-shim.exe` (single-binary shim) ALSO ships in the Windows zip,
# but staging it triggers a CreateProcess `ERROR_FILENAME_EXCED_RANGE`
# (os error 206) when mise-shim re-execs mise.exe with the runner's
# already-long PATH inherited -- the file-shim fallback doesn't have
# this problem (each .cmd shim invokes `mise exec --` plainly via cmd).
- name: Add mise shims dir to PATH on Windows
if: runner.os == 'Windows'
shell: bash
run: echo "$LOCALAPPDATA\mise\shims" >> "$GITHUB_PATH"

# Marks the checked-out .mise/config*.toml as trusted so subsequent mise
# invocations don't error out with "Config files are not trusted". The
# caller must run actions/checkout BEFORE this composite action so the
# config files are on disk.
- name: Trust mise config
shell: bash
run: mise trust

40 changes: 11 additions & 29 deletions .github/workflows/check.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,17 @@ concurrency:

defaults:
run:
shell: bash
shell: bash --noprofile --norc -euo pipefail {0}

env:
MISE_ENV: dart,dotnet,java,js,python,rust,zig

jobs:
check:
# TEMPORARY: `if: false` parks the job (shows as skipped, no runner time)
# so all PR-runner capacity goes to the Windows cygheap-fork investigation
# in test.yaml. Drop this line once the prefetch-hang root cause lands.
if: false
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
Expand All @@ -29,35 +36,10 @@ jobs:
fetch-depth: 1
persist-credentials: false

- name: Install mise
uses: taiki-e/install-action@v2
- name: Install mise + tools
uses: ./.github/actions/install-mise-tools
with:
tool: cargo-binstall,mise@2026.6.5

- name: Select all language envs
run: echo "MISE_ENV=$(mise run print-all-langs)" >> "$GITHUB_ENV"

# Optional npm backend, installed before the main `mise install`.
# See [tasks.setup-aube] in .mise/config.toml for the full rationale.
- name: Install aube (optional npm backend, allowed to fail)
continue-on-error: true
run: |
mise settings experimental=true
mise run setup-aube
env:
GITHUB_TOKEN: ${{ github.token }}
MISE_HTTP_TIMEOUT: "120"

- name: Install mise tools
run: |
mise run preinstall
mise install
env:
GITHUB_TOKEN: ${{ github.token }}
# GitHub release downloads occasionally take longer than mise's
# default 30s HTTP timeout; bump it so transient network slowness
# doesn't fail the whole `mise install` step.
MISE_HTTP_TIMEOUT: "120"
github-token: ${{ github.token }}

- name: Prefetch Rust dependencies
run: mise run prefetch:rust
Expand Down
26 changes: 20 additions & 6 deletions .github/workflows/dependencies.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ name: dependencies
- config/deny.toml
- config/osv-scanner.toml
- .github/workflows/dependencies.yaml
- .github/actions/install-mise/**
workflow_dispatch:

permissions:
Expand All @@ -21,10 +22,23 @@ concurrency:

defaults:
run:
shell: bash
shell: bash --noprofile --norc -euo pipefail {0}

env:
MISE_ENV: dart,dotnet,java,js,python,rust,zig

jobs:
dependencies:
# TEMPORARY: `if: false` parks the job (shows as skipped, no runner time)
# so all PR-runner capacity goes to the Windows cygheap-fork investigation
# in test.yaml. Drop this line once the prefetch-hang root cause lands.
if: false
# `ubuntu-latest`, not `ubuntu-slim`: although every step in this workflow
# is metadata/network-bound (no Rust compile), `taiki-e/install-action`
# itself assumes a standard runner-image FHS (e.g. ~/.cargo/bin) and
# fails on slim's bare container with `I/O Error: No such file or
# directory` while staging cargo-unmaintained. Slim only fits workflows
# whose first step doesn't need that scaffolding.
runs-on: ubuntu-latest
timeout-minutes: 25
steps:
Expand All @@ -34,13 +48,13 @@ jobs:
fetch-depth: 1
persist-credentials: false

- name: Install tools
uses: taiki-e/install-action@v2
- name: Install mise + dependency-scan tools
uses: ./.github/actions/install-mise
with:
tool: cargo-deny,cargo-unmaintained,coreutils,mise@2026.6.5,osv-scanner,ripgrep
extra-tools: cargo-deny,cargo-unmaintained,coreutils,osv-scanner,ripgrep

- name: Trust mise config
run: mise trust
- name: Show MISE_ENV
run: echo "MISE_ENV=$MISE_ENV"

- name: Generate config/osv-scanner.toml from config/deny.toml
run: mise run gen:osv-scanner
Expand Down
Loading
Loading