Thank you for your interest in contributing to Telegram.Net! We welcome contributions from anyone in the community, regardless of experience level.
- Fork the repository at https://github.com/yawaflua/Telegram.Net
- Clone your fork to your local machine
- Set up the development environment with the required .NET SDK
- Create a new branch for your feature or bug fix:
git checkout -b feature/your-feature-name - Make your changes
- Write or update tests for the changes you made using appropriate testing frameworks (e.g., MSTest, NUnit, or xUnit)
- Ensure your code passes all tests and meets C# coding conventions
- All pull requests must include tests with at least 50% code coverage
- Before submitting your PR, verify coverage using tools like:
# Example using Coverlet and ReportGenerator dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover dotnet tool run reportgenerator -reports:"**/coverage.opencover.xml" -targetdir:"coveragereport" -reporttypes:Html
- Follow C# coding conventions and the existing style in the project
- Use meaningful names for classes, methods, and variables
- Include XML documentation comments for public APIs
- Keep methods focused and reasonably sized
- Update documentation if you're changing or adding functionality
- Ensure your code has adequate test coverage (minimum 50%)
- Submit your pull request with a clear title and description
- Reference any relevant issues in your PR description
- All submissions require review before being merged
- Maintainers may request changes or suggest improvements
- Be responsive to feedback on your pull request
- Target the same .NET version as the project
- Avoid excessive dependencies unless absolutely necessary
- Follow SOLID principles when applicable
- Use async/await patterns appropriately for asynchronous operations
- Be mindful of performance implications, especially for a networking library
If you have any questions about contributing to Telegram.Net, feel free to open an issue for discussion.
Thank you for helping improve Telegram.Net!