All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
All container images published from this repository share the repository version. The legacy per-image version numbers from the archived pre-monorepo repositories (ada 2.2.3, ada-system 2.2.3, cpp 1.1.2, cpp-system 1.1.2, go 1.1.0, rust 1.0.2) are retired.
Cosmetic cleanup following deletion of the archived pre-monorepo repositories. No runtime behavior changes in any image.
- CHANGELOG.md: drop dead hyperlinks to the retired repositories in the
Previous Historysubsection of 1.0.0; keep the historical names as plain-text references for context. - Dockerfile headers (6 files):
# Repository: dev_container_<lang>updated to# Repository: dev_containers. - Per-language Makefiles (4 files): wrapper comment and
PROJECT_NAMEupdated to referencedev_containers.PROJECT_NAMEonly affectsmake archivetarball naming; image names are unchanged. - Hello-world examples (4 files): stdout string updated from
Hello from <Lang> in dev_container_<lang>!toHello from <Lang> in dev_containers!. ada/examples/hello_ada/alire.toml:websiteURL updated tohttps://github.com/abitofhelp/dev_containers.
First unified release of the consolidated dev containers monorepo. All six
container images (dev-container-ada, dev-container-ada-system,
dev-container-cpp, dev-container-cpp-system, dev-container-go,
dev-container-rust) ship at version 1.0.0.
- Monorepo consolidating four dev container projects: Ada, C++, Go, Rust.
- Shared
entrypoint.shfor runtime-adaptive user identity. - Shared
Makefile.commonwith auto-detected container CLI (macOS/Windows -> docker, Linux -> nerdctl). - Sequential container naming via
container_run.pyshared launcher (e.g.,dev-container-ada-1,-2,-3). - Podman rootless support with
--userns=keep-id. - Linux host prerequisites: AppArmor userns fix, rootless containerd install, loginctl linger, XDG_RUNTIME_DIR detection.
- Unified README.md, USER_GUIDE.md, and CHANGELOG.md.
- Matrix GitHub Actions for build and publish across all images.
workflow_dispatchtrigger ondocker-build.ymlfor manual reruns.- Reproducibility Policy section in README.md documenting version-pinning requirements for tools installed in Dockerfiles.
- SHA256 verification for Typst, Bazelisk, Buf, golangci-lint, and cargo-binstall downloads.
TYPST_SHA256_AMD64/TYPST_SHA256_ARM64build args; Typst install is now architecture-aware across all arm64-capable images (previously downloaded the x86_64 binary unconditionally).release.ymlGitHub Actions workflow that creates a GitHub Release from CHANGELOG.md onv*tag push.
- Pinned
go installtool versions (gopls v0.21.1, delve v1.26.1, staticcheck 2026.1, protoc-gen-go v1.36.11, protoc-gen-go-grpc v1.6.1) ingo/Dockerfile; previously installed from@latest. - Replaced
curl | shinstaller for golangci-lint with a SHA256-verified tarball download pinned to v2.11.4. - Pinned Rust toolchain to 1.95.0 in
rust/Dockerfile; previously followed thestablechannel. - Replaced
curl | bashinstaller for cargo-binstall with a SHA256-verified tarball pinned to v1.18.1. - Pinned cargo-installed tools: probe-rs-tools 0.31.0, cargo-generate 0.23.8, cargo-expand 1.0.121, sccache 0.14.0.
- Pinned vcpkg to tagged release 2026.03.18 in
cpp/Dockerfile; previously cloned HEAD of the default branch. - Pinned pytest to 9.0.3 across all six Dockerfiles; previously installed the latest version on the PyPI index at build time.
- Ada smoke test (CI and Makefile
TEST_SCRIPT/TEST_SCRIPT_SYSTEM) now usesalr runinstead of invokinggprbuild -Pdirectly.gprbuild -Pfails on a fresh clone because the Alire-generatedconfig/hello_ada_config.gprhas not yet been created.
| Image | Base | Architectures | Embedded |
|---|---|---|---|
| dev-container-ada | Ubuntu 22.04 + Alire-managed GNAT 15.2.1 | amd64 | Cortex-M/A |
| dev-container-ada-system | Ubuntu 24.04 + APT gnat-13 | amd64, arm64 | Cortex-M/A |
| dev-container-cpp | Ubuntu 24.04 + Clang 20 + CMake + vcpkg | amd64, arm64 | Cortex-M/A |
| dev-container-cpp-system | Ubuntu 24.04 + GCC 13 + Clang 18 | amd64, arm64 | Cortex-M/A |
| dev-container-go | Ubuntu 24.04 + Go 1.26.1 + Bazelisk + protobuf | amd64, arm64 | — |
| dev-container-rust | Ubuntu 24.04 + Rust 1.95.0 via rustup | amd64, arm64 | Cortex-M/A |
The pre-monorepo per-language repositories (dev_container_ada,
dev_container_cpp, dev_container_go, dev_container_rust) have been
retired and deleted. Their histories were consolidated into this
repository's commit stream at the time of the monorepo migration.