3.6 KiB
Contributing to Kottster
Thank you for your interest in Kottster and for taking the time to contribute to this project.
Kottster is a project by developers for developers and there are a lot of ways you can contribute. If you don't know where to start contributing, ask us on our Discord channel.
Code of Conduct
By participating in this project, you agree to abide by our Code of Conduct.
Git Workflow
Kottster follows these Git management practices:
Conventional Commits
We use the Conventional Commits specification for commit messages to provide a consistent format:
<type>: <description>
Types include:
feat: A new featurefix: A bug fixdocs: Documentation changesstyle: Code style changes (formatting, missing semicolons, etc)refactor: Code changes that neither fix bugs nor add featuresperf: Performance improvementstest: Adding or correcting testschore: Changes to the build process, tooling, etc.
Examples:
feat: Add mongodb adapter
fix: Resolve token validation issue
docs: Update API documentation
Branching Strategy
We follow Trunk-Based Development:
mainis the primary branch and source of truth- Create short-lived feature branches for development
- Branch names should be descriptive and include issue numbers when applicable
- Example:
feature/mongodb-adapter,fix/token-validationordocs/api-docs
Versioning
Each package in our monorepo follows independent versioning. Version numbers follow semantic versioning (MAJOR.MINOR.PATCH).
Tagging
We use package-specific tags in the format:
package-name@vX.Y.Z
Example: @kottster/server@v1.2.3
Tags are applied to the main branch after changes are merged.
How Can I Contribute?
Development Workflow
- Fork the repository
- Create a feature branch from
maingit checkout -b feature/your-feature main - Make changes to any needed packages
- Commit using conventional commit format
git commit -m "feat: Implement new feature" - Push your branch and create a Pull Request
git push origin feature/your-feature - After review and approval, your PR will be merged to
main - Once in
main, package versioning and tagging will be handled by the project maintainers
🐛 Reporting Bugs
Before submitting a bug report:
- Check the issue tracker to see if the bug has already been reported
- Ensure you're using the latest version of the software
To report a bug, create an issue using the bug report template and include:
- A clear title and description
- Steps to reproduce the issue
- Expected behavior
- Actual behavior
- Screenshots (if applicable)
🛠 Suggesting Features
Feature suggestions are tracked as GitHub issues. Create an issue using the feature request template and provide:
- A clear title and description
- Justification for the feature
- Possible implementation details (optional)
📖 Improving Documentation
Documentation is crucial for any project. If you find any typos, unclear instructions, or missing information, please submit a pull request with your changes. You can also help by:
- Reviewing existing documentation for clarity
- Adding examples or use cases
- Creating tutorials or guides
License
By contributing, you agree that your contributions will be licensed under the project's license.