Welcome to our open source OpenKCM! We're thrilled to have you here. By contributing, you're helping us improve and build something amazing together. To ensure that our project runs smoothly and stays welcoming to all contributors, please follow these guidelines.
- 💬 Code of Conduct
- ⚡ How to Contribute
- 🔧 Best Practices
- 📚 Using Issues Effectively
- 🔀 Pull Requests Process
- 🌍 Community Engagement
- 📄 Licensing
We believe in fostering a welcoming and inclusive environment for all contributors. Please read and follow our Code of Conduct. Any form of discrimination, harassment, or unprofessional behavior will not be tolerated. Let's keep the community positive and collaborative!
There are several ways you can contribute to our project. Here's how you can get started:
If you find a bug or unexpected behavior in the project, we want to know about it! Follow these steps:
- Search to see if the issue has already been reported. We love preventing duplicate issues!
- Open a new issue with the following details:
- Clear description of the problem
- Steps to reproduce
- Expected behavior
- Screenshots, if applicable
- Your environment (OS, version, dependencies)
Got an awesome idea for a feature? We want to hear it! Here’s how to suggest a feature:
- Search to see if it’s already requested.
- Create a new issue with:
- A clear description of the feature
- The problem it will solve
- Additional context or design suggestions
Documentation is essential! Help us make it better. If you spot an error or missing information, please do the following:
- Open an issue with the problem.
- Submit a pull request with the fix.
When you create an issue, please be as detailed as possible. Use the relevant templates to guide your issue description.
To contribute code, follow these steps:
- Fork the repository and clone it to your local machine.
- Create a new branch from
main(ordevelop, depending on the project). - Make your changes and write clear commit messages.
- Push your branch to your forked repo.
- Create a pull request to the main repository's
mainbranch.
Here are some best practices to ensure your contributions are top-notch!
- Branches: Use meaningful names like
feature/add-loginorbugfix/fix-crash. This makes it easy to know what the branch is about. - Commits: Each commit should represent a single change. Don't bundle unrelated changes together.
- We love tests! Write tests to cover your changes to ensure they work and prevent future bugs.
- If you're unsure about the test framework or coverage, reach out to a maintainer.
- Follow existing code style conventions in the project.
- Indentation: 4 spaces.
- Use camelCase (JavaScript) or snake_case (Python) for variable names.
- Always use meaningful names for variables, functions, and classes.
Commit messages should follow this format:
- fix: Bug fixes
- feat: New features
- docs: Documentation updates
- style: Code style changes (e.g., formatting)
- test: Adding or modifying tests
Each commit message should be short, ideally under 50 characters, followed by a detailed description if necessary.
- Always search before opening a new issue to avoid duplicates.
- Labeling: Use labels to categorize issues properly (e.g.,
bug,enhancement,question). - Assigning: Assign an issue to yourself or someone else if you're working on it.
Once you’ve made changes and created a pull request, the following process will apply:
- All pull requests will be reviewed by maintainers.
- We expect respectful, clear feedback. If changes are requested, be sure to update your PR and resubmit.
If your pull request has merge conflicts:
- Pull the latest changes from
main. - Resolve conflicts.
- Re-run tests and push the updates.
We love seeing new faces! You can contribute in more ways than just coding:
- Participate in discussions.
- Help answer questions or provide feedback to others.
- Respect everyone, regardless of their experience level.
By contributing to this project, you agree to license your contributions under the project’s open-source license.
Thank you for contributing and making our project great! 😊 We’re excited to have you join our community! 🙌