The frontend plugin SDK is published from packages/plugin-sdk/ using Changesets to npmjs (public, scope @octarq).
Release Flow (Changesets)
Releases are driven by changeset files committed alongside code changes.
Step 1: Record a Change
After making changes to the SDK, run the following command from the repository root:
pnpm changeset- Select the affected package (
@octarq/plugin-sdk). - Choose the version bump type (
patch,minor, ormajoraccording to semver). - Write a summary explaining the changes.
This command generates a markdown file inside the .changeset/ directory. Commit this file as part of your pull request.
No changeset = no release. PRs that only touch docs or CI don’t need one.
Step 2: Merge to main
On a push to the main branch, the publishing workflow runs:
- If there are unconsumed changesets, it opens (or updates) a “Version Packages” pull request that bumps the version in
package.json, updatesCHANGELOG.md, and deletes the consumed changeset files. - If there are no changesets, it takes no action.
Step 3: Merge the “Version Packages” PR
When you merge the “Version Packages” pull request, the publishing workflow builds the package and runs changeset publish to publish the package to the registry and create a git tag (e.g., @octarq/plugin-sdk@x.y.z).
This is loop-safe: publishing removes the changesets, so the next main push has nothing to release.
Escape hatch — tag publish
Pushing a tag matching sdk-v* (e.g. sdk-v1.2.3) triggers a direct one-shot publish of the current SDK version. Use this only for manual/out-of-band releases; the changesets flow above is the normal path.
Package Configuration
The packages/plugin-sdk/package.json file requires specific fields to publish:
{
"name": "@octarq/plugin-sdk",
"version": "0.10.0",
"license": "MIT",
"repository": {
"type": "git",
"url": "git+https://github.com/octarq-org/octarq.git",
"directory": "packages/plugin-sdk"
},
"publishConfig": {
"registry": "https://registry.npmjs.org",
"access": "public"
}
}publishConfig.registry: Directspnpm publishto publish to npmjs (https://registry.npmjs.org).publishConfig.access: Markedpublicso any plugin author can install it without authentication.
Consuming @octarq/plugin-sdk
Because @octarq/plugin-sdk is published publicly on npmjs, plugin authors can install it directly without configuring .npmrc or authentication:
pnpm add @octarq/plugin-sdkSecrets & permissions needed to publish
- npmjs (
@octarq/plugin-sdk): uses theNPM_TOKENrepository secret, configured viaNODE_AUTH_TOKENin.github/workflows/publish-sdk.yml. - Version PR: the
releasejob needspull-requests: writeandcontents: write.