Repository navigation
Scaffold core, CLI and UI with CI, Pages and auto-tagging - #9
Merged
Merged
Conversation
A core that runs in the browser and Node, the `dunnage` bin on top of it (`check` reads the format header; `export` is stubbed), and a Vite + React + three.js UI. CI builds, tests and checks the fixtures, deploys the UI to Pages, and tags vX.Y.Z when main carries a new version. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Review fixes: the tag job now installs the commit from GitHub and runs the bin before pushing vX.Y.Z, so a broken build never gets a tag. Pages deploys no longer race, the core ships .d.ts files, and the CLI test resolves its path with fileURLToPath. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Bun is now the package manager and runtime: bun.lock replaces package-lock.json, CI uses setup-bun, and Vitest runs on Bun. Bun doesn't run a git dependency's prepare script (and links bins before it would), so installing a tag that builds on install left no dunnage bin. CI now commits the built dist/ on top of the release commit and tags that, then installs the tag with npm and Bun, deleting it if either fails. prepare is gone; only tags are installable. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #1
What's here
src/core/): runs in the browser and in Node.tsconfig.core.jsongives it neither DOM nor Node types, so either one fails the typecheck. For now it only reads a file'sformat: kind/versionline, and refuses unknown formats and versions newer than it knows.src/cli/, thedunnagebin):checkreads the format header of each file (the full schema comes with the format work),exportis a stub that exits 1, and--versionis there too.src/ui/): Vite + React + three.js. It draws the coffee fixture's drawer as a wireframe. three.js 0.186.1 and manifold-3d 3.5.4 are dependencies, and a Vitest smoke test builds a manifold-3d solid in Node.coffee.drawer.ymlandp1s.printer.yml, copied as-is from Hailey'sdocs/prototypes/drawer-tool-ui/.AGENTS.md: any commit that changes behaviour bumps the version (on 0.x: minor for a feature, patch for a fix).CLAUDE.mdpoints at it.bun.lock, and Vitest runs on Bun throughbun run test. The issue said npm; Cal chose Bun after the PR was opened. The built CLI still runs on Node.CI (
.github/workflows/ci.yml)dunnage checkoverfixtures/.main: deploysdist-site/to GitHub Pages. Pages is now enabled with GitHub Actions as its source.mainwith a version that has no tag: buildsdist/, commits it on top of themaincommit, and tags the resultvX.Y.Z. It then installsgithub:XDGFX/dunnage#vX.Y.Zwith npm and with Bun, and runsnode_modules/.bin/dunnage. If either install fails, the tag is deleted. Merging this PR tagsv0.1.0.Release commits carry
dist/because Bun doesn't run a git dependency'spreparescript. Even when the consuming project trusts the package, Bun links bins before that script runs. So a tag that builds on install gives Bun users nodunnagebin. With the build already in the tag, npm and Bun both install it without running anything. Only tags are installable: branches andmainhave nodist/.Checked locally
bun run typecheck,bun run test(7 tests),bun run buildandbun run validateall pass.dist/to a throwaway branch (since deleted) and installed it withnpm installand withbun add. In both,node_modules/.bin/dunnage --versionprints0.1.0andcheckpasses, with no install scripts to trust.🤖 Generated with Claude Code