This repository was archived by the owner on Oct 28, 2026. It is now read-only.
Repository navigation
build: move to a Turborepo monorepo with Bun and Ultracite - #3
Merged
Merged
Conversation
Make room for more apps and shared packages next to the CLI. The module path becomes github.com/PunGrumpy/plumb/apps/cli so go install resolves it from its new directory.
Turborepo reads the Go module through go.work, so build, test and check run with caching from the repo root. Bun replaces npm for the dev tools. Changesets ignores the root package once it has workspaces, so the version and CHANGELOG.md move to apps/cli/package.json.
Ultracite runs oxlint and oxfmt as root tasks next to the Go check and fix tasks, so turbo run check and turbo run fix cover the whole repo. A husky pre-commit hook fixes staged files before each commit.
Both workflows set up Bun and install dependencies the same way. The action also reads the Bun version from packageManager in package.json.
Squash merges use the PR title as the commit message, so check it against the same conventional types as the history. The Changesets version PR gets a title that passes the check.
Bug reports ask for plumb version, plumb doctor output and an optional --record directory, which is what a trace needs to be replayed.
|
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Description
Turn the repo into a Turborepo monorepo so the object graph web app can sit next to the CLI later.
The Go module moves to
apps/cliwith the module pathgithub.com/PunGrumpy/plumb/apps/cli. Turborepo reads it throughgo.workwithexperimentalGoWorkspaces, so it shows up as theclipackage.Bun replaces npm. Workspaces are
apps/*andpackages/*.Changesets ignores the root package once it has workspaces, so the version and
CHANGELOG.mdmove toapps/cli/package.json. The changeset name is stillplumb.checkandfixare the same tasks across the repo:cli(Go)turbo run checkmake vet(gofmt -landgo vet)ultracite check(oxlint and oxfmt)turbo run fixgo fmt ./...ultracite fixbun run checkandbun run fixstay as Ultracite only, because they are the bodies of the root tasks and the husky and Claude hooks call them.testrunsgo test -race, and its hash includesdocs/troubleshooting.md, whichTestEveryCodeIsDocumentedreads..githubfollows vercel/turborepo: asetup-environmentcomposite action, a PR title lint, issue forms, a PR template and CODEOWNERS. The Changesets PR is now titledchore: version packagesso it passes the title lint.brand/README.mdand every guide indocs/are translated to English, one commit per page. The### `code`headings introubleshooting.mdstay the same, becauseplumb explainlinks to them.apps/cli/package.jsonis marked MIT. There is noLICENSEfile yet.Testing Instructions
bun install bun turbo run check test buildRun it again and every task should come from the cache. Then check the binaries and the release build:
Each commit passes
go vetandgo testinapps/cli.