1 changed files with 69 additions and 0 deletions
@ -0,0 +1,69 @@ |
|||
# Contributing to Avalonia |
|||
|
|||
## Before You Start |
|||
|
|||
Drop into our [gitter chat room](https://gitter.im/AvaloniaUI/Avalonia) and let us know what you're thinking of doing. We might be able to give you guidance or let you know if someone else is already working on the feature. |
|||
|
|||
## Style |
|||
|
|||
The codebase uses [.net core](https://github.com/dotnet/corefx/blob/master/Documentation/coding-guidelines/coding-style.md) coding style. |
|||
|
|||
Try to keep lines of code around 100 characters in length or less, though this is not a hard limit. |
|||
If you're a few characters over then don't worry too much. |
|||
|
|||
**DO NOT USE #REGIONS** full stop. |
|||
|
|||
## Pull requests |
|||
|
|||
A single pull request should be submitted for each change. If you're making more than one change, |
|||
please submit separate pull requests for each change for easy review. Rebase your changes to make |
|||
sense, so a history that looks like: |
|||
|
|||
* Add class A |
|||
* Feature A didn't set Foo when Bar was set |
|||
* Fix spacing |
|||
* Add class B |
|||
* Sort using statements |
|||
|
|||
Should be rebased to read: |
|||
|
|||
* Add class A |
|||
* Add class B |
|||
|
|||
Again, this makes review much easier. |
|||
|
|||
Please try not to submit pull requests that don't add new features (e.g. moving stuff around) |
|||
unless you see something that is obviously wrong or that could be written in a more terse or |
|||
idiomatic style. It takes time to review each pull request - time that I'd prefer to spend writing |
|||
new features! |
|||
|
|||
Prefer terseness to verbosity but don't try to be too clever. |
|||
|
|||
## Tests |
|||
|
|||
There are two types of tests currently in the codebase; unit tests and render tests. |
|||
|
|||
Unit tests should be contained in a class name that mirrors the class being tested with the suffix |
|||
-Tests, e.g. |
|||
|
|||
Avalonia.Controls.UnitTests.Presenters.TextPresenterTests |
|||
|
|||
Where Avalonia.Controls.UnitTests is the name of the project. |
|||
|
|||
Unit test methods should be named in a sentence style, separated by underscores, that describes in |
|||
English what the test is testing, e.g. |
|||
|
|||
```csharp |
|||
void Calling_Foo_Should_Increment_Bar() |
|||
``` |
|||
|
|||
Render tests should describe what the produced image is: |
|||
|
|||
```csharp |
|||
void Rectangle_2px_Stroke_Filled() |
|||
``` |
|||
|
|||
## Code of Conduct |
|||
|
|||
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behavior in our community. |
|||
For more information see the [Contributor Covenant Code of Conduct](https://dotnetfoundation.org/code-of-conduct) |
|||
Loading…
Reference in new issue