From 3e6fe7dadd89ab7e7aba6d235e7438b5de1f7aca Mon Sep 17 00:00:00 2001 From: Mo Date: Tue, 19 May 2026 12:02:25 +0200 Subject: [PATCH] fix(vscode-release): create Open VSX namespace before first publish MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The first run of `vscode-v0.4.0` failed at the Open VSX publish step: ❌ Unknown publisher: morriearty-zg Use the 'create-namespace' command to create a namespace corresponding to your publisher name. `ovsx` requires a publisher namespace to exist before any publish. We never ran `create-namespace`, so the very first publish from CI dies. Fix: prepend `ovsx create-namespace morriearty-zg -p $OVSX_PAT || true` to the publish step. It's idempotent — second-run errors (409 conflict when the namespace already exists) are swallowed by `|| true`. Any genuine auth/network failure still surfaces via the publish step that follows; we're only hiding the harmless "already exists" case. After this lands, re-trigger via `gh workflow run "VS Code extension release"` or push a fresh `vscode-v*` tag. --- .github/workflows/vscode-release.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/vscode-release.yml b/.github/workflows/vscode-release.yml index 90a4171..259066e 100644 --- a/.github/workflows/vscode-release.yml +++ b/.github/workflows/vscode-release.yml @@ -55,6 +55,14 @@ jobs: echo "::error::VSX_TOKEN secret is not set" exit 1 fi + # First-time-publish handling: ovsx requires the publisher + # namespace to exist before any publish. `create-namespace` is + # idempotent — exits non-zero if the namespace already exists + # (`409 Conflict`), which is fine for re-runs. We swallow that + # specific failure with `|| true` so subsequent releases keep + # working. Any other failure (auth, network) surfaces via the + # publish step that follows. + npx --yes ovsx create-namespace morriearty-zg -p "$OVSX_PAT" || true npx --yes ovsx publish "zettelgeist-${{ steps.ver.outputs.version }}.vsix" -p "$OVSX_PAT" - name: Publish to VS Code Marketplace (optional)