Skip to content

fix(release): repair shim publishing and distribute synced package READMEs#368

Merged
rhuanbarreto merged 2 commits into
mainfrom
claude/intelligent-leavitt-c884d9
May 28, 2026
Merged

fix(release): repair shim publishing and distribute synced package READMEs#368
rhuanbarreto merged 2 commits into
mainfrom
claude/intelligent-leavitt-c884d9

Conversation

@rhuanbarreto

Copy link
Copy Markdown
Contributor

Summary

The first run of the multi-ecosystem Publish Shims workflow at v0.40.0 (run 26601268709) failed for three ecosystems. This PR fixes each root cause and, while in the area, gives every shim package a README that is kept identical to the canonical root README.md.

CI publish fixes

  • PyPIpython -m build failed: OSError: Readme file does not exist: README.md. pyproject.toml declares readme = "README.md" but no file existed. Added shims/pypi/README.md.
  • RubyGembundle exec rake release ran from the repo root (Could not locate Gemfile) and there was no release task. Now runs in shims/rubygem (working-directory + bundler-cache: true on setup-ruby, working-directory on release-gem) and a Rakefile provides the task via bundler/gem_tasks.
  • Maven — the job hit the 15-minute timeout. The bundle uploaded fine, then hung on <waitUntil>published</waitUntil> waiting for Sonatype to finish publishing. Switched to <waitUntil>validated</waitUntil> (with autoPublish=true) so the build returns after validation and publishing completes async.

Package READMEs + sync

  • Copied the root README.md into every shim package (go, pypi, nuget, rubygem, maven). npm needs no copy — it publishes the root README directly.
  • Wired packaging that consumes a README: NuGet <PackageReadmeFile> + pack item; RubyGem gemspec spec.files.
  • Automated sync via the release pipeline: .simple-release.js bump() now propagates root README.md to every shim copy during the release commit, mirroring the existing version-sync blocks.
  • CI safety net: new ARCH-013/shim-readme-sync rule fails archgate check if any shim README drifts from root (line-ending/trailing-whitespace normalized) — catches drift between releases. ARCH-013 updated to document README synchronization.

Reviewer notes

  • README sync has two layers: the bump hook regenerates copies at release time; the shim-readme-sync rule blocks mid-cycle drift in PRs (with a cp fix hint).
  • v0.40.0's maven bundle did upload before the timeout (deploymentId d7671fb1) and was set to auto-publish, so 0.40.0 may already be on Maven Central. The publish jobs are not idempotent across a full re-run (publish-go-tag/publish-nuget/maven will hit "already exists") — recommend letting these fixes apply to the next version bump rather than re-running v0.40.0.

Test plan

  • bun run validate passes — lint, typecheck, format, 1212 tests, ADR check (30/30), knip, build
  • shim-readme-sync rule verified to fail on drift and pass when synced
  • .simple-release.js imports without error after the change
  • Confirm next release publishes successfully to PyPI, RubyGems, and Maven Central

…ADMEs

The first run of the multi-ecosystem Publish Shims workflow (v0.40.0) failed
for three ecosystems. Fix each root cause and, while here, give every shim
package a README that stays in sync with the canonical root README.

CI publish fixes:
- pypi: add shims/pypi/README.md so `python -m build` no longer fails on the
  `readme = "README.md"` reference in pyproject.toml
- rubygem: run release-gem in shims/rubygem (working-directory + bundler-cache)
  and add a Rakefile providing the `release` task; previously bundler errored
  with "Could not locate Gemfile" and there was no rake release task
- maven: switch central-publishing waitUntil from `published` to `validated`
  (with autoPublish) so the build returns after validation instead of hanging
  past the 15-minute job timeout waiting on Sonatype to finish publishing

Package READMEs:
- copy the root README.md into every shim package (go, pypi, nuget, rubygem,
  maven); npm already publishes the root README directly
- wire packaging that consumes a README: NuGet <PackageReadmeFile> + pack,
  RubyGem gemspec spec.files

Keep them in sync via the release pipeline:
- .simple-release.js bump() now propagates root README.md to every shim copy
  during the release commit, mirroring the existing version-sync blocks
- add ARCH-013/shim-readme-sync rule as the CI safety net for drift between
  releases, and update ARCH-013 to document README synchronization

Signed-off-by: Rhuan Barreto <rhuan@barreto.work>
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented May 28, 2026

Copy link
Copy Markdown

Deploying archgate-cli with  Cloudflare Pages  Cloudflare Pages

Latest commit: 7034286
Status: ✅  Deploy successful!
Preview URL: https://764c6784.archgate-cli.pages.dev
Branch Preview URL: https://claude-intelligent-leavitt-c.archgate-cli.pages.dev

View logs

@rhuanbarreto rhuanbarreto merged commit 059a4db into main May 28, 2026
20 of 21 checks passed
@rhuanbarreto rhuanbarreto deleted the claude/intelligent-leavitt-c884d9 branch May 28, 2026 21:41
@archgatebot archgatebot Bot mentioned this pull request May 28, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Code Coverage

Metric Value
Lines 90.0% (6550 / 7278)
Threshold 90% minimum — met
Platforms Linux + Windows

Full HTML report available in workflow artifacts.

Per-directory breakdown
Directory Coverage Lines
src/commands/ 88.1% 2069 / 2348
src/engine/ 93.1% 1207 / 1297
src/formats/ 100.0% 141 / 141
src/helpers/ 89.7% 3133 / 3492

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