c835b206c6256e56af1757bbcd839ca2255f39d6
The shim setup.py extracts .so files from the wheel, but the generated pyproject.toml didn't include them in package-data, so they were excluded when uv built a local wheel from the source. Co-authored-by: Claude Opus 4.6 <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 the releases branch for pre-built wheels
"capnproto @ git+https://github.com/commaai/dependencies.git@releases#subdirectory=capnproto",
"ffmpeg @ git+https://github.com/commaai/dependencies.git@releases#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 - the
releasesbranch contains shim packages that allow pointing to a git branch and always getting the appropriate wheel for your platform
Description
Releases
2
libusb/v1.0.29
Latest
Languages
Python
60%
Shell
40%