JSR unstable prereleases: @deltic/{runtime,translator,wasi-shims,ct-runner} - #64
Merged
Conversation
…unner} (#16) Every green main commit now also publishes 0.1.0-pre.<commit-count> to JSR from the existing release workflow (OIDC; the one-time scope/package setup checklist is on #16). Blockers found by dry-run, each fixed at the root rather than suppressed: - License: Apache-2.0 (operator ruling) — LICENSE at the root, license field in all four packages. - Publish set: harness/ and examples/ lose their workspace names (never imported by bare specifier; unnamed members are not publishable and stay internal). runtime/ and translator/ gain version fields; tests/ and testdata/ are publish-excluded everywhere; the gitignored translator asset is force-included via a negative publish glob and lands in the package (1.76 MB, verified in the dry-run file list). - Slow types: exactly two in the whole workspace (scheduler.ts Set initializers) — annotated explicitly instead of --allow-slow-types. - Global-augmentation leak: suspendingImport/makeSuspending named WebAssembly.Suspending in PUBLIC signatures, which JSR's type output drops (declare global does not travel). Public API now uses an opaque exported brand (SuspendingImport); the augmentation stays internal. This is the right API shape regardless of JSR: consumers should not need our ambient declarations to read our signatures. - Cross-package hygiene: ct-runner imported @deltic/runtime by RELATIVE path (illegal across published package boundaries) — switched to the bare specifiers wasi-shims already uses; deno publish rewrites them. Release flow updates: id-token permission (JSR OIDC), fetch-depth 0 (commit count = prerelease number), version stamping is CI-working-tree only (checked-in versions stay 0.1.0). Re-runs are no-ops-by-failure twice over (tag guard + JSR duplicate-version refusal). Drive-by consistency fix: release-artifacts still built an UNTUNED "standard" shim plus a separate min variant — stale since #58 made the tuned build the artifact every suite runs against. It now ships the one tuned shim via the shim recipe (also feeding the translator package asset), and the release notes stop advertising the retired variant. Remaining warnings (4) are the legitimately-dynamic CLI import in ct-runner main.ts and test-file imports outside the publish set — acknowledged, not suppressed. Gates: dry-run simulates all four packages cleanly; test-runtime, test-wasi-shims, test-ct-runner, test-bundle, examples, test-translate, conformance (1254/0, 0 unexpected, 0 stale), sched-seeds, shells, test-ports, smoke-tls.
lann
enabled auto-merge
August 10, 2026 22:54
…cap) The called release.yml now requests id-token: write for JSR OIDC; a reusable workflow may not request permissions its caller's job does not grant, and GitHub validates that at STARTUP — so ci.yml itself failed with startup_failure on the PR (run 31440257705), taking every check down with it. Grant the permission at the call site.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Executes #16's publishing half: every green main commit publishes
0.1.0-pre.<commit-count>to JSR from the existing release workflow (OIDC).Dry-run-driven fixes, root causes not suppressions (full list in the commit message): Apache-2.0 license (operator ruling); harness/examples de-named (unpublishable internals); tests publish-excluded; the gitignored translator asset force-included (1.76 MB verified in the simulated file list); the only two slow-types in the workspace annotated;
WebAssembly.Suspendingremoved from public signatures in favor of an opaque exported brand —declare globaldoesn't travel to JSR's type output, and consumers shouldn't need our ambient augmentation anyway; ct-runner's relative imports into runtime replaced with bare specifiers.Drive-by:
release-artifactsstill shipped an untuned 'standard' shim + a min variant — stale since #58; now one tuned shim (the artifact every suite runs against), release notes updated.⚠ One-time manual setup before the first publish succeeds (needs your JSR account):
@delticscope on jsr.io.runtime,translator,wasi-shims,ct-runner.lann/deltic(Settings → GitHub repository) to enable OIDC publishing from Actions.Until then the JSR step fails (and the GitHub-release step before it still completes).
deno publish --dry-run --allow-dirtyis green locally for all four packages.Gates: full sweep green (commit message has the list); conformance 1254/0, 0 unexpected, 0 stale.