Skip to content

th-8a0b45: actually publish the TS/Python/.NET temporal packages - #197

Merged
brentrager merged 1 commit into
mainfrom
th-8a0b45-publish-temporal-siblings
Aug 26, 2026
Merged

th-8a0b45: actually publish the TS/Python/.NET temporal packages#197
brentrager merged 1 commit into
mainfrom
th-8a0b45-publish-temporal-siblings

Conversation

@brentrager

Copy link
Copy Markdown
Contributor

The defect (pearl th-8a0b45)

The three non-Rust temporal siblings shipped Aug 17 (#168 TS, #169 Python, #173 .NET) were never published anywhere. Diagnosis from the release machinery, not the run logs — the runs were honestly green:

  • scripts/ci-publish.mjs is a hand-maintained registry list, and nobody added rows for the new packages. The Rust temporal crate had a row (added in Publish smooai-smooth-operator-temporal to crates.io #166), so it published; @smooai/smooth-operator-temporal (npm), smooai-smooth-operator-temporal (PyPI) and SmooAI.SmoothOperator.Temporal (NuGet) 404 to this day. The suspected changesets-v3 / OIDC causes were NOT it — this repo publishes through its own orchestrator.
  • scripts/sync-versions.mjs had no anchors for them either, so their manifests drifted at birth versions (1.9.9 / 1.8.10 / 1.8.10) — even a hand-run publish would have shipped wrong versions.

The fix

  • Three publish rows, each ordered after its core sibling (npm rewrites workspace:* at pack time; the NuGet ProjectReference and the PyPI >=1.8 dep must resolve against a published core). The npm row builds with a dep-inclusive filter so it self-suffices when the core row skips as already-published. .NET packs to its own dist-temporal/ so a skipped core row leaves nothing stale.
  • Four version anchors (TS package.json, .NET csproj, Python pyproject + uv.lock — the lock anchor is what keeps py-checks green after a bump, same lesson as core's).
  • A real packaging bug the dry-run exposed: the .NET temporal csproj's PackageReadmeFile pointed at src/README.md, which doesn't exist — dotnet pack fails with NU5019. Fixed to ..\README.md (core's pattern). Nothing had ever packed this project before.

Proof

DRY_RUN=true node scripts/ci-publish.mjs (packs/validates for real, pushes nothing):

npm            skipped            (core already at 1.13.4)
npm (temporal) would-publish
crates.io      skipped
crates.io (temporal) skipped
NuGet          would-publish
NuGet (temporal) would-publish    (packs clean after the README fix)
PyPI           skipped
PyPI (temporal) would-publish     (uv build produced sdist+wheel at 1.13.4)
Go (git tag)   skipped

sync-versions.mjs run output shows the four new anchors updating to the canonical version; pnpm install --frozen-lockfile still passes after the TS version bump.

This PR carries a changeset, so its own release run is the live proof: the next 🦋 merge publishes all three siblings at the new version. I'll verify with npm view / PyPI / NuGet listings after it lands and report per-package.

🤖 Generated with Claude Code

https://claude.ai/code/session_01TBnQtK7hYYdo56rMZav53K

ci-publish.mjs had no rows for the three non-Rust temporal siblings, so
they 404'd on npm/PyPI/NuGet while every release run reported success;
sync-versions.mjs had no anchors for them, so their manifests drifted at
their birth versions. Adds the rows (ordered after their core siblings),
the anchors (+ the python/temporal uv.lock one that keeps py-checks
green), and fixes the .NET csproj README pack path the dry-run exposed —
the first time anything ever packed that project for release.

Co-Authored-By: Claude Fable 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01TBnQtK7hYYdo56rMZav53K
@changeset-bot

changeset-bot Bot commented Aug 26, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: a9df679

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@smooai/smooth-operator-core Patch
@smooai/smooth-operator-temporal Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@brentrager
brentrager merged commit d8ab559 into main Aug 26, 2026
6 of 7 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