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, harassment-free community.

If you're wondering where to start, read about ways to contribute to Uno. Or, you can peruse the list of first-timer-friendly open issues.

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?

Get an in-depth introduction to how Uno works, or jump straight to platform-specific details on how Uno works on Android, iOS, WebAssembly, or macOS.

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

See Uno's code conventions and common patterns here.

Implementing a new feature

See how to implement a new feature here.

Experimenting with Samples App

The Samples App is the development app contained in the Uno.UI solution. It serves as a UI and Runtime Tests host, as well as a playground for validating other API scenarios.

This app is available live at these locations, built from the default branch:

Adding tests

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

Uno uses Git for version control, and GitHub to host the main repository. You'll need to know the basics of Git to submit changes to Uno, but never fear, there are plenty of great guides available.

Important

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.

Uno uses Dependabot to automatically update external dependencies.

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.

More questions?

To discuss an issue you're working on or would like to work on, join us in Uno's Discord Server.