Contributing
Your contributions are always welcome!
Contribution Guidelines
Please have a look at the contribution guidelines first.
Contributing Workflow
- Fork and branch: Create a feature branch from
main - Implement: Make your changes following the style guidelines
- Test: Ensure tests pass and coverage doesn't decrease
- API Changes: Run
AcceptApiChanges.ps1/.shif you changed public APIs - Pull Request: Target the
mainbranch - Review: Address feedback from maintainers
Code Style
The project follows the C# Coding Guidelines and uses multiple Roslyn analyzers:
- StyleCop
- CSharpGuidelinesAnalyzer
- Roslynator
- Meziantou.Analyzer
All warnings are treated as errors.
API Changes
⚠️ IMPORTANT: All public API changes must go through an approval process:
- Propose the API change in a separate issue first
- Discuss and get the issue labeled with
api-approved - After implementation, run
AcceptApiChanges.ps1(Windows) orAcceptApiChanges.sh(Unix) - This generates/updates API verification files that must be committed
Previous Contributors
(Made with contrib.rocks)
Code of Conduct
Please read and follow our Code of Conduct.
Versioning
This library uses Semantic Versioning to give meaning to the version numbers. For the versions available, see the releases on this repository.
Credits
This library wouldn't have been possible without the following tools, packages and companies:
- FluentAssertions - Fluent API for asserting the results of unit tests by Dennis Doomen
- Nuke - Smart automation for DevOps teams and CI/CD pipelines by Matthias Koch
- xUnit - Community-focused unit testing tool for .NET by Brad Wilson
- Coverlet - Cross platform code coverage for .NET by Toni Solarin-Sodara
- GitVersion - From git log to SemVer in no time
- ReportGenerator - Converts coverage reports by Daniel Palme
- StyleCopyAnalyzer - StyleCop rules for .NET
- Roslynator - A set of code analysis tools for C# by Josef Pihrt
- CSharpCodingGuidelines - Roslyn analyzers by Bart Koelman to go with the C# Coding Guidelines
- Meziantou - Another set of awesome Roslyn analyzers by Gérald Barré
Related Projects
You may also be interested in:
- FluentAssertions - The assertion library that Mockly integrates with
- PackageGuard - Get a grip on your open-source packages
- Reflectify - Reflection extensions without causing dependency pains
- Pathy - Fluently building and using file and directory paths without binary dependencies
- .NET Library Starter Kit - A battle-tested starter kit for building open-source and internal NuGet libraries
License
This project is licensed under the MIT License - see the LICENSE file for details.