Quick Start
Prerequisites
You’ll need:Development Setup
Project Structure
Understanding the codebase structure will help you navigate and contribute effectively:Development Workflow
Making Changes
-
Create a feature branch
-
Make your changes
Edit the relevant files insrc/or add new commands insrc/commands/ -
Test your changes
-
Format code
Running Tests
Better PM uses Vitest for testing:When adding new features, please include tests to ensure reliability and prevent regressions.
Code Style Guidelines
Better PM uses Biome for formatting and linting:- Formatting: Run
bun run formatbefore committing - Type safety: All code must pass TypeScript strict mode checks
- Effect patterns: Follow Effect-TS best practices for error handling and composition
- Naming: Use descriptive names for functions and variables
Testing Your Changes Locally
Before submitting a PR, test your changes in a real project:Submitting Changes
Pull Request Process
-
Push your branch
-
Create a pull request
Go to github.com/fdarian/better-pm/pulls and create a new PR -
Fill out the PR template
- Describe what your change does and why
- Link any related issues
- Include screenshots/examples if applicable
-
Wait for review
Maintainers will review your PR and may request changes
Commit Message Guidelines
Better PM uses Changesets for version management:- Write clear, descriptive commit messages
- Use present tense (“Add feature” not “Added feature”)
- Reference issues where applicable (
Fixes #123)
Adding a Changeset
For changes that affect the public API or user-facing behavior:- Select the type of change (major/minor/patch)
- Write a summary of the change
- Commit the generated changeset file
Contributing to Documentation
Documentation improvements are always welcome! You can:- Edit docs directly on GitHub by clicking “Edit this page” on any documentation page
- Suggest improvements by opening an issue
- Fix typos and improve clarity
Types of Contributions
We welcome various types of contributions:Bug Fixes
Bug Fixes
Found a bug? Open an issue first to discuss it, then submit a PR with:
- A test that reproduces the bug
- The fix implementation
- Updated documentation if needed
New Features
New Features
Want to add a new command or feature?
- Open an issue to discuss the feature first
- Ensure it aligns with Better PM’s goals
- Include comprehensive tests
- Update documentation and changelog
Performance Improvements
Performance Improvements
Optimizations are welcome! Include:
- Benchmarks showing the improvement
- Tests ensuring behavior hasn’t changed
- Description of the optimization technique
Documentation
Documentation
Help make Better PM easier to use:
- Fix typos and unclear explanations
- Add examples and use cases
- Improve error messages
- Expand getting started guides
Getting Help
Need help with your contribution?- GitHub Discussions: Ask questions and share ideas
- Issues: Report bugs or request features
- Discord: Join our community (link in README)
Code of Conduct
Be respectful and constructive in all interactions. We’re building Better PM together, and everyone’s contributions are valued.Resources
Questions about contributing? Feel free to open an issue labeled
question or reach out on GitHub Discussions.