Skip to content

Prepare the first npm release - #7

Merged
kochizufan merged 5 commits into
train/2026-12from
dec26/m1-t7-publish
Oct 27, 2026
Merged

kochizufan merged 5 commits into
train/2026-12from
dec26/m1-t7-publish

Conversation

@kochizufan

@kochizufan kochizufan commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

Prepares @c4h/daedalus for its first npm release. Nothing is published by this PR.

Changes

  • package.json: private: false, publishConfig.access: public, files (dist, src/index.ts, src/types.ts, src/fitting, both READMEs; src/testkit is left out), engines.node: >=22, prepublishOnly (test, typecheck, test:types, build, verify:demo), homepage on the Pages site. dev tools follow the shared versions used across the Code for History packages (vitest 5, TypeScript 6, @types/node 26); test:types passes --ignoreConfig, which TypeScript 6 needs for files given on the command line. version and repository are unchanged.
  • CI settings: ci/pnpm-workspace.ci.yaml gains minimumReleaseAgeExclude for @maplat/* and @c4h/*.
  • test.yml: pnpm 11.27.0, Node 22 and 24, cp ci/pnpm-workspace.ci.yaml pnpm-workspace.yaml and pnpm install --frozen-lockfile, top-level permissions: contents: read, actions pinned by SHA. Because the test job now installs exactly like deploy.yml (and includes its Node version), the separate "Deploy build" job is folded into it; tests/ci-workflow.test.ts keeps the install lines of the two workflows identical.
  • deploy.yml: checkout and setup-node pinned to the same SHAs as the other workflows.
  • publish.yml: the shared trusted-publishing workflow; only CI_WORKFLOW_FILE differs from the template (test.yml).
  • Dependency audit: pnpm audit goes from critical 2 / high 6 to critical 0 / high 0 (--prod stays 0).
  • Docs: README (en/ja) gets an Installation section with a release-pinned block, a table of every exported type, and a Development section. New CHANGELOG.md.
  • Comments: comments in src/fitting/*.ts and src/types.ts (shipped in the tarball) no longer point at private development notes.
  • Tests: readme-api-coverage, public-surface-wording, mock-contract-sha (the fixture Teiresias copies keeps its SHA-256), ci-workflow.

Checked locally

  • pnpm run prepublishOnly: exit 0, 93 tests, Pages artifact verified.
  • pnpm pack --dry-run: 24 files; dist/index.js and dist/index.d.ts are in, no src/testkit, tests, openspec, .github, ci, demo or scripts.

Note for Teiresias

Teiresias CI installs this repository as a sibling with pnpm 10 and no CI settings. With the overrides now recorded in the lockfile, that install stops with ERR_PNPM_LOCKFILE_CONFIG_MISMATCH, so Teiresias needs its matching change (code4history/Teiresias#10) right after this is merged.

🤖 Generated with Claude Code

kochizufan and others added 5 commits October 27, 2026 19:31
…e SHA and the CI workflow

- tests/mock-contract-sha.test.ts pins the SHA-256 of the mock contract fixture, so the
  copy Teiresias keeps is compared against the same value without reading this repository
- tests/ci-workflow.test.ts checks what test.yml runs, that it installs like deploy.yml,
  its permissions, and that every action is pinned by SHA

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…d comments

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…4, add the npm publish workflow

- package.json: private false, publishConfig.access public, files without src/testkit,
  engines.node >=22, prepublishOnly, homepage on the Pages site; devDependencies move to
  the latest release of their series
- ci/pnpm-workspace.ci.yaml gains minimumReleaseAgeExclude and the tinypool override
- test.yml installs the same way as deploy.yml (pnpm 11.27.0, CI pnpm settings, frozen
  lockfile) on Node 22 and 24, so the separate deploy-build job is folded into it;
  it starts from contents: read and every action is pinned by SHA
- publish.yml is the shared trusted-publishing workflow with CI_WORKFLOW_FILE=test.yml

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
vitest 5 no longer depends on tinypool, so the tinypool override is dropped.
TypeScript 6 refuses files on the command line while a tsconfig.json is present, so
test:types passes --ignoreConfig (it already gives every option it needs).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@kochizufan
kochizufan marked this pull request as ready for review October 27, 2026 12:29
@kochizufan
kochizufan merged commit 8042e26 into train/2026-12 Oct 27, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant