Contributing to Uno
Everyone is welcome to contribute to the Uno Platform. Here you'll find useful information for new and returning contributors.
For starters, please read our Code of Conduct, which sets out our commitment to an open, welcoming, harrassment-free community.
Understanding the Uno codebase
For a refresher on what Uno is and what it does and does not do, read What is the Uno Platform?
Building and debugging Uno
For the prerequisites you'll need, as well as useful tips like using solution filters and cross-targeting overrides to quickly load and build Uno for a single platform, start with the guide to Building Uno.UI. The guide to Debugging Uno.UI will show you how to debug Uno.UI code either in the included UI samples or in an application outside the Uno.UI solution.
If you're doing development for Uno's macOS support, you'll need to build and run Uno using Visual Studio for Mac. There's a separate guide for that here.
You can contribute to Uno directly from your browser using GitPod. Find out how.
Whether you're fixing a bug or working on a new feature, inspecting the visual tree of a running app is often a key step.
Writing code in Uno
Implementing a new feature
See how to implement a new [feature here](../contributing/guidelines/implementing-a-new winui-winrt-feature.md).
Uno's stability rests upon a comprehensive testing suite. A code contribution usually isn't complete without a test.
See the Guidelines for creating tests for an overview of the different types of tests used by Uno, and how to add one.
Working with the Samples Applications provides instructions on adding a new UI sample to Uno, and authoring a UI Test to verify that the sample works.
Creating a Pull Request
Before you commit your code, take a minute to familiarize yourself with the Conventional Commits format Uno uses.
Read the Guidelines for pull requests in Uno.
Uno's CI process runs a tool to guard against inadvertent binary breaking changes.
Info for the core team
This section covers practices and utilities used by core maintainers.
Read the guidelines for issue triage.
Tools and procedures for creating stable releases are described here.
Build artifacts produced by the CI are documented here.
To discuss an issue you're working on or would like to work on, join us in Uno's Discord channel #uno-platform.