Skip to content

release(econ): npm publish wiring + v1.16.0 lockstep bump + pre-publish gates#121

Merged
Tarabcak merged 7 commits into
mainfrom
econ/pre-publish
Jul 14, 2026
Merged

release(econ): npm publish wiring + v1.16.0 lockstep bump + pre-publish gates#121
Tarabcak merged 7 commits into
mainfrom
econ/pre-publish

Conversation

@Tarabcak

Copy link
Copy Markdown
Collaborator

Summary

Pre-publish prep that makes the econ vertical dual-SDK release actually publishable, and cuts the lockstep v1.16.0 bump.

Context: 1.15.0 already shipped the general-first re-layering (core/weather/markets/meta are live on npm + PyPI) without econ. Only @mostlyrightmd/econ / mostlyrightmd-econ are unpublished. This branch wires econ into the release path and bumps everything to 1.16.0 so econ debuts in lockstep.

Nothing here publishes anything — the v1.16.0 (PyPI) / vts-1.16.0 (npm) tags remain a separate operator step.

What's in this PR (6 commits)

Pre-publish gates

  • da798c8test-ts CI runs on Node 20 + 22 via a matrix behind a stable test-ts required-check gate (branch protection unchanged; verified against the live protection API).
  • 7de6645engines.node >= 20 on the 5 published TS manifests (only the workspace root declared it before).
  • 38d2287 — D-LIC-4: data-licensing pointer wired into CLAUDE.md (per-source ToU posture: BLS/BEA/Fed-Board public domain vs FRED/ALFRED contract-ToU).
  • 7a84d1b — BLS-required "cannot vouch" citation notice added to the econ README + docs (BLS API ToS read 2026-07-14: permissive, no end-use controls, but the disclaimer is mandatory).

Release-readiness (this is what made the branch publishable)

  • dabc2e0wire @mostlyrightmd/econ into the npm publish path: new publish step in release-ts.yml, econ added to release-ts-preflight.mjs (version-check + peerDep-rewrite), the changesets fixed lockstep group, and the root build + size-limit scripts. (PyPI's release.yml already had a publish-econ job from 29-01; the npm side never got econ, so a vts tag would have shipped econ to PyPI and silently skipped npm.)
  • 7d956balockstep bump all 9 dists → 1.16.0 (5 package.json + 4 pyproject.toml + uv.lock) + CHANGELOG.md [1.16.0] section documenting the econ debut and the Node ≥20 floor.

Review

Two rounds of cross-model codex (GPT-5) review on the release-engineering:

  • Round 1 caught two real blockers a blind bump-and-tag would have shipped: a CRITICAL (the root build omitted econ, so @mostlyrightmd/econ@1.16.0 would have published with only package.json + README — no code, CI green, immutable) and a HIGH (npm pending-publisher checklist omitted econ). Both fixed + empirically verified (the packed tarball now contains all 8 dist/* files).
  • Round 2: PASS (converged) — both confirmed fixed (codex re-verified from a clean rm -rf dist && build), zero new findings.

Test plan

  • CI=true pnpm -r run typecheck — green
  • CI=true pnpm -r run test — green (~1900)
  • pnpm run build — green; packages-ts/econ/dist/ produced; pnpm pack tarball contains real code
  • pnpm run size — all 5 packages within budget (econ 15.48 KB brotli < 18 KB)
  • pnpm codegen — deterministic (no drift)
  • uv run pytest -m "not live" — green; uv lock --check — in sync
  • node scripts/release-ts-preflight.mjs vts-1.16.0 — verifies all 5 versions incl. econ + rewrites econ's core peerDep
  • CI on this PR (Node 20/22 matrix + the 7 required checks)
  • Vu cross-review (two-lane norm)

Operator action before the publish tag (not before merge)

@mostlyrightmd/econ is a brand-new npm package — confirm the npm publish path can create it (trusted-publisher registration / NODE_AUTH_TOKEN rights) before pushing vts-1.16.0. PyPI side is already registered.

Tarabcak added 6 commits July 14, 2026 12:18
Add econ to release-ts.yml (publish step + pending-publisher checklist),
release-ts-preflight.mjs (version-check + peerDep-rewrite), the changesets
fixed-group, and the root build + size-limit scripts. PyPI was already wired
(release.yml publish-econ, 29-01); the npm side was not, so a vts tag would
have shipped econ to PyPI but silently skipped npm. Also fixes a stale
helloiamvu/tradewinds repo ref in the publisher checklist.
1.15.0 already shipped the general-first re-layering (core/weather/markets/meta
live on npm+PyPI) without econ; econ debuts here. Lockstep minor across all 9
dists + uv.lock + CHANGELOG (documents the econ debut and the engines.node>=20
floor).
@github-actions

Copy link
Copy Markdown

Parity ticket gate: PASSED

parity-ticket-check: PR does not touch parity-trigger surface; gate skipped.

See CROSS-SDK-SYNC.md §2 for the workflow.

@Tarabcak Tarabcak merged commit e6c97f5 into main Jul 14, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant