Skip to content

Latest commit

 

History

History
108 lines (77 loc) · 2.67 KB

File metadata and controls

108 lines (77 loc) · 2.67 KB

Contributing to Perstack

Thank you for your interest in contributing to Perstack.

Quick Start

git clone https://github.com/perstack-ai/perstack.git
cd perstack
bun install
bun run build

Making Changes

Fix a Bug

git checkout -b fix/your-fix
# ... edit code ...
bunx changeset          # Select: affected package only, Type: patch
bun run typecheck && bun test && bun run build
git commit -m "fix: your changes"
git push origin fix/your-fix

Add a Feature

git checkout -b feat/your-feature
# ... edit code ...
bunx changeset          # Select: ALL packages, Type: minor
bun run typecheck && bun test && bun run build
git commit -m "feat: your changes"
git push origin feat/your-feature

Breaking Change

Core changes ripple through everything. Use major bump for all packages.

bunx changeset  # Select: ALL packages, Type: major

Validation Commands

bun run typecheck      # Type checking
bun test           # Unit tests
bun test:e2e       # E2E tests
bun run build          # Build all packages
bun run format-and-lint # Lint and format

CI/CD Pipeline

Job Description
quality Lint, format, typecheck, knip, version sync
test Unit tests with coverage
build Build all packages
changeset-check Verify changeset exists in PR

Release Process

  1. Merge PR with changeset to main
  2. "Version Packages" PR is automatically created
  3. Run bun run build && bun test:e2e locally
  4. Merge "Version Packages" PR → packages published to npm

Troubleshooting

"Version sync check failed"

Your changeset must include all packages that need the same major.minor version.

rm .changeset/your-changeset.md
bunx changeset  # Select correct packages

"Type error in dependent package"

Changed core types but forgot to update dependent packages.

  1. Fix the type errors
  2. Include all affected packages in changeset
  3. Both must have matching major.minor

"Changeset validation failed"

Breaking change requires major bump for all packages.

rm .changeset/your-changeset.md
bunx changeset  # Select: ALL packages, Type: major

Getting Help


Thank you for contributing to Perstack.