Contribute

We want it to be as easy as possible for developers to build great software in C#. Being part of an open source project means more than just writing code — there are many ways that you can contribute. Since all the source code for the Xamarin SDK is open, it's possible to get deeply involved, both in tracking down issues and making significant product changes. Alternatively, taking 5 mins to report an issue is also valuable.

There are a few basic approaches to contributing:

  • Improve Xamarin and Mono
    • Report bugs and missing features that you find in writing and testing apps.
    • Write tools that make writing apps or working on Xamarin and Mono easier.
    • Writing tests that help make Xamarin more robust.
  • Help with the project backlog
    • Triage existing bugs or take a stab at fixing them.
    • Track down the problem and provide a bug report.
    • Fix the bug and submit a pull request.
    • Discuss the solution on the appropriate mailing list or chat.
  • Pick a component that interests you, and:
    • Create bindings to a native iOS, Android, or Mac library.
    • Create a plugin to provide native functionality across platforms.

If you get stuck while contributing to Xamarin please feel free to reach out to the developers on the mailing lists or chat.

Bug reporting

We encourage developers to use our software and help us make it a stable, feature complete and reliable system. In order to achieve that goal, we ask you to report bugs as you find them.

Xamarin Mac iOS

Xamarin Android

Xamarin.Forms

Mono

Monodevelop

How to contribute a great bug report

Writing a good bug report helps our developers (and other contributors!) figure out where a problem exists and improves the likelihood your bug will get fixed quickly.

Great bug reports:

  • Describe the problem as clearly and concisely as possible, including a description of what happened and was expected to happen.
  • Include any stack traces, error message text, or crash logs.
  • Include a small, self-contained test case that reproduces the bug with as little code as possible.
  • Describe the environment where the bug was encountered, including the operating system and versions of Xamarin and any dependencies.

If any dependencies are required to reproduce your bug, please include information about where to download the correct versions of required dependencies.

Bug triaging

One of the most helpful resources for a developer attempting to fix a bug is to start with a great bug report. You can help the Xamarin community by improving bug reports with small, self-contained samples that demonstrate a problem, or by providing additional information where the info listed on the bug isn’t enough to reproduce.

Often, developers leave out information that’s “obvious” to them but not to someone else. Try to find out which additional steps are needed and add this to existing bug reports. If you see a bug that’s already been reported before, you can mention that in a comment and we’ll close the bug as a duplicate. These steps make the bug list more manageable. Here is an example of a good report.