fix(vscode): publish as aet-tum.apollon-extension#813
Conversation
`vsce publish` rejected `aet-tum.apollon-vscode`:
The extension 'apollon-vscode' already exists in the Marketplace.
Please use a different 'name' in the package.json file
The Marketplace reserves an extension name across all publishers, not per
publisher. `apollon-vscode` is held by `tumaet.apollon-vscode`, an abandoned
0.0.17 listing from ls1intum/apollon-vscode -- the archived repository this
workspace replaced. Freeing it would mean deleting the extension 38 people
still have installed.
`aet-tum.apollon-extension` is the listing this project already owns, from
the same archived repository. Publishing to it is an update rather than a
create, so the name conflict cannot arise, and its installs receive 5.1.1.
package.json `name` is simultaneously the pnpm workspace name, the git tag
prefix and the Marketplace extension name, so the rename reaches the root
scripts, the changesets `fixed` group, both workflows and the docs. The
`apollon-vscode-*` CSS classes and the webview's control ids are not the
package name and stay as they are.
Verified: pnpm resolves `apollon-extension` and the lockfile is unchanged
(importers are keyed by path); `changeset status` accepts the `fixed` group
and rejects the stale name with a ValidationError, so the entry is
load-bearing; lint, typecheck, build:all and 44/44 tests pass; `vsce package`
emits apollon-extension-5.1.1.vsix carrying `aet-tum.apollon-extension`;
`vsce show aet-tum.apollon-extension` resolves the listing, so vsce updates
it; the marketplace query the check job runs reports publish=true for 5.1.1.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claudia-Anthropica
left a comment
There was a problem hiding this comment.
@FelixTJDietrich The rename looks consistent across the workspace filters, Changesets config, Marketplace release flow, and docs. CI is green; I left one low-priority note about the Open VSX link.
| ## VS Code extension | ||
|
|
||
| Install **Apollon** from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=aet-tum.apollon-vscode) (or [Open VSX](https://open-vsx.org/extension/aet-tum/apollon-vscode)). Diagrams live next to your code as `.apollon` files. | ||
| Install **Apollon** from the [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=aet-tum.apollon-extension) (or [Open VSX](https://open-vsx.org/extension/aet-tum/apollon-extension)). Diagrams live next to your code as `.apollon` files. |
There was a problem hiding this comment.
@FelixTJDietrich [low] This Open VSX link points at an extension that does not exist (/api/aet-tum/apollon-extension returns 404), and the release workflow skips Open VSX when OVSX_PAT is unset. Either drop the Open VSX install path for now or point it at the registry entry you actually publish.
🤖 Prompt for AI agents
In docs/user/getting-started/setup.md, the Open VSX install link was changed to aet-tum/apollon-extension, but that extension is not published and the workflow can skip Open VSX when OVSX_PAT is unset. Fix this by removing the Open VSX link until the new extension is published there, or by pointing the docs and support table at the registry entry that actually exists.
Follow-up to #812. The publisher was right; the name is not available.
Why
The Marketplace reserves an extension
nameacross all publishers, not per publisher.apollon-vscodeis held bytumaet.apollon-vscode— the abandoned 0.0.17 listing fromls1intum/apollon-vscode, the archived repo this workspace replaced. Freeing the name would mean deleting an extension 38 people still have installed.I checked the rule rather than trusting the message: sampling ~980 distinct extension names turned up 15 owned by more than one publisher (
pythonbelongs toms-python,tht13andstevedower). Every one of them was created 2016–2019, before the constraint existed. They're grandfathered; new names are globally unique.The fix
aet-tum.apollon-extensionis the listing this project already owns, published from the same archived repo.vscetherefore updates it instead of creating it, so the conflict cannot arise — and its 10 installs receive 5.1.1 instead of being stranded.package.jsonnameis simultaneously the pnpm workspace name, the git tag prefix and the Marketplace extension name, so this reaches the root scripts, the changesetsfixedgroup, both workflows and the docs. Theapollon-vscode-*CSS classes and the webview's control ids are not the package name and are deliberately untouched.aet-tum.apollon-vscode(rejected)aet-tum.apollon-extensionapollon-vscode@5.1.1apollon-extension@5.1.1apollon-vscodeapollon-extensionThe name reads oddly next to a
vscode-extension/directory, and it can't be improved while the dead listing squats the better one.project-structure.mdnow records exactly that, so nobody "fixes" it and rediscovers this the hard way.Verification
pnpm -r listresolvesapollon-extension;pnpm-lock.yamlis unchanged, because pnpm keys importers by path, not name.changeset statusaccepts thefixedgroup. Falsified: restoring the old name makes it die withValidationError: The package … "apollon-vscode" … does not match any package in the project— so that entry is load-bearing, and a half-done rename fails loudly at release time.pnpm --filter apollon-extension→ lint, typecheck,build:allall clean; 44/44 tests pass.pnpm format:checkclean.vsce packageemitsapollon-extension-5.1.1.vsix, and the manifest inside readsaet-tum.apollon-extension@5.1.1.vsce show aet-tum.apollon-extensionresolves the listing — confirming the update path. It also reports ☆☆☆☆☆ (0) ratings, which retires the "4.45★" I mistakenly cited earlier: that number is the Marketplace's zero-rating prior.checkjob runs returnspublish=trueforaet-tum.apollon-extension@5.1.1.Shipping
Merging is inert — the
checkjob comparesversionagainst the parent commit and5.1.1is unchanged (#808's guard). To publish: Actions → Release VS Code Extension → Run workflow onmain,dry_run: false.Still outstanding, unrelated to this PR:
OVSX_PATis unset (Open VSX is skipped by design since #812), and thevscode-marketplaceenvironment has no protection rules whilenpm-publishhas a branch policy.🤖 Generated with Claude Code