Thank you for your interest in contributing to our projects! Contributions of all kinds are welcome, whether they involve fixing bugs, adding features, improving documentation, or enhancing code quality. This guide outlines the process for contributing and ensures consistency across all repositories under this organization.
- Code of Conduct
- How Can I Contribute?
- Development Setup
- Coding Guidelines
- Code Quality
- Breaking Changes
- Documentation
- After Your Pull Request is Merged
By participating in this organization, you agree to uphold our Code of Conduct. Please treat everyone respectfully and foster an inclusive, welcoming environment.
If you encounter a bug or have a suggestion:
- Check the issue tracker for duplicates.
- If no similar issue exists, open a new issue and include:
- A descriptive title.
- Detailed information about the bug, feature, or suggestion.
- Steps to reproduce (if reporting a bug).
- Fork the repository and clone it locally.
- Create a branch for your changes:
git checkout -b feature/your-feature-name
- Make your changes and commit them with clear, concise messages.
- Push the branch to your fork:
git push origin feature/your-feature-name
- Submit a pull request to the
mainor appropriate branch of the repository.
Ensure that your pull request:
- Follows the coding guidelines.
- Includes tests for new functionality, if applicable.
- References related issues in the description (e.g., "Fixes #123").
If youโre considering a significant new feature, open an issue or discussion first to gather feedback and align with project goals.
Refer to the specific repositoryโs README.md or DEVELOPMENT.md for setup instructions. Each project may use different dependencies or build tools, such as:
- Node.js: Use
npmoryarnto install dependencies. - Python: Set up a virtual environment and use
pipfor dependencies. - Go: Use
go modfor dependency management. - Rust: Use
cargofor building and testing. - PHP: Use
composerfor dependency management. - C#: Use
dotnetCLI for building and testing.
- Write clean, maintainable, and well-documented code.
- Use meaningful names for variables, methods, and classes.
- Include comments where necessary to explain complex logic.
- Avoid introducing breaking changes unless absolutely necessary.
- Follow Microsoftโs C# Coding Conventions.
- Use
async/awaitfor asynchronous operations.
- Follow PSR-12 coding standards.
- Use ESLint for linting and code quality.
- Follow Airbnb's JavaScript Style Guide or the projectโs established rules.
- Follow the Rust API Guidelines.
- Use
clippyfor linting and code quality checks.
- Use functional components and hooks.
- Adhere to the React Docs guidelines.
- Follow PEP 8 for coding style.
- Use
flake8orblackfor linting and formatting.
- Follow Effective Go.
- Use
golangci-lintfor static code analysis.
All repositories prioritize code quality. Contributions should:
- Include tests for new functionality (unit, integration, or end-to-end as applicable).
- Pass all existing tests.
- Use language-specific tools for static analysis and linting (e.g.,
dotnet analyzers,flake8,eslint,clippy,golangci-lint).
If your changes introduce breaking changes, you must ensure versioning is correctly updated to reflect the new major version. Follow these steps depending on the CI platform used by the project:
- Update the
appveyor.ymlfile located at the root level of the repository to reflect the new major version. - Ensure that the semantic versioning aligns with the changes being introduced.
- Check if the project uses GitVersion to manage semantic versioning.
- If GitVersion is being used:
- Include
+semver: majorin the commit message and pull request title to increment the version to the next major version automatically. - Example commit message:
Refactor API endpoint handling +semver: major
- Include
- If GitVersion is not used, consult the repository maintainers or refer to the projectโs specific versioning process to determine the appropriate steps.
- Clearly document the breaking changes in the pull request description.
- Include any necessary migration steps or guidelines for users to adapt to the changes.
Please ensure that any changes to the code are reflected in the documentation:
- Update the
docsdirectory with any new, removed, or modified functionality. - If there are no public API changes, an update to the documentation may not be necessary.
Once your pull request is merged:
- You can safely delete your branch from your forked repository.