# Packages You can publish libraries (also known as packages or extensions) that users can then add to their scripts. These typically provide a driver for a particular hardware device you can connect to a microbit. ### ~ hint All packages need to be approved by the Micro:bit Foundation before being available in the web editor. See **Approval** section below. ### ~ * [pxt-neopixel](https://github.com/Microsoft/pxt-neopixel) -- TypeScript + ARM Thumb assembly package * [pxt-max6675](https://github.com/Microsoft/pxt-max6675) -- TypeScript * [pxt-sonar](https://github.com/microsoft/pxt-sonar) -- TypeScript * [pxt-i2c-fram](https://github.com/microsoft/pxt-i2c-fram) -- TypeScript * [Sample C++ extension](https://github.com/Microsoft/pxt-microbit-cppsample) ## Finding packages From the block editor, the user clicks on **Add Package** and searches for the package. Otherwise, the **Add Package** is also available from the gearwheel menu. To see the list of packages, switch to JavaScript and use the **Explorer** view to find them. To remove a package, click on the garbage button in the **Explorer** view next to the package. ## Publishing and Approving packages Once your package is ready, follow these steps to get it approved and listed in the pxt.microbit.org web site: 1. setup a public GitHub repository with your package sources 2. ensure that the license is **Apache2** or **MIT** 3. fill ``test.ts`` with a test scenario 4. ensure that the package builds by running ``pxt`` from the package folder. [Read more...](https://www.pxt.io/packages). 5. fill up the ``README.md`` file with documentation. See [markdown docs](https://pxt.io/writing-docs) for syntax. 6. publish a release by running ``pxt bump`` from the package folder. 7. open a support ticket at https://support.microbit.org, add **package approval** in the subject line. ``` Package approval request github repo: ..... ``` ## Localizing packages It is possible to package localization strings for the **jsDoc** description associated to the API in the package. When compiling a package, the PXT compiler generates a `strings.json` file under the `_locales/` folder. This file contains a map from the symbol name to the en ``` { ... "basic": "Provides access to common functionality.", ... } ``` ``` { "basic.clearScreen": "Eteint toutes les diodes." } ``` ``` _locales/ _locales/fr/strings.json _locales/pt-BR/strings.json ```