Skip to content

Commit 529378c

Browse files
authored
Create CONTRIBUTING.md
1 parent 2371180 commit 529378c

1 file changed

Lines changed: 67 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# Contributing to Telegram.Net
2+
3+
Thank you for your interest in contributing to Telegram.Net! We welcome contributions from anyone in the community, regardless of experience level.
4+
5+
## How to Contribute
6+
7+
### Getting Started
8+
9+
1. Fork the repository at [https://github.com/yawaflua/Telegram.Net](https://github.com/yawaflua/Telegram.Net)
10+
2. Clone your fork to your local machine
11+
3. Set up the development environment with the required .NET SDK
12+
13+
### Making Changes
14+
15+
1. Create a new branch for your feature or bug fix:
16+
```
17+
git checkout -b feature/your-feature-name
18+
```
19+
2. Make your changes
20+
3. Write or update tests for the changes you made using appropriate testing frameworks (e.g., MSTest, NUnit, or xUnit)
21+
4. Ensure your code passes all tests and meets C# coding conventions
22+
23+
## Code Quality Requirements
24+
25+
### Test Coverage
26+
27+
- **All pull requests must include tests with at least 50% code coverage**
28+
- Before submitting your PR, verify coverage using tools like:
29+
```
30+
# Example using Coverlet and ReportGenerator
31+
dotnet test /p:CollectCoverage=true /p:CoverletOutputFormat=opencover
32+
dotnet tool run reportgenerator -reports:"**/coverage.opencover.xml" -targetdir:"coveragereport" -reporttypes:Html
33+
```
34+
35+
### Coding Standards
36+
37+
- Follow C# coding conventions and the existing style in the project
38+
- Use meaningful names for classes, methods, and variables
39+
- Include XML documentation comments for public APIs
40+
- Keep methods focused and reasonably sized
41+
42+
## Pull Request Process
43+
44+
1. Update documentation if you're changing or adding functionality
45+
2. Ensure your code has adequate test coverage (minimum 50%)
46+
3. Submit your pull request with a clear title and description
47+
4. Reference any relevant issues in your PR description
48+
49+
## Review Process
50+
51+
- All submissions require review before being merged
52+
- Maintainers may request changes or suggest improvements
53+
- Be responsive to feedback on your pull request
54+
55+
## C# Specific Guidelines
56+
57+
- Target the same .NET version as the project
58+
- Avoid excessive dependencies unless absolutely necessary
59+
- Follow SOLID principles when applicable
60+
- Use async/await patterns appropriately for asynchronous operations
61+
- Be mindful of performance implications, especially for a networking library
62+
63+
## Questions?
64+
65+
If you have any questions about contributing to Telegram.Net, feel free to open an issue for discussion.
66+
67+
Thank you for helping improve Telegram.Net!

0 commit comments

Comments
 (0)