Ways to contribute to Uno Platform
There are lots of ways to contribute to the Uno Platform, and all of them are appreciated. You can provide feedback, report bugs, give suggestions, contribute code, and share your Uno expertise with others.
The Uno Platform is an ongoing effort. Bug reports and feature requests are important for prioritizing where that effort goes, and identifying the most pressing user needs. Your feedback is important to us - we want to hear about your experience, scenarios, and requirements.
Report a bug by opening an issue
If you think you've found a bug, the first thing to do is search the existing issues to check if it's already been reported. If it has been opened, provide additional commentary so we know more users are being affected.
The best way to get your bug fixed is to be as detailed as you can be about the problem. Providing a minimal project, stripped off as much code as possible, with steps to reproduce the problem (typed or screen-capture) is ideal.
Here are questions you can consider before you file a bug to make sure you're not missing any important information. The bug submission template will also ask for this information.
- Did you read the documentation?
- Did you check the the latest pre-release of Uno Platform to see if the issue has been fixed?
- Does the issue exist on the UWP / WinUI project (in which case it is not an Uno Platform issue)
Issue Filing via logging a new bug report.:
- Did you include the snippet of the broken code in the issue?
- What are the EXACT steps to reproduce this problem?
- What specific Uno Platform version or build are you using?
- What operating system are you using?
- What platform(s) are you targeting that are experiencing the issue? Is it working on some platform(s) and not on others.
- What IDE and version are you using?
GitHub supports Markdown, so when filing issues, be sure to check the formatting in the 'Preview' tab before hitting submit.
Request a feature
If you need a UWP feature or WinUI feature that Uno Platform doesn't support yet, you should submit a feature request. Check existing issues first in case the same feature request already exists (in which case you can upvote the existing issue).
To help us understand and prioritize your request, please provide as much detail as possible about your scenario and why the feature or enhancement would be useful.
Wherever we can, we prefer to implement UWP/WinUI APIs for maximum cross-platform compatibility and existing code support, but for features/functionality not covered by UWP's API, the same feature request process applies.
Ask (and answer) questions
If you have a question, be sure first to check out our documentation. But if you are still stuck, please visit GitHub Discussions where our engineering team and community will be able to help you.
If you've already done some Uno development, maybe there's a GitHub discussion question you can answer, giving another user the benefit of your experience.
For a more direct conversation, visit our Discord Channel #uno-platform.
Spreading the word
We love to see the community grow, and whether you're trying Uno for the first time or you're an old pro, it's great to share whatever you've learnt.
- write a blog post
- present Uno at a local user group
- share your open-source Uno projects
Whatever you do, let us know through Twitter or via email@example.com.
The UWP framework and WinUI are pretty big, but many hands make light work. We welcome code and content contributions from the community, and the core team is more than happy to help new contributors ramp up and familiarize themselves with Uno's codebase.
Diving into the code
The contributor's guide has plenty of resources to help you get up and running with Uno's code, including a guide to building and debugging Uno.UI, and a guide to Uno's internals.
Finding an issue to work on
Not sure what to work on? Take a look through the currently open good first issues - these are all issues that have been identified by the core team as suitable for new contributors, with a well-defined scope and a relatively gentle learning curve.
Maybe you have something in mind to work on already. That's great! Make sure there's an opened issue for it, either by creating it yourself or searching for an existing report, as described above.
In either case, once you're ready, leave a comment on the issue indicating that you'd like to work on it. A member of the core team will assign the issue to you, so as to make sure no one inadvertently duplicates your work (and you're not duplicating someone else's).
Getting down to work
The contributor's guide has the information you need. The most important points are:
- Work in your own fork of Uno
- Be sure to use the Conventional Commits format
- Once you're done, you'll probably need to add a test
Creating a PR
Once you're ready to create a PR, check out the Guidelines for pull requests in Uno.
If there's anything you need, give us a shout in the #uno-platform Discord Channel.