Thanks for your interest in contributing!
# Clone the repo
git clone https://github.com/yemyat/ralph-cli.git
cd ralph-cli
# Install dependencies
bun install
# Run in development mode
bun run dev
# Link globally for testing
bun linkThis project uses Conventional Commits. All commits must follow this format:
<type>: <description>
Types:
feat:- New feature (triggers minor version bump)fix:- Bug fix (triggers patch version bump)chore:- Maintenance, refactoring, dependencies
Breaking changes: Add ! after type (e.g., feat!:) or include BREAKING CHANGE: in the commit body. This triggers a major version bump.
Commits are enforced via commitlint + husky.
feature branch → PR to dev → merge to dev
↓
(when ready to release)
↓
dev → PR to main → merge to main
↓
semantic-release runs
(version bump + npm publish)
main- Production branch. Merges trigger releases.dev- Development branch. All feature PRs target this branch.- Feature branches - Create from
dev, name likefeat/my-featureorfix/my-fix.
- Fork the repo and create your branch from
dev - Make your changes
- Ensure all checks pass:
bun run lint && bun run typecheck - Submit a PR to
devbranch - PRs are squash-merged to keep history clean
Maintainers can trigger a release by:
- Go to Actions → Create Release PR
- Click Run workflow
- Merge the generated PR from
dev→main
- TypeScript with strict mode
- Use
bunruntime - Minimal comments, prefer self-documenting code
- Follow existing patterns in the codebase
See AGENTS.md for instructions.
Releases are automated via semantic-release. When PRs are merged to main:
- Version is auto-bumped based on commit types
- CHANGELOG.md is updated
- Package is published to npm
- GitHub release is created
Open an issue or start a discussion.