Skip to content
PyDevicesPublic

About

The OmniPython package library's mip index, served from GitHub Pages

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lib

The package index for OmniPython's own libraries, served from GitHub Pages at https://pydevices.github.io/lib. It holds what pydevices builds (the display, audio, event and timing libraries, bledev, midiports, the usb-* packages, every board config and every driver), plus palettes, pdwidgets, appkit, pygraphics and the audio instruments and effects. Nothing here is edited by hand: each package is built from a release of the repository it lives in (boards and drivers, from their merge).

This address is temporary. The index will move to lib.omnipython.org, and this page will redirect there.

Install a package

On a board with Wi-Fi, in the REPL:

import mip
mip.install("pydevices", index="https://pydevices.github.io/lib")

From a computer, with mpremote:

mpremote mip install --index https://pydevices.github.io/lib pydevices

A board config installs the same way, by the name of its folder in board_configs (for example esp32-s3-touch-lcd-7), and brings its drivers and pydevices with it. The index carries .mpy files for the MicroPython bytecode version your board runs, and .py source for anything else.

Packages that a person has run on real hardware are in the main index. The ones nobody has run yet are in https://pydevices.github.io/lib/untested: installing from there is a choice, and everything still comes from this index. CONTRIBUTING.md says how to add a board or a driver and how one becomes tested.

Packages that come from micropython-lib (aioble, sdcard, bmi270, usb-device-*) are not copied here: mip takes every file of a package from the one index it was given, so install those from the default index first, then ours:

mip.install("aioble")
mip.install("bledev", index="https://pydevices.github.io/lib")

How it is published

A release in any of the source repositories sends this repository a request naming the release. A merge to pydevices' main that changes a board config or a driver (board_configs/ or drivers/, tested.json included) sends one too, naming the commit: the board and driver files come from that commit and everything else from the last pydevices release, so a board or driver is published when it merges. The next pydevices release carries them and clears the commit. publish.yml records the request in pins.json as soon as it arrives, rebuilds every package from the releases pinned there with pydevices' tools/libbuild.py, and deploys the result. Builds queue, one at a time, and a build waiting behind another may be replaced by a newer one; that costs nothing, because every build starts from the pins as recorded so far, so each request is in the index by the next build that finishes. A run can also be started by hand from the Actions tab to rebuild from the pins as they are.

About

The OmniPython package library's mip index, served from GitHub Pages

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages