cf61c1045844341479aa54703030c58be40403f9
Some checks failed
ci / build (linux-x86_64) (push) Failing after 4s
ci / build (macos) (push) Failing after 42s
ci / build (linux-arm64) (push) Has been cancelled
ci / test distro (archlinux:latest) (push) Has been cancelled
ci / test distro (debian:bookworm-slim) (push) Has been cancelled
ci / test distro (fedora:41) (push) Has been cancelled
ci / test distro (ghcr.io/void-linux/void-glibc:latest) (push) Has been cancelled
ci / test distro (opensuse/tumbleweed:latest) (push) Has been cancelled
ci / test distro (ubuntu:20.04) (push) Has been cancelled
ci / test distro (ubuntu:24.04) (push) Has been cancelled
ci / publish wheels (push) Has been cancelled
Xvfb's bundled libGLdispatch is hardcoded to look for DRI drivers under /usr/lib64/dri (the AlmaLinux 8 layout). On Debian/Ubuntu they live in /usr/lib/x86_64-linux-gnu/dri, so the GL provider fails to load and the server brings up without the GLX extension — which silently breaks any GLX client (raylib/GLFW). Set LIBGL_DRIVERS_PATH from the wrapper to a list of standard distro paths so the host's swrast driver is found. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
dependencies
a central repo for vendoring all third party dependencies for comma projects.
since all our projects are Python, we wrap each vendored dependency as a pip package. git clone and uv sync is all you need.
motivations for this approach
apt-getis slowapt-getupdates its packages on a schedule we don't controlapt-getpackage versions don't matchbrewversionsapt-getdoesn't come with Arch Linuxapt-getpackages come with more than we need, bloating our project footprint
uv, as opposed to apt-get, brew, and friends, is fast and already used in our projects.
we target the following platforms:
- Linux x86_64
- Linux aarch64
- Darwin aarch64 (Apple Silicon)
contributions welcome for other platforms!
usage
dependencies = [
# use per-package release branches for pre-built wheels
"capnproto @ git+https://github.com/commaai/dependencies.git@release-capnproto#subdirectory=capnproto",
"ffmpeg @ git+https://github.com/commaai/dependencies.git@release-ffmpeg#subdirectory=ffmpeg",
# use the master branch to build the package on pip install
"capnproto @ git+https://github.com/commaai/dependencies.git@master#subdirectory=capnproto",
"ffmpeg @ git+https://github.com/commaai/dependencies.git@master#subdirectory=ffmpeg",
]
workflow
to add a new package:
- start a new top-level directory as a new package
./test.shtests the building of all packages- on pushes to
master, wheels are built for our target platforms and pushed to a GitHub release - each
release-<package>branch contains a single shim package, so old lockfiles keep resolving even as new packages are added
Description
Releases
2
libusb/v1.0.29
Latest
Languages
Python
60%
Shell
40%