11# dependencies
22
3- a central repo for managing and [ vendoring] ( https://htmx.org/essays/vendoring/ ) third party dependencies for all comma projects.
3+ a central repo for [ vendoring] ( https://htmx.org/essays/vendoring/ ) all third party dependencies for comma projects.
44
55since all our projects are Python, we wrap each vendored dependency as a pip package. ` git clone ` and ` uv sync ` is all you need.
66
@@ -9,8 +9,7 @@ motivations for this approach
99- ` apt-get ` updates its packages on a schedule we don't control
1010- ` apt-get ` package versions don't match ` brew ` versions
1111- ` apt-get ` doesn't come with Arch Linux
12- - ` apt-get ` doesn't always have the exact package we need
13- - ` apt-get ` packages are often bloated
12+ - ` apt-get ` packages come with more than we need, bloating our project footprint
1413
1514<!--
1615this critically adds friction to adding dependencies to our project
@@ -27,6 +26,7 @@ we target the following platforms:
2726
2827contributions welcome for other platforms!
2928
29+ <!--
3030## packages
3131
3232| package | description |
@@ -36,13 +36,19 @@ contributions welcome for other platforms!
3636| ffmpeg | video encode and decode for openpilot |
3737| git-lfs | for tracking large files in openpilot |
3838| zeromq | bridging the openpilot IPC between different hosts |
39+ -->
3940
4041## usage
4142
4243``` python
4344dependencies = [
45+ # use the releases branch for pre-built wheels
4446 " capnproto @ git+https://github.com/commaai/dependencies.git@releases#subdirectory=capnproto" ,
4547 " ffmpeg @ git+https://github.com/commaai/dependencies.git@releases#subdirectory=ffmpeg" ,
48+
49+ # use the master branch to build the package on pip install
50+ " capnproto @ git+https://github.com/commaai/dependencies.git@master#subdirectory=capnproto" ,
51+ " ffmpeg @ git+https://github.com/commaai/dependencies.git@master#subdirectory=ffmpeg" ,
4652]
4753```
4854
0 commit comments