Skip to content

chore: unify package manager to bun across repo and CI#27

Merged
lobinuxsoft merged 3 commits into
mainfrom
25-chore-unify-package-manager-to-bun-across-repo-and-ci
Apr 20, 2026
Merged

chore: unify package manager to bun across repo and CI#27
lobinuxsoft merged 3 commits into
mainfrom
25-chore-unify-package-manager-to-bun-across-repo-and-ci

Conversation

@lobinuxsoft

Copy link
Copy Markdown
Owner

Summary

Closes #25. Consolidates the three coexisting package-manager sources of truth in this repo down to just bun, matching the monorepo's build_all.sh mandate and the local build.sh tooling (already fixed in #22 to detect bun).

Before

Source of truth Package manager
bun.lock bun
pnpm-lock.yaml pnpm
package-lock.json (untracked, legacy) npm
.github/workflows/ci.yml pnpm
.github/workflows/release-please.yml (build-plugin) pnpm
build.sh (after #22) bun
README.md / CONTRIBUTING.md "pnpm or npm"

CI resolved dependencies from a different lock file than local builds, which is exactly the kind of silent drift hazard that eventually ships a broken release.

After

Single source of truth: bun.lock.

Changes (3 atomic commits)

  1. ci: migrate ci.yml frontend job to bun — drops setup-node@v4 + pnpm9 in favor of oven-sh/setup-bun@v2. TypeScript check now uses bunx tsc (no node stage available). The python job is untouched.

  2. ci(release-please): migrate build-plugin job to bun — same rewrite on the job that produces CapyDeploy.zip as a release asset. The setup-python@v5 step and the inline zip packaging logic are untouched.

  3. chore: remove legacy lock files and update docs for bun — deletes pnpm-lock.yaml from the repo, updates README.md and CONTRIBUTING.md to recommend bun directly instead of "pnpm or npm".

Test plan

  • bun install --frozen-lockfile reproduces cleanly locally (145 packages, 1.86s)
  • bun run build produces dist/index.js locally (~1s)
  • CI of this PR (exercises the new ci.yml) will validate the frontend job end-to-end
  • The release-please.yml build-plugin job can only be validated in a real release — the next tag cut after merge will either produce a CapyDeploy.zip cleanly or surface a regression for us to fix

Residual risk

The build-plugin job is not reachable via PR CI (it only fires if: release_created == 'true'). The change there is mechanical and follows the exact pattern the monorepo already uses successfully for Hub/Agent Tauri. If it still breaks, the failure will be loud (no release asset) and easy to diagnose.

Replace actions/setup-node@v4 + pnpm9 pipeline with oven-sh/setup-bun@v2.
The repo already tracks bun.lock as its authoritative lock file and the
monorepo's build_all.sh mandates bun — the CI lagging on pnpm was the
last source of truth drift.

- bun install --frozen-lockfile (was pnpm install --frozen-lockfile)
- bunx tsc --noEmit --skipLibCheck (was npx tsc; node is no longer set up)
- bun run build (was pnpm run build)

The python job is untouched — still uses setup-python for its syntax
check and py_modules verification.

Addresses #25.
Same rewrite as ci.yml: drop setup-node@v4 + pnpm9 in favour of
oven-sh/setup-bun@v2. This is the job that produces CapyDeploy.zip as a
release asset, so it must follow the same lock-file source of truth
(bun.lock) as the monorepo and the local build.sh pipeline.

The setup-python step and the inline zip packaging are untouched.

Addresses #25.
Drop pnpm-lock.yaml from the repo — with both CI workflows on bun and
the local build.sh defaulting to bun, it is no longer a source of truth
for anything. Leaving it would invite the exact drift hazard this
effort is closing (CI and local resolving different versions).

package-lock.json was already untracked (gitignored from earlier eras),
so no git operation is needed there.

README.md and CONTRIBUTING.md stop offering 'pnpm or npm' as equally
valid options and point at bun directly.

Closes #25.
@lobinuxsoft lobinuxsoft linked an issue Apr 20, 2026 that may be closed by this pull request
8 tasks
@lobinuxsoft
lobinuxsoft merged commit e685e96 into main Apr 20, 2026
2 checks passed
@lobinuxsoft
lobinuxsoft deleted the 25-chore-unify-package-manager-to-bun-across-repo-and-ci branch April 20, 2026 19:31
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.

chore: unify package manager to bun across repo and CI

1 participant