We are happy to receive Pull Requests adding new features and solving bugs. As for new features, please contact us before doing major work. To ensure you are not working on something that will be rejected due to not fitting into the roadmap or ideal of the framework.
To develop on MvvmCross you will need to install the .NET SDK (the latest version is usually OK) and the following workloads:
dotnet workload install android ios tvos macos maccatalyst maui-ios maui-android
On Windows you can open the MvvmCross.sln
file, if you are developing on macOS, use the filter MvvmCross-macos.slnf
instead.
Since Windows and UNIX-based systems differ in terms of line endings, it is a very good idea to configure git autocrlf settings.
On Windows we recommend setting core.autocrlf
to true
.
git config --global core.autocrlf true
On Mac we recommend setting core.autocrlf
to input
.
git config --global core.autocrlf input
We have a .editorconfig file in place, please use an IDE that respects the settings, such as Visual Studio, Rider or VS Code.
When creating Pull Requests dotnet format
command will run, to ensure formatting on code.
Our workflow is loosely based on Github Flow. We actively do development on the develop branch. This means that all pull requests by contributors need to be develop and requested against the develop branch.
The master branch contains tags reflecting what is currently on NuGet.org.
Make sure you can build the code. Familiarize yourself with the project workflow and our coding conventions. If you don't know what a pull request is read this https://help.github.com/articles/using-pull-requests.
Before submitting a feature or substantial code contribution please discuss it with the team and ensure it follows the MvvmCross roadmap. Note that code submissions will be reviewed and tested. Only code that meets quality and design/roadmap appropriateness will be merged into the source. Don't "Push" Your Pull Requests
We have issue labeled with up-for-grabs
or first-timers-only
to get you started on easy work.
If you'd like to work on something that isn't in a current issue, especially if it would be a big change, please open a new issue for discussion!