Contributing
Thank you for your interest in contributing to Kist projects! This guide will help you get started.
How to Contribute
There are many ways to contribute to Kist:
- 🐛 Report bugs
- 💡 Suggest new features
- 📝 Improve documentation
- 🔧 Submit pull requests
- 🤝 Help others in discussions
Getting Started
1. Find a Project
Browse the getkist organization and find a project you'd like to contribute to.
2. Check Issues
Look for existing issues labeled:
good first issue- Great for newcomershelp wanted- Contributions welcomebug- Bug reports needing fixesenhancement- Feature requests
3. Fork and Clone
bash
# Fork the repository on GitHub, then clone your fork
git clone https://github.com/YOUR-USERNAME/PROJECT-NAME.git
cd PROJECT-NAME4. Create a Branch
bash
git checkout -b feature/your-feature-name
# or
git checkout -b fix/issue-descriptionDevelopment Workflow
Install Dependencies
bash
npm installMake Your Changes
- Write clean, readable code
- Follow the project's coding style
- Add tests for new features
- Update documentation as needed
Test Your Changes
bash
npm test
npm run lint
npm run type-checkCommit Your Changes
Write clear, descriptive commit messages:
bash
git commit -m "feat: add new feature"
git commit -m "fix: resolve issue with..."
git commit -m "docs: update installation guide"We follow Conventional Commits:
feat:- New featuresfix:- Bug fixesdocs:- Documentation changestest:- Test updatesrefactor:- Code refactoringstyle:- Code style changeschore:- Maintenance tasks
Push and Create PR
bash
git push origin your-branch-nameThen create a pull request on GitHub with:
- Clear title and description
- Reference related issues
- Screenshots (if applicable)
- Test results
Code Standards
TypeScript
- Use TypeScript for new code
- Provide proper type definitions
- Avoid
anytypes when possible - Document complex types
Code Style
- Use consistent formatting (Prettier)
- Follow ESLint rules
- Write self-documenting code
- Add comments for complex logic
Testing
- Write unit tests for new features
- Maintain or improve code coverage
- Test edge cases
- Include integration tests when needed
Documentation
- Update README files
- Add JSDoc comments
- Include usage examples
- Document breaking changes
Review Process
- Automated Checks - CI runs tests and linting
- Code Review - Maintainers review your code
- Feedback - Address any requested changes
- Merge - PR is merged once approved
Community Guidelines
Be Respectful
- Be kind and welcoming
- Respect different viewpoints
- Accept constructive criticism
- Focus on what's best for the project
Communication
- Use clear, concise language
- Provide context and examples
- Be patient with responses
- Help others when you can
Questions?
- Check existing documentation
- Search closed issues
- Ask in discussions
- Tag maintainers if needed
License
By contributing, you agree that your contributions will be licensed under the same license as the project.
Thank you for contributing to Kist! Together we can build better tools for the developer community. 🚀
