Skip to main content
← Back to list
01Issue
BugShippedExtensions
Assigneesstack72

Relationships

#488 Cloudflare codegen: manifest version bumps on every regeneration (README not deno-fmt-clean)

Opened by stack72 · 5/29/2026· Shipped 5/29/2026

The Cloudflare codegen pipeline (codegen/cloudflare/pipeline.ts) compares the on-disk README against the raw generateCloudflareReadme() output to decide each service's hasChanges flag (~line 400). But generate.ts runs 'deno fmt' on written output, while generateCloudflareReadme() emits prose that deno fmt re-wraps (e.g. the 'Auto-generated ... extension models for / Cloudflare resources' line and the 'Use swamp model type describe ...' line wrap differently at 80 cols). So existingReadme (fmt'd, on disk) never equals readmeCode (raw), hasChanges is perpetually true, and computeManifestVersion bumps the manifest micro on EVERY regeneration even when no model changed.

Repro: run 'deno task generate:cloudflare' twice. Second run reports 'Models: 0 changed' but every manifest.yaml micro bumps (2026.05.29.1 -> .2 -> .3 ...). Models are idempotent (computeModelVersion normalizes correctly); only manifests churn, so model versions and manifest versions drift apart across repeated runs. Causes dead-publish churn and version inflation.

Fix options: (a) normalize readmeCode through deno fmt before the comparison in pipeline.ts, (b) make generateCloudflareReadme() emit deno-fmt-clean markdown (pre-wrapped prose), or (c) fmt both sides in computeManifestVersion. Hetzner/DigitalOcean are idempotent, so this is Cloudflare-specific (markdown prose wrapping). Pre-existing; surfaced during swamp-club #476 (vault auth) regeneration.

02Bog Flow
OPENTRIAGEDIN PROGRESSSHIPPED+ 1 MOREASSIGNED+ 2 MOREREVIEW+ 3 MOREPR_MERGEDSHIPPED

Shipped

5/29/2026, 6:47:20 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 assigned stack725/29/2026, 5:36:19 PM

Sign in to post a ripple.