What is GitHub?

GitHub is an online code sharing and collaboration system. All of our development team manage the source code of the micro:bit editors and languages, and most of the documentation for the various websites, using GitHub.

Why might I want to use GitHub?

You don't have to use GitHub if you don't want to - you can use our knowledge-base and log tickets if you want to ask us questions. However, where we need to involve our development team, we will often converse with the development team via GitHub issues.

Even if you don't have a GitHub account, you can follow along with GitHub issues via an easy to use web page. If we log an issue with our dev-team via GitHub, we will usually send you a link to the GitHub issue that you can use to monitor the back-office progress directly.

Additionally, if you set up an account with GitHub (you must be 13 or over to do this), you can log issues directly with the dev-team, provide additional detailed information about problems, make suggestions to them directly, or even contribute your own programs to the codebase and your own content to our various websites.

Why might I want to log a ticket with you instead?

Going direct to the dev-team is fun, and sometimes quite efficient. But our developers are always very busy, and might not always be able to reply in person quickly. Also, we may be able to do additional work first from the information you give us when you log a ticket, and we may already know the right answer. We might also be able to put additional effort into reproducing the issue here first, and collecting other needed information from you before working out who the correct team is to pass it on to for a fix.

There are so many different places in GitHub, which is the right one to use?

Each different major component in the system is managed in a separate GitHub repo (Repository).

Don't worry, if you just log a ticket with us, we can route your issue to the right person and the right GitHub repo.

List of relevant GitHub repositories

Javascript Blocks web editor: https://github.com/Microsoft/pxt

Python web editor: (python.microbit.org) https://github.com/bbcmicrobit/PythonEditor

Mu for micro:bit: https://github.com/mu-editor/mu

MicroPython on micro:bit: https://github.com/bbcmicrobit/micropython

Developers documentation: (tech.microbit.org) https://github.com/microbit-foundation/dev-docs

Device Abstraction Layer source code: https://github.com/lancaster-university/microbit-dal

Device Abstraction Layer docs: https://github.com/lancaster-university/microbit-docs

Reference design: https://github.com/microbit-foundation/microbit-reference-design

DAPLink (interface chip source code): https://github.com/mbedmicro/DAPLink

Android App: https://github.com/Samsung/microbit