Skip to content

Latest commit

 

History

History
45 lines (37 loc) · 3.19 KB

CONTRIBUTING.MD

File metadata and controls

45 lines (37 loc) · 3.19 KB

Reporting bugs

Use this template to create a bug report.

Suggesting features

Use this template to create a suggest features or enhancements. Remember the project/community may decide against a feature if it isn't a good fit for this library.

Contributing pull requests

Before coding anything...

If an issue doesn't already exist, it is probably a good idea to raise an issue on the GitHub for the bug/feature suggestion (see above). If you were to spend time making changes without doing this, then your pull request may not be accepted if the change is not wanted or it is implemented in a way that the project does not want. Especially for more significant changes, it is always better to discuss a proposed implementation on an issue first.

Pre-requisites

  • Visual Studio 2022 - 17.7.0 or greater
    • Required: the .NET Multi-platform App UI workload installed
    • Optional: the Visual Studio extension development workload installed (for debugging source generators)
    • XAML Styler for ensuring XAML is formatted consistently. It is a good idea to set it to run automatically on save.

NOTE: The above software is the recommended basics. You may be able to use other software versions or different pieces of software to contribute to this project.

Folder structure

  • /.github - files related to the repository hosted on GitHub
  • /art - art assets for the library
  • /samples - full .NET MAUI applications demonstrating the features of the library
  • /src - the source for the library
    • /Abstractions - contains interface files for services etc.
    • /Builders - builder classes for configuring the library
    • /Extensions - contains extension methods
    • /Models - models and constants
    • /Properties - contains some library configuration and string resources
    • /Services - dependencies and services for the project including publicly exposed ones
    • /Utilities - internal helpers for the library
  • /tests - the area for test projects for the library
    • /Burkus.Mvvm.Maui.UnitTests - unit tests for the library project

Submitting a PR

  • Try to rebase (git rebase -i) your PR onto main to tidy your git history https://www.atlassian.com/git/tutorials/rewriting-history/git-rebase
  • Update the unit tests (fix any existing tests and ensure new code has unit test coverage)
  • Update the sample app with the change/feature in action
  • Ensure you have the XAML Styler extension installed and have run it on any XAML files you have changed to format them

Source generators

Debugging source generators

  1. Set Burkus.Mvvm.Maui.SourceGenerators as your startup project.
  2. Start debugging by running "Debug Source Gen Demo App" Debug mode.
  3. Your breakpoints will now work in the source generator project.