Skip to content
Merged
2 changes: 1 addition & 1 deletion .github/workflows/publish-vscode.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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.
Expand Down
20 changes: 13 additions & 7 deletions MARKETPLACE-PUBLISHING.md
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -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.
Expand All @@ -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.

Expand All @@ -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
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
Loading