Contributing Guide
Thank you for your interest in contributing to DigYourWindows! This document will help you participate in project development.
Code of Conduct
- Respect all contributors
- Accept constructive criticism
- Focus on what is best for the community
How to Contribute
Reporting Bugs
- Search Issues to confirm the bug hasn't been reported
- Create a new Issue using the Bug report template
- Include the following information:
- Operating system version
- .NET version
- Steps to reproduce
- Expected behavior vs actual behavior
Submitting Feature Requests
- Create a new Issue using the Feature request template
- Clearly describe the feature requirement and use case
- Explain how the feature would benefit the project
Submitting Code
Development Environment Setup
powershell
# Clone the repository
git clone https://github.com/LessUp/dig-your-windows.git
cd dig-your-windows
# Restore dependencies
dotnet restore DigYourWindows.slnx
# Verify build
dotnet build DigYourWindows.slnx
# Run tests
dotnet test DigYourWindows.slnx1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
Code Standards
- Follow Microsoft C# Coding Conventions
- Use EditorConfig configuration (project includes
.editorconfig) - All public APIs must have XML documentation comments
- Unit tests use
[MethodName]_[Scenario]_[ExpectedResult]naming format
Commit Convention
Use Conventional Commits format:
<type>(<scope>): <description>
[optional body]
[optional footer]1
2
3
4
5
2
3
4
5
Types:
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code formatting (no functionality change)refactor: Code refactoringtest: Test-related changeschore: Build/tooling changes
Examples:
feat(monitor): add GPU memory usage monitoring
fix(reliability): handle empty records in timeline builder
docs(guide): add troubleshooting section1
2
3
4
5
2
3
4
5
Pull Request Process
Fork the repository and create a feature branch
powershellgit checkout -b feat/my-feature1Make changes and write tests
Ensure all tests pass
powershelldotnet test DigYourWindows.slnx1Commit your changes
powershellgit commit -m "feat: add amazing feature"1Push to your fork and create a Pull Request
Wait for CI to pass and code review
Pull Request Checklist
- [ ] Code follows project coding standards
- [ ] Necessary tests have been added
- [ ] All tests pass
- [ ] Documentation updated (if applicable)
- [ ] Commit messages follow Conventional Commits specification
Project Structure
dig-your-windows/
├── src/
│ ├── DigYourWindows.Core/ # Core business logic
│ └── DigYourWindows.UI/ # WPF user interface
├── tests/
│ └── DigYourWindows.Tests/ # Test project
├── docs/ # VitePress documentation site
└── scripts/ # Build scripts1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Testing Guide
For detailed testing guide, refer to Testing Guide.
Running Tests
powershell
# Run all tests
dotnet test
# Run specific tests
dotnet test --filter "FullyQualifiedName~ReportServiceTests"
# Collect coverage
dotnet test --collect:"XPlat Code Coverage"1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
Release Process
- Update version number in
Directory.Build.props - Update
CHANGELOG.md - Create and push Git tagpowershell
git tag v1.x.x git push origin v1.x.x1
2 - GitHub Actions automatically builds and publishes
Getting Help
- Check the Documentation
- Ask in Discussions
- Create an Issue
License
This project is licensed under the MIT License. By submitting code, you agree that your contributions will be licensed under the same license.