Thank you for your interest in contributing to ProjectLinter! This document provides guidelines and instructions for contributing to the project.
- Code of Conduct
- Getting Started
- How to Contribute
- Code Quality Standards
- Testing Guidelines
- Community Involvement
- Communication Guidelines
- License
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code.
- Fork the repository
- Clone your fork:
git clone https://github.com/your-username/ProjectLinter.git - Create a new branch for your changes:
git checkout -b feature/your-feature-name - Set up the development environment:
- Ensure you have .NET SDK installed (version specified in global.json)
- Run
dotnet restoreto restore dependencies - Run
dotnet buildto build the project - Run
dotnet testto verify your setup
- Visual Studio 2022 or Visual Studio Code with C# extensions
- .NET SDK (version specified in global.json)
- Git for version control
Please report issues in the Issues section, using the issue template.
If you find a bug or a potential issue:
-
Check the Issues to see if it has already been reported
-
If it has not been reported, create a new issue, using the issue template.
-
Please provide:
- A clear and descriptive title
- A detailed description of the problem
- A code snippet reproducing the issue
- Environment details (OS, .NET version, etc.)
- Any other relevant information
Please create a pull request to contribute to the project. Follow these guidelines to ensure a smooth review process:
-
Before Submitting
- Fork the repository
- Create a new branch for your changes
- Make your changes
- Test your changes
- Commit your changes
- Push your changes to your fork
-
PR Content
- Keep changes small and focused as practical
- Use a clear and descriptive title
- Provide a detailed description of the changes
- Include code snippets demonstrating the changes when relevant
- Use the PR template
- Link to any related issues
-
Review Process
- Address review comments promptly
- Keep commits focused and atomic
- Squash commits when requested
- Maintain a clean commit history
- Ensure CI checks pass
- Follow the existing code style and formatting
- Write clear, self-documenting code
- Add comments for complex logic
- Keep functions focused and single-purpose
- Use meaningful variable and function names
- Remove unused code and imports
- Handle errors appropriately
- Follow C# coding conventions
- Include XML documentation for public APIs
- Update documentation for user-facing changes
- Write unit tests for new features
- Ensure all tests pass before submitting PRs
- Maintain or improve test coverage
- Include integration tests for significant changes
- Test edge cases and error conditions
- Run the full test suite locally:
dotnet test - Include both positive and negative test cases
- Test against different .NET versions if applicable
We welcome all forms of community participation! Here's how you can get involved:
- Join discussions in GitHub Issues and Pull Requests
- Help review pull requests from other contributors
- Improve documentation
- Share your experience using ProjectLinter
- Help answer questions from other users
- Participate in feature planning and design discussions
- Report bugs and suggest improvements
- Help maintain the project's test suite
- GitHub Issues: For bug reports and feature requests
- Pull Requests: For code changes and reviews
This project is licensed under the Apache 2.0 License.
Thank you for using and contributing to ProjectLinter!