Thank you for your interest in contributing! We welcome contributions of all kinds, whether it's reporting bugs, suggesting features, or improving documentation.
By contributing, you agree to abide by our Code of Conduct to ensure a welcoming and respectful community for all.
There are many ways to contribute:
- Report bugs: Found something broken? Let us know!
- Suggest features: Have an idea for a new command or improvement? We'd love to hear it
- Improve documentation: Help make our docs clearer
- Add features: Contribute new commands or enhancements
- Fix issues: Pick up an issue from our backlog
- Node.js 20+
- pnpm (
npm install -g pnpm)
-
Fork the repository on GitHub
-
Clone your fork locally:
git clone https://github.com/your-username/memberstack-cli.git cd memberstack-cli -
Install dependencies:
pnpm install
-
Build the project:
pnpm build
-
Create a new branch for your changes:
git checkout -b feature/your-feature-name
-
Make your changes and test thoroughly
-
Run quality checks:
pnpm type-check # TypeScript validation pnpm check # Lint check pnpm test # Run tests pnpm fix # Auto-fix issues
-
Commit your changes with a clear message
-
Push to your fork and create a pull request
- Code passes all checks (
pnpm type-check && pnpm check) - Tests pass (
pnpm test) - Changes build successfully (
pnpm build)
- Clear conventional title: Describe what changed (e.g.,
feat: add plans command) - Description: Explain what and why
- Link issues: Reference any related issues (e.g., "Fixes #123")
Use common sense when drafting your pull request. The goal is to make it easy for maintainers to review and merge your changes. Include sufficient details but at the same time avoid unnecessary information.
This project uses release-please to automate changelog and release PRs. Please use Conventional Commits for all commit messages:
feat:for new features (triggers a new release and changelog entry)fix:for bug fixes (triggers a new release and changelog entry)chore:,docs:,refactor:, etc. for other changes (do not trigger a release)
Examples:
feat: add plans commandfix: handle missing config errorchore: update dependencies
Only feat: and fix: commits will appear in the changelog and trigger a new release. All other commit types are allowed but will not trigger a release.
- GitHub Issues: For bug reports and feature requests
Thank you for contributing!