feat(distribution): Google Cloud Marketplace is live, Azure is in review, and the inventory knew neither - #577
Merged
Merged
Conversation
… about Google Cloud Marketplace went public on 2026-09-04 as a free Terraform Kubernetes app, and the repository said the opposite in two places at once: `distribution/channels.yaml` carried no entry for it, and `docs/CHANNELS.md` closed with "Planned and deliberately not counted here until a listing exists: GCP, ...". A reader asking the coverage question that page exists to answer got a wrong answer. Azure Marketplace is the same omission one stage earlier: `deploy/azure/` holds the solution template, the ARM assets and the Partner Center listing texts, the offer is submitted and in certification, and no row tracked any of it while five other open submissions had one. GCP is `manual_ui` / `on_demand` with no pin, and each of those is a property of the channel rather than an omission. The listing, its version and its Terraform module live in Google's Producer Portal; the chart and image are served from a private Artifact Registry. There is no public file to read a version out of and no upstream repository that accepts a bump, so nothing can be CI-driven and a pin that guessed would be worse than none. `docs/DISTRIBUTION.md` gains the section the channel's own `docs` link points at, including why the listed version reads 0.10 while the release is 0.13.7: Google requires the chart and image tags of a Terraform Kubernetes app to share a MAJOR.MINOR, which 0.1.x and 0.13.x do not, so the published copy is packaged with a version of its own and must not be read as a release tag. Azure is recorded `pending` on the rule this file already states - a submission that exists is tracked - and carries the note naming what to add on publication. The closing paragraph of `docs/CHANNELS.md` is rewritten rather than trimmed. It also listed Portainer, which has been a `pending` row four lines above it since it was written, and filed Coolify and Dokku under "planned" when neither is: Coolify declined the submission over a 1000-star threshold its maintainers confirmed, and Dokku has no application catalog to apply to. Two counts in `docs/DISTRIBUTION.md` were wrong about this repository's own contents. It said "Two catalog channels keep no descriptor here at all" and, in a second passage, that "every other catalog channel does have one" - there are EIGHT with no `deploy/<provider>/` folder: Unraid CA, Sealos, TrueNAS SCALE, the four open submissions, and now GCP. Both passages now name the set and say what each subgroup pins instead. Three stale facts fixed, each measured against the live source rather than inferred. The Chocolatey note claimed the community feed still served 0.9.59; the OData feed serves 0.13.6, one behind, which is moderation lag. The Dokploy pin note tracked a bump "in issue 175"; that issue closed on 2026-07-31 and Dokploy/templates#1039 merged on 2026-08-03, taking the blueprint to 0.9.59. And the runtime-ownership table said "the other 25" of a set that has been growing for two months - it now says "every other channel", which cannot go stale again. `links.last_bump_pr` gets its first two values. This file has required it since a bump merges and renders a column for it, and no entry of the thirty-three carried one, so the column read "-" for every row while at least two bumps had merged: caprover/one-click-apps#1315 and Dokploy/templates#1039. `docs/CHANNELS.md` and `src/lib/distribution/channels.generated.ts` are regenerated, not edited - `bun run distribution:matrix` and `bun run channels:showcase`, whose freshness both gate on CI. The inventory reads 35 channels, 27 live, 7 pending, 1 deprecated.
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
cevheri
approved these changes
Sep 5, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Two cloud marketplaces the inventory did not know about, and the counts that had rotted around
them. The inventory reads 35 channels · 27 live · 7 pending · 1 deprecated.
The two channels
Google Cloud Marketplace —
live. Publicly listed on 2026-09-04 as a free TerraformKubernetes app. The repository said the opposite in two places at once: no entry in
distribution/channels.yaml, anddocs/CHANNELS.mdclosing with "Planned and deliberately notcounted here until a listing exists: GCP, …". A reader asking the coverage question that page
exists to answer got a wrong answer.
Azure Marketplace —
pending. The same omission one stage earlier.deploy/azure/holds thesolution template, the ARM assets and the Partner Center listing texts; the offer is submitted and
in certification; no row tracked any of it, while five other open submissions had one.
Why GCP carries no pin and no CI
Each is a property of the channel, not an omission:
update.method: manual_uipin.strategy: nonedocs/DISTRIBUTION.mdgains the section the channel's owndocslink points at, including the onefact most likely to be misread: the listed version reads
0.10while the release is0.13.7.Google requires the chart and image tags of a Terraform Kubernetes app to share a MAJOR.MINOR, which
0.1.xand0.13.xdo not, so the published copy is packaged with a version of its own. It is nota release tag and must not be compared with one.
Two counts that were wrong about this repository's own contents
docs/DISTRIBUTION.mdsaid "Two catalog channels keep no descriptor here at all" and, in a secondpassage, that "every other catalog channel does have one". Counted: eight have no
deploy/<provider>/folder — Unraid CA, Sealos, TrueNAS SCALE, the four open submissions, and nowGCP. Both passages now name the set and say what each subgroup pins instead.
Three stale facts, each measured against the live source
channels.yaml+DISTRIBUTION.md0.9.590.13.6— one behind, moderation lagchannels.yamldokploy pin noteDokploy/templates#1039merged 2026-08-03 → blueprint at0.9.59DISTRIBUTION.md:1378links.last_bump_prgets its first two valuesdocs/DISTRIBUTION.mdhas required this field since a bump merges, and the drift table renders acolumn for it — yet none of the thirty-three entries carried one, so the column read
-forevery row while at least two bumps had merged:
caprover/one-click-apps#1315andDokploy/templates#1039.Also
docs/CHANNELS.md's closing paragraph is rewritten rather than trimmed: it listed Portainer as"planned" while Portainer had been a
pendingrow four lines above it, and filed Coolify andDokku under "planned" when neither is — Coolify declined the submission over a 1000-star
threshold its maintainers confirmed, and Dokku has no application catalog to apply to.
docs/CHANNELS.mdandsrc/lib/distribution/channels.generated.tsare regenerated, not edited(
bun run distribution:matrix,bun run channels:showcase), whose freshness both gate on CI.Verification
Every channel status in this diff was checked against its upstream PR state and its live catalog,
not inferred from a tracking issue — a tracking issue closed COMPLETED while its upstream PR is
still open is the specific trap here, and three of the
pendingrows are exactly that shape.format·lint·typecheck·knip·test(38 groups, 0 fail) ·build— all green.distribution:check·distribution:matrix --check·channels:showcase:check— all exit 0.Coverage: 45548/45548 lines, 100.00%.
Deliberately not in this PR
The version bumps the drift table reports for
fly.toml(0.9.59) and the three Railway files(0.9.22). Those change what a user deploys, and the Railway one has an out-of-repo consequence its
own
PUBLISH.mddescribes — a different change with a different risk, and mixing it with aninventory correction would make both harder to review.