diff --git a/.github/workflows/publish-vscode.yml b/.github/workflows/publish-vscode.yml index c860ae3..eecd611 100644 --- a/.github/workflows/publish-vscode.yml +++ b/.github/workflows/publish-vscode.yml @@ -41,7 +41,7 @@ jobs: PUBLISHER="$(node -p "require('./package.json').publisher")" EXTENSION="$(node -p "require('./package.json').name")" test "$RELEASE_TAG" = "v$VERSION" - test "$PUBLISHER" = "om-core" + test "$PUBLISHER" = "cloudcell" test "$EXTENSION" = "om-tools" test "$(git rev-parse HEAD)" = "$(git rev-list -n 1 "$RELEASE_TAG")" git fetch --no-tags origin main diff --git a/CHANGELOG.md b/CHANGELOG.md index d23bd34..ae7fbb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## 0.1.2 + +- Correct the extension publisher identifier to `cloudcell` for Visual Studio Marketplace publishing. +- No changes to the OM Core extension functionality since 0.1.0. + ## 0.1.0 (preview) First public preview. diff --git a/MARKETPLACE-PUBLISHING.md b/MARKETPLACE-PUBLISHING.md index 82e0464..a40696d 100644 --- a/MARKETPLACE-PUBLISHING.md +++ b/MARKETPLACE-PUBLISHING.md @@ -1,10 +1,10 @@ # VS Code Marketplace publishing -The extension is published as `om-core.om-tools` from GitHub releases using **Visual Studio Marketplace Trusted Publishing (GitHub Actions OIDC)**. No Marketplace PAT or Azure account secret is required. +The extension is published as `cloudcell.om-tools` from GitHub releases using **Visual Studio Marketplace Trusted Publishing (GitHub Actions OIDC)**. No Marketplace PAT or Azure account secret is required. ## One-time setup (repository owner) -1. Open [Marketplace publisher management](https://marketplace.visualstudio.com/manage/publishers/), sign in, and create or select the **`om-core`** publisher. This identifier must match `package.json`. +1. Open [Marketplace publisher management](https://marketplace.visualstudio.com/manage/publishers/), sign in, and create or select the **`cloudcell`** publisher. This identifier must match `package.json`. 2. In that publisher, open **Trusted Publishing** > **Create**. 3. Set the policy fields **exactly**: - Policy name: `OM Tools releases` (any descriptive name) @@ -17,6 +17,12 @@ The extension is published as `om-core.om-tools` from GitHub releases using **Vi **Do not** put PATs in source, Actions secrets, or workflow inputs. The Marketplace's OIDC trust policy permits the named GitHub workflow to obtain an expiring, single-use publishing credential. +## First publication after correcting the publisher + +The GitHub release `v0.1.0` was created while the extension manifest still contained publisher `om-core`, so its Marketplace publishing attempt failed with `The requested publisher doesn't exist`. Do not move or replace that historical tag. The corrected publisher identifier is `cloudcell` and the first Marketplace release should use `v0.1.2`. + +Before publishing, confirm that the **cloudcell** Marketplace publisher has a Trusted Publishing policy matching GitHub repository `cloudcell/om-tools`, workflow `publish-vscode.yml`, and an empty environment field. The GitHub release's tag must match the version in both `package.json` and `package-lock.json`. + ## Publishing a version 1. Merge reviewed changes into `main` and confirm the quality/security workflow passes. @@ -27,13 +33,13 @@ The extension is published as `om-core.om-tools` from GitHub releases using **Vi git checkout main git pull --ff-only # package.json must now contain 0.1.0, for example - git tag -a v0.1.0 -m "OM Tools 0.1.0" - git push origin v0.1.0 + git tag -a v0.1.2 -m "OM Tools 0.1.2" + git push origin v0.1.2 ``` 4. On GitHub, open **Releases > Draft a new release**, select that tag, and publish a **normal** release (not draft/prerelease). -5. GitHub Actions runs [Publish VS Code Marketplace](../workflows/publish-vscode.yml). It checks tag/version equality, ensures the tagged commit is already reachable from `main`, installs locked dependencies, typechecks, builds, scans, packages, examines the VSIX, then publishes using `vsce publish --oidc`. -6. After a successful run, check the extension page: https://marketplace.visualstudio.com/items?itemName=om-core.om-tools +5. GitHub Actions runs [Publish VS Code Marketplace](.github/workflows/publish-vscode.yml). It checks tag/version equality, ensures the tagged commit is already reachable from `main`, installs locked dependencies, typechecks, builds, scans, packages, examines the VSIX, then publishes using `vsce publish --oidc`. +6. After a successful run, check the extension page: https://marketplace.visualstudio.com/items?itemName=cloudcell.om-tools Only published **non-prerelease** GitHub releases trigger publication. Pushes to `main` or `dev` do **not** publish. If the release cannot obtain an OIDC credential, double-check the Marketplace policy owner, repository, filename, and blank environment field. If a version is already published, increment the package version, create a new tag, and publish a new GitHub release; do not reuse a published version. @@ -47,4 +53,4 @@ Only published **non-prerelease** GitHub releases trigger publication. Pushes to - Marketplace release is distinct from publishing to Open VSX (VSCodium). Open VSX requires its own publisher registration and workflow. - The **first** successful publish cannot happen until the publisher account and Trusted Publishing policy have been created manually. -Reference: https://code.visualstudio.com/api/working-with-extensions/publishing-extension#publish-with-github-actions-and-trusted-publishing +Reference: https://code.visualstudio.com/api/working-with-extensions/publishing-extension diff --git a/package-lock.json b/package-lock.json index f6b7726..da1cac8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "om-tools", - "version": "0.1.0", + "version": "0.1.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "om-tools", - "version": "0.1.0", + "version": "0.1.2", "license": "AGPL-3.0-or-later", "devDependencies": { "@types/node": "^20.11.0", diff --git a/package.json b/package.json index 2b92872..6a736c5 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,8 @@ "name": "om-tools", "displayName": "OM Core", "description": "Multidimensional modeling engine GUI for OM Core — connects to the om-core runtime.", - "version": "0.1.0", - "publisher": "om-core", + "version": "0.1.2", + "publisher": "cloudcell", "license": "AGPL-3.0-or-later", "repository": { "type": "git",