Repository navigation
test(webapi): harden runtime and release validation [Codex] - #397
jderochervlk wants to merge 4 commits into
Conversation
|
Independent review of exact head One P2 finding: tests/browser/native-api.spec.mjs:24–28: the failure formatter can itself throw. In Chromium, injecting an awaited module rejection shaped as Independent evidence: fresh Acceptance still open: #383 needs the formatter fix above; binding-specific native/unsafe/nullable cases are intentionally stacked, not missing foundation dependencies. #384 installation/artifact behavior passes, but supported/tested compiler-version prose is absent from this head. #385 machinery passes inspection/execution, but release/tag/release-note/changelog/dist-tag-verification instructions are absent here, and external npm configuration remains unverified: owner |
The alpha readiness review found that runtime fixtures could silently remain compile-only, the generated-JavaScript drift check inspected ignored outputs, the
rescript@>=13peer range excluded the intentionally supported ReScript 13 alpha, and release versions were generated from commit hashes rather than a numbered alpha series.This branch adds explicit compile-only, documentation-example, Node-runtime, and Chromium-runtime fixture categories with registration checks; meaningful assertions for the existing Node-compatible Fetch and URL fixtures; and a native Chromium runner that imports compiled ReScript modules and reports fixture-specific async failures. Negative consumer compilations verify intended diagnostics rather than accepting arbitrary compiler failures.
The packed-consumer check installs the actual npm tarball with ReScript 13.0.0-alpha.5, compiles default, Fetch, and SafeFetch consumers, runs a Node smoke test, verifies rejection of unsupported compiler versions and Fetch-only SafeFetch, and checks package contents. The release machinery uses package.json/package-lock.json version
1.0.0-alpha.1, validates the explicit alpha version and registry availability, exercises the same packed artifact, and separates no-OIDC validation/dry-run from a main-only publication job. Only that publish job receivesid-token: write; it verifies the downloaded artifact name/version and publishes with thealphadist-tag.Closes #384.
Closes #396.
Refs #383 and #385. The binding-specific Chromium and negative type-contract fixtures are being added in the stacked bindings PR. The npm trusted-publisher account configuration cannot be confirmed from repository access; #385 remains release-gated until a maintainer verifies owner
rescript-lang, repositoryexperimental-rescript-webapi, workflow filenamerelease.yml, environment unset, and that directnpm publishis allowed. This PR does not publish or merge.