Contributing
AvalonDock is an open source project and contributions are welcome! Hereβs how to get started.
Ways to Contribute
- β Star the repository to show your support
- π Report bugs via GitHub Issues
- π‘ Request features via GitHub Issues
- π§ Submit pull requests with bug fixes or improvements
- π Improve documentation β this site is in the
docs/folder
Development Setup
Prerequisites
- Windows (WPF is Windows-only)
- .NET 9 and/or .NET 10 SDK
- Visual Studio 2022 or later
Build & Test
git clone https://github.com/Dirkster99/AvalonDock.git
cd AvalonDock
dotnet build source/AvalonDock.sln
dotnet test source/AvalonDock.sln -m:1
Tests must run single-threaded (-m:1) due to WPF STA requirements.
Pull Request Guidelines
- Fork from the
masterbranch - Keep changes focused β one feature or fix per PR
- Follow the existing code style (tabs for indentation, UTF-8, LF line endings)
- Add or update tests if applicable
- Ensure the build passes with zero warnings (all warnings are treated as errors)
Commit Message Format
[Fix|Feature] #<IssueNumber> - [<Topic>] <Description>
Examples:
[Fix] #123 - [Serialization] Handle null ContentId during deserialization[Feature] #456 - [Themes] Add Arc theme dark variant
Code Quality Standards
The project enforces strict quality standards:
- StyleCop.Analyzers for code style consistency
- Microsoft.CodeAnalysis.NetAnalyzers for .NET best practices
- SonarAnalyzer.CSharp for security and reliability
- All warnings treated as errors in CI
License
By contributing, you agree that your contributions will be licensed under the MS-PL / Apache 2.0 license.