{"id":22038306,"url":"https://github.com/opencyphal/docker_toolchains","last_synced_at":"2025-05-07T21:24:46.213Z","repository":{"id":47936134,"uuid":"242056541","full_name":"OpenCyphal/docker_toolchains","owner":"OpenCyphal","description":"A repository for building and releasing docker containers that contain the toolchains used by the OpenCyphal project.","archived":false,"fork":false,"pushed_at":"2025-03-02T01:44:14.000Z","size":84127,"stargazers_count":2,"open_issues_count":2,"forks_count":2,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-05-07T02:22:31.670Z","etag":null,"topics":["containers","cyphal","docker","opencyphal","toolchains"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpenCyphal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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},"funding":{"open_collective":"opencyphal","github":"OpenCyphal"}},"created_at":"2020-02-21T04:47:35.000Z","updated_at":"2025-03-02T01:12:22.000Z","dependencies_parsed_at":"2024-04-13T17:05:09.997Z","dependency_job_id":"39870a97-b370-4115-8da9-04b0ac309193","html_url":"https://github.com/OpenCyphal/docker_toolchains","commit_stats":{"total_commits":53,"total_committers":6,"mean_commits":8.833333333333334,"dds":"0.24528301886792447","last_synced_commit":"27c08f060ae86633d8443b451a9ed9058b6f1bee"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCyphal%2Fdocker_toolchains","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCyphal%2Fdocker_toolchains/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCyphal%2Fdocker_toolchains/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpenCyphal%2Fdocker_toolchains/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpenCyphal","download_url":"https://codeload.github.com/OpenCyphal/docker_toolchains/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252955755,"owners_count":21831168,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["containers","cyphal","docker","opencyphal","toolchains"],"created_at":"2024-11-30T11:05:26.291Z","updated_at":"2025-05-07T21:24:46.202Z","avatar_url":"https://github.com/OpenCyphal.png","language":"Python","funding_links":["https://opencollective.com/opencyphal","https://github.com/sponsors/OpenCyphal"],"categories":[],"sub_categories":[],"readme":"![OpenCyphal](opencyphal_logo.svg) OpenCyphal Containerized Toolchains\n===================\n\nThis repository contains the Dockerfiles, instructions, and some utilities for\nbuilding containers to be used as common toolchains and development environments\nfor OpenCyphal projects. These containers are published to the [opencyphal\norganization on Github](https://github.com/orgs/OpenCyphal/packages) and are used\nby the build automation for OpenCyphal projects. You can use these same\ncontainers to get consistent build results in your local development environment.\n\nTo allow hosting of multiple container builds from a single repo each toolchain container\nis assigned a prefix. For every release event in this repo the workflow triggered is based\non that prefix in the release tag. For example, by creating a release with the tag `ts18.4.1-alpha`\nthe release workflow for the `toolshed` container will be triggered.\n\n### opencyphal/toolshed:ts\n\nThe [Open Cyphal toolshed\ncontainer](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed)\nis based on Ubuntu and provides the necessary compilers and utilities to build and run OpenCyphal C or C++ projects\nlike [libcanard](https://github.com/OpenCyphal/libcanard) and\n[Nunavut](https://github.com/OpenCyphal/nunavut).\n\n#### Supported Versions\n\n| tag      | Python | GCC (native) | GCC (arm-none-eabi) | Clang (native) | Cmake | Host Platforms | Other Utilities |\n|----------|--------|--------------|---------------------|----------------|-------|----------------|-----------------|\n| [ts24.4.3](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | \u003cul\u003e\u003cli\u003e3.12\u003c/li\u003e\u003cli\u003e3.10\u003c/li\u003e\u003c/ul\u003e | \u003cul\u003e\u003cli\u003e13.3.0\u003c/li\u003e\u003cli\u003e12.3.0\u003c/li\u003e\u003cli\u003e11.4.0\u003c/li\u003e\u003cli\u003e10.5.0\u003c/li\u003e\u003cli\u003e7.5.0\u003c/li\u003e\u003c/ul\u003e| 13.3.1 | \u003cul\u003e\u003cli\u003e19.1.7\u003c/li\u003e\u003cli\u003e18.1.8\u003c/li\u003e\u003c/ul\u003e | 3.31.5 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003cli\u003elinux/arm64\u003c/li\u003e\u003c/ul\u003e | \u003cul\u003e\u003cli\u003eJLink V816\u003c/li\u003e\u003cli\u003ecppcheck-2.13\u003c/li\u003e\u003cli\u003eyakut 0.13.0\u003c/li\u003e\u003cli\u003elibpcap0.8-dev\u003c/li\u003e\u003cli\u003enetwork-tools\u003c/li\u003e\u003cli\u003ecan-utils\u003c/li\u003e\u003cli\u003edoxygen 1.13.2\u003c/li\u003e\u003cli\u003etox\u003c/li\u003e\u003cli\u003enox\u003c/li\u003e\u003cli\u003egovr\u003c/li\u003e\u003cli\u003egcc-multilib (amd64 only)\u003c/li\u003e\u003c/ul\u003e |\n| [ts24.4.2](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | \u003cul\u003e\u003cli\u003e3.12\u003c/li\u003e\u003cli\u003e3.10\u003c/li\u003e\u003c/ul\u003e | \u003cul\u003e\u003cli\u003e13.3.0\u003c/li\u003e\u003cli\u003e12.3.0\u003c/li\u003e\u003cli\u003e11.4.0\u003c/li\u003e\u003cli\u003e10.5.0\u003c/li\u003e\u003cli\u003e7.5.0\u003c/li\u003e\u003c/ul\u003e| 13.3.1 | \u003cul\u003e\u003cli\u003e19.1.7\u003c/li\u003e\u003cli\u003e18.1.8\u003c/li\u003e\u003c/ul\u003e | 3.31.5 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003cli\u003elinux/arm64\u003c/li\u003e\u003c/ul\u003e | \u003cul\u003e\u003cli\u003eyakut 0.13.0\u003c/li\u003e\u003cli\u003elibpcap0.8-dev\u003c/li\u003e\u003cli\u003enetwork-tools\u003c/li\u003e\u003cli\u003ecan-utils\u003c/li\u003e\u003cli\u003edoxygen 1.13.2\u003c/li\u003e\u003cli\u003egcc-multilib (amd64 only)\u003c/li\u003e\u003c/ul\u003e |\n| [ts24.4.1](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | \u003cul\u003e\u003cli\u003e3.12\u003c/li\u003e\u003cli\u003e3.10\u003c/li\u003e\u003c/ul\u003e | \u003cul\u003e\u003cli\u003e13.3.0\u003c/li\u003e\u003cli\u003e12.3.0\u003c/li\u003e\u003cli\u003e11.4.0\u003c/li\u003e\u003cli\u003e10.5.0\u003c/li\u003e\u003cli\u003e7.5.0\u003c/li\u003e\u003c/ul\u003e| 13.3.1 | \u003cul\u003e\u003cli\u003e19.1.7\u003c/li\u003e\u003cli\u003e18.1.8\u003c/li\u003e\u003c/ul\u003e | 3.31.5 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003cli\u003elinux/arm64\u003c/li\u003e\u003c/ul\u003e | \u003cli\u003ecan-utils\u003c/li\u003e\u003cli\u003edoxygen 1.13.2\u003c/li\u003e\u003cli\u003etox\u003c/li\u003e\u003cli\u003enox\u003c/li\u003e\u003cli\u003egovr\u003c/li\u003e\u003cli\u003egcc-multilib (amd64 only)\u003c/li\u003e\u003c/ul\u003e |\n| [ts22.4.10](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | 3.10 | 12.3.0 | 13.3.1 | 18.1.3 | 3.30.1 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003cli\u003elinux/arm64\u003c/li\u003e\u003c/ul\u003e | \u003cul\u003e\u003cli\u003eqemu\u003c/li\u003e\u003cli\u003ecan-utils\u003c/li\u003e\u003cli\u003edoxygen 1.10.0\u003c/li\u003e\u003cli\u003envm\u003c/li\u003e\u003cli\u003enode 20.x\u003c/li\u003e\u003cli\u003enox\u003c/li\u003e\u003cli\u003egovr\u003c/li\u003e\u003cli\u003egcc-multilib (amd64 only)\u003c/li\u003e\u003c/ul\u003e |\n| [ts22.4.8](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | 3.10 | 12.3.0 | (N/A) | 18.1.3 | 3.22.1 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003cli\u003elinux/arm64\u003c/li\u003e\u003c/ul\u003e | \u003cul\u003e\u003cli\u003eqemu\u003c/li\u003e\u003cli\u003ecan-utils\u003c/li\u003e\u003cli\u003edoxygen 1.10.0\u003c/li\u003e\u003cli\u003envm\u003c/li\u003e\u003cli\u003enode 20.x\u003c/li\u003e\u003cli\u003enox\u003c/li\u003e\u003cli\u003egovr\u003c/li\u003e\u003cli\u003egcc-multilib (amd64 only)\u003c/li\u003e\u003c/ul\u003e |\n| [ts22.4.7](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toolshed) | 3.10 | 12.3.0 | (N/A) | 18.1.3 | 3.22.1 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003cli\u003elinux/arm64\u003c/li\u003e\u003c/ul\u003e | \u003cul\u003e\u003cli\u003eqemu\u003c/li\u003e\u003cli\u003ecan-utils\u003c/li\u003e\u003cli\u003edoxygen 1.10.0\u003c/li\u003e\u003cli\u003envm\u003c/li\u003e\u003cli\u003enode 20.x\u003c/li\u003e\u003cli\u003enox\u003c/li\u003e\u003cli\u003egovr\u003c/li\u003e\u003c/ul\u003e |\n\n\nYou can use this in your workflow yaml like this:\n\n```none\njobs:\n  my-job:\n    runs-on: ubuntu-latest\n    container: ghcr.io/opencyphal/toolshed:ts22.4.7\n```\n\n\n### opencyphal/texer:te\n\nThe [Open Cyphal texer\ncontainer](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/texer)\nis based on Ubuntu and provides the necessary compilers and utilities to author and publish OpenCyphal [LaTeX](https://www.latex-project.org/) documents like [the specification](https://github.com/OpenCyphal/specification).\n\n#### Supported Versions\n\n| tag      | Python | Tex Live | git | Platforms | Other Utilities |\n|----------|--------|----------|-----|-----------|-----------------|\n| [te22.4.1](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/texer) | 3.11 | 2022 | 2.34.1 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003c/ul\u003e | \u003cul\u003e\u003cli\u003epython pygments\u003c/li\u003e\u003cli\u003elyx\u003c/li\u003e\u003cli\u003einkscape\u003c/li\u003e\u003c/ul\u003e |\n| [te20.4.1](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/texer) | 3.11 | 2019 | 2.25.1 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003c/ul\u003e | \u003cul\u003e\u003cli\u003epython pygments\u003c/li\u003e\u003cli\u003elyx\u003c/li\u003e\u003cli\u003einkscape\u003c/li\u003e\u003c/ul\u003e |\n\nYou can use this in your workflow yaml like this:\n\n```none\njobs:\n  my-job:\n    runs-on: ubuntu-latest\n    container: ghcr.io/opencyphal/texer:te20.4.1\n```\n\n\n\n ### opencyphal/toxic:tx\n\n\nThe [Open Cyphal toxic\ncontainer](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toxic)\nis based on Ubuntu and provides all modern Python3 distributions, pip, tox, and nox. It can be used to develop, test, build, and release Python projects like [nunavut](https://github.com/OpenCyphal/nunavut), [pydsdl](https://github.com/OpenCyphal/pydsdl), and [pycyphal](https://github.com/OpenCyphal/pycyphal).\n\n#### Supported Versions\n\n| tag      | Base Python | Python Versions | Tox | Nox | pip | Platforms | Other Utilities |\n|----------|-------------|-----------------|-----|-----|-----|-----------|-----------------|\n| [tx22.4.3](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toxic) | 3.11 | 3.8, 3.9, 3.10, 3.11, 3.12 3.13 | 4.13.0 | 2023.4.22 | 20.0.2 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003cli\u003elinux/arm64\u003c/li\u003e\u003c/ul\u003e | |\n| [tx22.4.2](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toxic) | 3.10 | 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 | 4.13.0 | 2023.4.22 | 20.0.2 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003cli\u003elinux/arm64\u003c/li\u003e\u003c/ul\u003e | |\n| [tx22.4.1](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toxic) | 3.8 | 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 | 4.4.5 | 2023.4.22 | 20.0.2 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003c/ul\u003e | |\n| [tx20.4.1](https://github.com/OpenCyphal/docker_toolchains/pkgs/container/toxic) | 3.8 | 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12 | 4.4.5 | (not available) | 20.0.2 | \u003cul\u003e\u003cli\u003elinux/amd64\u003c/li\u003e\u003c/ul\u003e | \u003cul\u003e\u003cli\u003esonar-scanner\u003c/li\u003e\u003c/ul\u003e |\n\n\nYou can use this in your workflow yaml like this:\n\n```none\njobs:\n  my-job:\n    runs-on: ubuntu-latest\n    container: ghcr.io/opencyphal/toxic:tx20.4.2\n```\n\n---------------------------\n\nNote that, if you create a new container in this project, the prefix cannot end with 'v'. So \"tu22.4.1\" is okay but\n\"tv28.3.1\" won't work because the release workflows elide \"v\" (as in version) by default and the container will become\n\"t28.3.1\" in packages but \"tv.28.3.1\" as a git tag.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencyphal%2Fdocker_toolchains","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopencyphal%2Fdocker_toolchains","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopencyphal%2Fdocker_toolchains/lists"}