diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index da1a12f..5c6a9b0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,7 +20,7 @@ jobs: - name: Set up Node.js uses: actions/setup-node@v4 with: - node-version: 22 + node-version: 22.14.0 cache: npm registry-url: https://registry.npmjs.org @@ -36,13 +36,24 @@ jobs: - name: Verify package contents run: npm run pack:check + - name: Show bundled npm version + run: npm -v + + - name: Upgrade npm for trusted publishing + run: npm install -g npm@latest + + - name: Show trusted publishing toolchain versions + run: | + node -v + npm -v + - name: Publish to npm run: npm publish --access public - name: Set up Node.js for GitHub Packages uses: actions/setup-node@v4 with: - node-version: 22 + node-version: 22.14.0 registry-url: https://npm.pkg.github.com scope: "@${{ github.repository_owner }}" diff --git a/CHANGELOG.md b/CHANGELOG.md index 563c1aa..08eb63d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,12 @@ The format is based on Keep a Changelog, and this project aims to follow Semanti - Nothing unreleased yet. +## [0.2.1] - 2026-03-09 + +- Switched npmjs releases to npm trusted publishing through GitHub Actions OIDC. +- Added a scoped GitHub Packages mirror publish so the repo can show `@jodonnell24/screenstage` in its Packages area. +- Normalized the published CLI `bin` path metadata to match npm's preferred format. + ## [0.2.0] - 2026-03-09 - Added a machine-readable CLI contract for `run` and `record`, including JSON event streams, stable exit codes, manifest typing, and output/headless overrides. diff --git a/RELEASING.md b/RELEASING.md index ce27787..57bd4f7 100644 --- a/RELEASING.md +++ b/RELEASING.md @@ -7,6 +7,7 @@ This repo is set up to be published as the `screenstage` npm package on npmjs.or 1. Confirm the npm package name is still available. 2. Configure npm trusted publishing for this repo and its `release.yml` workflow. 3. Make sure the public repo metadata in `package.json` matches the live GitHub repo. +4. Keep the release workflow on `Node >= 22.14.0` and `npm >= 11.5.1`, which npm currently requires for trusted publishing. ## Local Release Checklist @@ -59,6 +60,13 @@ It will: 4. publish to npmjs.org through npm trusted publishing 5. publish a scoped mirror to GitHub Packages as `@/screenstage` +The npm trusted publisher must match exactly: + +- GitHub user or org: `jodonnell24` +- repository: `screenstage` +- workflow filename: `release.yml` +- environment: blank + If you prefer release notes first, create the GitHub release from the pushed tag after CI passes. ## GitHub Packages Mirror diff --git a/package-lock.json b/package-lock.json index 934cc0d..887117e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "motion-creator", - "version": "0.2.0", + "version": "0.2.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "motion-creator", - "version": "0.2.0", + "version": "0.2.1", "license": "MIT", "dependencies": { "playwright": "^1.54.2" diff --git a/package.json b/package.json index 2a6961a..9fcade8 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "name": "screenstage", - "version": "0.2.0", + "version": "0.2.1", "description": "TypeScript CLI for cursor-following product demo videos with Playwright and FFmpeg.", "repository": { "type": "git", - "url": "git+https://github.com/jodonnell24/screenstage.git" + "url": "https://github.com/jodonnell24/screenstage.git" }, "homepage": "https://github.com/jodonnell24/screenstage#readme", "bugs": {