The best place to start with any open source contribution is with something that fits your knowledge, experience, and area of interest.

Python

If you're a Python programmer, and like the idea of a very well specified, but complex problem, Colosseum is a good place to contribute. Colosseum is a pure-Python, browser implementation of the CSS layout algorithm. BeeWare uses it to lay out widgets on the screen of an application. The CSS specification has an extensive test suite; Colosseum needs to pass all those tests.

The Colosseum documentation has a contribution guide that walk you through your first Colosseum contribution.

GUI programming

If you've got experience with a native widget library - Cocoa on macOS, GTK+ on Linux, Windows Forms, or the native iOS or Android libraries, you may be able to help with Toga. Toga is a cross platform widget toolkit - it provides a common interface for user interface elements like buttons and trees.

Toga has a range of interfaces already defined; however, the implementation of those interfaces isn't complete across all platforms. Pick a widget, and implement that widget for your platform of choice!

Even if you don't know a native widget library, you may still be able to help with Toga. Toga's core library has a test suite, but the coverage of that test suite isn't very good. Pick a widget interface, and see if you can write a test for it!

Android and Java

If you have an Android phone, or you're interested in developing code that needs to run on the JVM, VOC is a fantastic place to contribute. In order for VOC to function, all the functionality of CPython that is implemented in C needs to be re-implemented in Java. As a result, there are lots of very approachable and well-contained tasks suitable for first time contributors.

See the guide to your first VOC contribution for more details.

JavaScript and Browsers

Alternatively, if you're a web developer who would like to use Python in the browser, Batavia may be for you. Just as with VOC, Batavia requires an implementation of all the functionality of CPython that is implemented in C; however, Batavia needs that implementation in JavaScript.

Again, this results in lots of very approachable and well-contained tasks suitable for first time contributors.

See the guide to your first Batavia contribution for more details.

Tutorials

One of the best ways to contribute is to make sure our introductory and tutorial documentation is rock solid. Pick a project of interest from the BeeWare suite, and try to follow the getting started guide and tutorial. If you can't find the getting started guide - then that's the first thing to report!

As you work through the tutorial, take note of anything that doesn't make sense, or doesn't work. Then open a bug report for those problems.

Windows

If you're a Windows user, BeeWare can definitely use your help. The core team all use Linux and macOS in their daily development, and as a result, it's really easy for Windows incompatibilities to slip in. This is almost always due to an oversight. Identifying - and maybe even fixing - problems with running BeeWare tools on Windows is an immense help.

Languages

Do you speak a language other than English? At present, the core team are all native speakers of English. Providing translations of documentation, or completely new tutorials or guides in your native language is a great way to contribute. Pick a project that already has documentation and translate that text. Alternatively, start from scratch and write a completely new tutorial.

If you speak a language with a non-latin character set (e.g., Russian or Chinese), or a language with a right-to-left script (e.g., Hebrew or Arabic) you'll be able to point out all the places where we've assumed simple ASCII encoding or left-to-right conventions. Pick any of the active BeeWare projects, and try to use it with using your native language. If you hit any problems, report those problems as bugs; if you are feeling particularly adventurous, see if you can work out how to fix the bug, too.

Your first Batavia contribution

So you want to contribute to an Open Source project? Batavia is a great place to start.

Your First VOC contribution

So you want to contribute to an Open Source project? VOC is a great place to start.