Skip to main content

Contributing

Your contributions are always welcome!

Contribution Guidelines​

Please have a look at the contribution guidelines first.

Contributing Workflow​

  1. Fork and branch: Create a feature branch from main
  2. Implement: Make your changes following the style guidelines
  3. Test: Ensure tests pass and coverage doesn't decrease
  4. API Changes: Run AcceptApiChanges.ps1/.sh if you changed public APIs
  5. Pull Request: Target the main branch
  6. 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:

  1. Propose the API change in a separate issue first
  2. Discuss and get the issue labeled with api-approved
  3. After implementation, run AcceptApiChanges.ps1 (Windows) or AcceptApiChanges.sh (Unix)
  4. This generates/updates API verification files that must be committed

Previous Contributors​

contrib.rocks image

(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:

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.