From e7f900c599fd5d7dde020bc481e54b27c8f76d51 Mon Sep 17 00:00:00 2001 From: Roger Chappel Date: Thu, 11 Jun 2026 22:12:24 +1000 Subject: [PATCH 1/3] build: ship release support docs in package --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 75ea5be..dec4411 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,9 @@ "README.md", "LICENSE", "SECURITY.md", - "CONTRIBUTING.md" + "CONTRIBUTING.md", + "CHANGELOG.md", + "CODE_OF_CONDUCT.md" ], "scripts": { "test": "node --test test/*.test.js", From 1e39c226ae18a920b0c2a68e62de7a47e53a2616 Mon Sep 17 00:00:00 2001 From: Roger Chappel Date: Thu, 11 Jun 2026 22:12:24 +1000 Subject: [PATCH 2/3] ci: run deterministic release check --- .github/workflows/ci.yml | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c8f8599..a2e0268 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,23 +48,19 @@ jobs: exit 1 fi - - name: Run optional Node checks + - name: Set up Node.js + uses: actions/setup-node@v6 + with: + node-version: 22 + + - name: Install dependencies run: | set -euo pipefail - - if [ ! -f package.json ]; then - echo "No package.json found; skipping Node checks." - echo "TODO: add install, lint, test, typecheck, or build commands when this template becomes an app or package." - exit 0 - fi - if [ -f package-lock.json ]; then npm ci else npm install fi - npm run lint --if-present - npm test --if-present - npm run typecheck --if-present - npm run build --if-present + - name: Run release check + run: npm run release:check From d51805189fa8588ba6399719d16559fe75420d17 Mon Sep 17 00:00:00 2001 From: Roger Chappel Date: Thu, 11 Jun 2026 22:13:34 +1000 Subject: [PATCH 3/3] test: fix ESM CLI smoke imports --- test/cli.test.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/test/cli.test.js b/test/cli.test.js index 836fa4d..f7d69a1 100644 --- a/test/cli.test.js +++ b/test/cli.test.js @@ -1,12 +1,11 @@ import { test } from 'node:test'; import assert from 'node:assert/strict'; -import { execFileSync } from 'node:child_process'; +import { execFileSync, execSync } from 'node:child_process'; import { mkdtempSync, writeFileSync } from 'node:fs'; import { tmpdir } from 'node:os'; import { join } from 'node:path'; test('atomcommit plan test - CLI should handle --help', () => { - const { execSync } = require('child_process'); try { const out = execSync('node src/index.js --help', { encoding: 'utf8', stdio: 'pipe' }); assert.ok(out.includes('atomcommit') || out.includes('plan') || out.includes('commit'), @@ -17,13 +16,13 @@ test('atomcommit plan test - CLI should handle --help', () => { } }); -test('parseNameStatus handles invalid input', () => { +test('parseNameStatus handles invalid input', async () => { const { parseNameStatus } = await import('../src/index.js'); const result = parseNameStatus(''); assert.deepEqual(result, [], 'empty input returns empty array'); }); -test('parseNumstat handles binary markers', () => { +test('parseNumstat handles binary markers', async () => { const { parseNumstat } = await import('../src/index.js'); const result = parseNumstat('-\t-\tbinary.png\n'); assert.ok(result.get('binary.png').binary, 'should detect binary files');