{"id":45542436,"url":"https://github.com/commaai/dependencies","last_synced_at":"2026-04-15T01:01:38.785Z","repository":{"id":340050322,"uuid":"1035117074","full_name":"commaai/dependencies","owner":"commaai","description":"vendored dependencies, wrapped as pip packages, for all comma projects","archived":false,"fork":false,"pushed_at":"2026-03-21T18:18:49.000Z","size":171,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-03-22T07:05:31.907Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/commaai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-08-09T17:34:40.000Z","updated_at":"2026-03-21T17:53:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"adfb036e-9564-4cb0-ae0d-52e3a58b04ac","html_url":"https://github.com/commaai/dependencies","commit_stats":null,"previous_names":["commaai/dependencies"],"tags_count":28,"template":false,"template_full_name":null,"purl":"pkg:github/commaai/dependencies","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commaai%2Fdependencies","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commaai%2Fdependencies/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commaai%2Fdependencies/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commaai%2Fdependencies/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/commaai","download_url":"https://codeload.github.com/commaai/dependencies/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/commaai%2Fdependencies/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31821685,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"ssl_error","status_checked_at":"2026-04-14T18:05:01.765Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-23T04:15:24.995Z","updated_at":"2026-04-15T01:01:38.772Z","avatar_url":"https://github.com/commaai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dependencies\n\na central repo for [vendoring](https://htmx.org/essays/vendoring/) all third party dependencies for comma projects.\n\nsince all our projects are Python, we wrap each vendored dependency as a pip package. `git clone` and `uv sync` is all you need.\n\nmotivations for this approach\n- `apt-get` is slow\n- `apt-get` updates its packages on a schedule we don't control\n- `apt-get` package versions don't match `brew` versions\n- `apt-get` doesn't come with Arch Linux\n- `apt-get` packages come with more than we need, bloating our project footprint \n\n\u003c!--\nthis critically adds friction to adding dependencies to our project\n- `apt-get` installing a package is easy. is it 1MB, 10MB, or 100MB? no idea.\n- `apt-get` installing a package is much easier than adding it here. how much do you want it?\n--\u003e\n\n`uv`, as opposed to `apt-get`, `brew`, and friends, is fast and already used in our projects.\n\nwe target the following platforms:\n- Linux x86_64\n- Linux aarch64\n- Darwin aarch64 (Apple Silicon)\n\ncontributions welcome for other platforms!\n\n\u003c!--\n## packages\n\n| package           | description                                                              |\n|-------------------|--------------------------------------------------------------------------|\n| gcc-arm-none-eabi | builds [panda](https://github.com/commaai/panda) firmware for STM32 MCUs |\n| capnproto         | message serialization for openpilot                                      |\n| ffmpeg            | video encode and decode for openpilot                                    |\n| git-lfs           | for tracking large files in openpilot                                    |\n| zeromq            | bridging the openpilot IPC between different hosts                       |\n--\u003e\n\n## usage\n\n```python\ndependencies = [\n  # use per-package release branches for pre-built wheels\n  \"capnproto @ git+https://github.com/commaai/dependencies.git@release-capnproto#subdirectory=capnproto\",\n  \"ffmpeg @ git+https://github.com/commaai/dependencies.git@release-ffmpeg#subdirectory=ffmpeg\",\n\n  # use the master branch to build the package on pip install\n  \"capnproto @ git+https://github.com/commaai/dependencies.git@master#subdirectory=capnproto\",\n  \"ffmpeg @ git+https://github.com/commaai/dependencies.git@master#subdirectory=ffmpeg\",\n]\n```\n\n## workflow\n\nto add a new package:\n* start a new top-level directory as a new package\n* `./test.sh` tests the building of all packages\n*  on pushes to `master`, wheels are built for our target platforms and pushed to a GitHub release\n*  each `release-\u003cpackage\u003e` branch contains a single shim package, so old lockfiles keep resolving even as new packages are added\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommaai%2Fdependencies","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcommaai%2Fdependencies","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcommaai%2Fdependencies/lists"}