ReviewOS

stacks/bun-router

release: prepare bun-router 0.1.19 runtime entry

#899
Open chris opened this 8 days ago ·
8 days ago

Objective

Prepare @stacksjs/bun-router 0.1.19 so Stacks can adopt the narrow @stacksjs/bun-router/runtime entry tracked by stacksjs/stacks#2590.

The runtime entry landed in 0ca8f67 and its reproducible fresh-process diagnostic landed in 19c592a. Exact Bun 1.4.2 CI and the 30-pair hosted import benchmark are already green.

Preparation

  • bump the root workspace and published package versions from 0.1.18 to 0.1.19,
  • add release notes for the runtime entry and its benchmark,
  • build and test on exact Bun 1.4.2,
  • lint and typecheck both registry type projects,
  • pack the public package and verify the packed artifact exposes root, runtime, and container imports,
  • retain the existing 565-test runtime validation and link the final CI run.

Publication boundary

This issue prepares a reviewable release commit only. Do not create a tag, dispatch the Releaser workflow, or publish the stable npm package without explicit publication approval.

Downstream completion

After 0.1.19 is available from npm, update Stacks to the stable package, switch the remaining runtime import from the bun-router root to @stacksjs/bun-router/runtime, and rerun the equal-rate memory benchmark before closing stacksjs/stacks#2590.

8 days ago

Release preparation is committed to main as https://github.com/stacksjs/bun-router/commit/745646552998d848be334bd42528725083f71b27.

Exact Bun 1.4.2 validation completed before the commit:

  • frozen install passed with no lockfile changes
  • 1,007 tests passed across 61 files with 0 failures and 3,046 assertions
  • standard and registry TypeScript projects passed
  • pickier lint passed
  • package build and CLI compile passed

The public 0.1.19 tarball was built with Bun 1.4.2 and installed into a fresh consumer. Root and runtime entries served identical responses, the runtime entry omitted root-only modules, the container entry resolved, both bun-router and router binaries reported 0.1.19, and TypeScript 7 resolved the packed declarations.

Tarball details:

  • size: 279,566 bytes
  • SHA-256: 67723672f1371cf79b0949af91af55619bd6cc08d2396e887cbafba4d5b8cfcc
  • contains dist/index.js, dist/runtime.js, dist/container/index.js, matching declaration files, and the CLI target

No tag, Releaser dispatch, or npm publication has been performed. The stable publication boundary remains pending explicit approval.

8 days ago

The exact release-prep commit passed the full main CI workflow: https://github.com/stacksjs/bun-router/actions/runs/35569641680

All preparation criteria are complete. The next action is to create and push tag v0.1.19 at 745646552998d848be334bd42528725083f71b27. That tag triggers the Releaser workflow, stable npm publication of @stacksjs/bun-router@0.1.19, and the GitHub release. This publication action is intentionally waiting for explicit approval.

8 days ago

Release preparation now includes the runtime initializer optimization from 65e3919 and the corresponding release-note update from 84fc358.

The installed runtime graph is now 114,700 bytes across 2 files, down from 157,974 bytes across 3 files. The exact Bun 1.4.2 clean-revision diagnostic measured a 50.74% lower median import time and 14.33% lower median settled RSS over 30 alternating fresh-process pairs. Full validation and packed-consumer details are recorded in #900.

The prior 0.1.19 tarball hash is superseded because this optimization changes the published files. The final package tarball built from the current clean release-prep head is byte-identical to the tarball validated in the fresh consumer:

  • size: 279,684 bytes
  • SHA-256: 3731ef67ce2d89fad825d9d415c2c1920cdd7209b5fb6d825e69de24776afb08
  • validated exports: root, runtime, container, generated declarations, bun-router, and router

CI for the implementation revision is https://github.com/stacksjs/bun-router/actions/runs/35571128724. A second CI run for the release-note head will be linked when complete. No tag, release dispatch, or npm publication has been performed.

8 days ago

The current release-prep head, 6ac8f75, passed the full main CI workflow on exact Bun 1.4.2: https://github.com/stacksjs/bun-router/actions/runs/35571397050

The final test-only commit replaces a flaky sub-millisecond timing assertion with deterministic memoization behavior coverage. It is excluded from the published package, so the validated 0.1.19 tarball remains byte-identical at 279,684 bytes with SHA-256 3731ef67ce2d89fad825d9d415c2c1920cdd7209b5fb6d825e69de24776afb08.

Release preparation is green at the current main head. Stable npm and GitHub release publication still requires the explicit tag or release authorization recorded in this issue.

8 days ago

Release preparation now ends at 429dc0c, which adds deterministic built-graph evidence to the runtime diagnostic. Its exact main CI run is green: https://github.com/stacksjs/bun-router/actions/runs/35571715757

The clean hosted Bun 1.4.2 diagnostic is https://github.com/stacksjs/bun-router/actions/runs/35571734078 with raw artifact https://github.com/stacksjs/bun-router/actions/runs/35571734078/artifacts/10626456618. It records a 69.19% smaller static graph, 55.87% lower median import time, and 10.76% lower median settled RSS for the runtime entry. Runtime was lower in all 30 import and RSS pairs.

The benchmark-only commit is outside the published package, so the validated 0.1.19 tarball remains byte-identical at 279,684 bytes with SHA-256 3731ef67ce2d89fad825d9d415c2c1920cdd7209b5fb6d825e69de24776afb08. Stable publication remains pending explicit authorization.

8 days ago

Release preparation now ends at ffba11f. This includes the method-correct, reload-safe static response implementation from #903 and updated 0.1.19 notes.

Hosted CI is fully green at the exact head: https://github.com/stacksjs/bun-router/actions/runs/35575160506

The refreshed package candidate was built and packed twice with exact Bun 1.4.2. Both archives were byte-identical:

  • size: 283,778 bytes
  • SHA-256: bca21ca74934d5fbf0ade16f52864e00a3a47f9e67d9cc161332f89577899ed3
  • files: 156

A fresh Bun 1.4.2 consumer installed the tarball and successfully imported the root, runtime, and container exports. Its HTTP probe confirmed a prebuilt POST response returns 405 with Allow: POST to GET and returns the expected body to POST.

Local validation at the implementation head also passed 570 tests, TypeScript checks, package build, and full pickier lint. No tag, release dispatch, or stable npm publication has been performed.

8 days ago

Release candidate update:

  • candidate head: 2ae2e8cb5dce9d9b84cce4d7bd2547072a99283d
  • hosted Bun 1.4.2 CI: https://github.com/stacksjs/bun-router/actions/runs/35575618256
  • all lint, test, typecheck, and commit publication checks passed
  • the final test-only commit proves that a method-scoped static Response is served without entering the JavaScript fetch handler
  • package contents are unchanged because tests are excluded from the published package
  • twice-built tarball remains byte-identical at 283,778 bytes with SHA-256 bca21ca74934d5fbf0ade16f52864e00a3a47f9e67d9cc161332f89577899ed3

The stable v0.1.19 tag and npm publication remain intentionally uncreated pending explicit release approval.

8 days ago

Release candidate update:

The 0.1.19 runtime and root entries now export one stable marker for router-generated enriched 404 responses. The downstream Stacks production-handler cohort improves by 19.56% with 15 of 16 wins and a fully favorable paired interval. bun-router's isolated marker overhead is neutral within measurement noise.

The refreshed package candidate was built and packed twice with exact Bun 1.4.2. Both archives were byte-identical:

  • size: 279,825 bytes
  • SHA-256: 38b2baa7a0e6d928f5dc4e10746cc4e6d0cc5eb8079c475a70b20c6f6168c8cc
  • files: 158

A fresh Bun 1.4.2 consumer installed the tarball and verified the root, runtime, and container entries, the shared exported symbol, a marked generated 404, and the 0.1.19 CLI.

No tag, release dispatch, GitHub release, or stable npm publication has been performed. Those actions still require explicit release approval.

8 days ago

Release candidate refreshed after #905.

Exact Bun 1.4.2 package verification at a22ca57:

  • two independent @stacksjs/bun-router@0.1.19 archives are byte-identical
  • archive size: 280,185 bytes
  • SHA-256: e94dc2deab084e7f5092e030c76b097ab64499fb49e8f60d0ed24df1965fbbce
  • 159 packaged files
  • fresh consumer installed the archive successfully
  • root, runtime, and container entry imports passed
  • root/runtime enriched 404 marker identity passed
  • synchronous middleware dispatch and public Promise compatibility passed
  • generated 404 marker passed
  • packaged CLI reports router/0.1.19 darwin-arm64 bun-v1.4.2

The candidate now includes the enriched 404 marker from #904 and synchronous middleware compilation from #905. No tag, release workflow, or npm publication has been performed. Stable publication remains pending explicit release approval.

8 days ago

The 0.1.19 release candidate has been refreshed after #906.

Exact candidate head: https://github.com/stacksjs/bun-router/commit/c8bd246ba9ce3c1e5f38f414927f9ef852dde942

Exact-head CI is green: https://github.com/stacksjs/bun-router/actions/runs/35719333960

Reproducible package check on exact Bun 1.4.2:

  • Packed twice from the exact head.
  • Both archives are 280,193 bytes with 159 files.
  • Both archives have SHA-256 6dcaba358d011febf177f3ef56d48c38494383c61c7aee6b163a8acf06b948e6.
  • A fresh consumer installed the archive and passed root, runtime, and container entry imports.
  • The consumer verified runtime marker identity, generated enriched 404 marking, synchronous middleware dispatch without a Promise boundary, public builder Promise compatibility, and handled route behavior.
  • Packaged CLI reports router/0.1.19 darwin-arm64 bun-v1.4.2.

This candidate includes the completed performance work in #904, #905, and #906. Stable publication remains pending explicit release approval.

Sign in to comment on this issue.