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.