+
[](https://github.com/philips-software/amp-devcontainer/actions/workflows/linting-formatting.yml) [](https://github.com/philips-software/amp-devcontainer/actions/workflows/continuous-integration.yml) [](https://www.bestpractices.dev/projects/9267) [](https://securityscorecards.dev/viewer/?uri=github.com/philips-software/amp-devcontainer)
-
+
+-- Amplify! your developer experience
+
+
+
+# amp-devcontainer
## Table of Contents
@@ -24,14 +38,14 @@
## Overview
-This repository contains [devcontainers](https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers) tailored towards modern, embedded, software development.
+This repository contains [devcontainers](https://docs.github.com/en/codespaces/setting-up-your-project-for-codespaces/introduction-to-dev-containers) tailored towards modern software development.
### Key Features
- **Batteries Included** 🔋: Pre-configured tools for local development and continuous integration.
- **Developer Experience** 👩💻: Minimal set-up time and maximal shift-left.
- **Multi-platform Support** ⚙️: Compatible with x64 and arm64 hardware on Windows, Linux, and macOS.
-- **Image Flavors** 🍨: Dedicated containers for C++ and Rust development.
+- **Image Flavors** 🍨: Dedicated containers for multiple development workloads.
- **IDE Integration** 💻: Fully compatible with GitHub Codespaces and VS Code.
- **Semantic Versioning** 🔢: Clear versioning strategy for container images.
- **Secure** 🔒: Emphasis on supply-chain security and compatible with Dependabot.
@@ -68,16 +82,16 @@ It consolidates common tooling (e.g. certificates and test tooling) so that the
#### amp-devcontainer-cpp
-The amp-devcontainer-cpp built from this repository contains compilers and tools to facilitate modern, embedded, C++ development.
-The amp-devcontainer-cpp includes support for host- and cross-compilation using gcc, arm-gcc and clang compilers.
-Next to the compilers there is support for package management (using [CPM.cmake](https://github.com/cpm-cmake/CPM.cmake) and [Conan](https://conan.io/)) code-coverage measurement, mutation testing (using [mull](https://github.com/mull-project/mull)), fuzzing (using [libfuzzer](https://www.llvm.org/docs/LibFuzzer.html)) and static analysis and formatting (clang-format, clang-tidy, clangd, include-what-you-use).
+The amp-devcontainer-cpp image flavor contains compilers and tools to facilitate modern, embedded, C++ development.
+This image flavor includes support for host- and cross-compilation using gcc, arm-gcc and clang compilers.
+Next to the compilers there is support for package management (using [CPM.cmake](https://github.com/cpm-cmake/CPM.cmake) and [Conan](https://conan.io/)), code-coverage measurement, mutation testing (using [mull](https://github.com/mull-project/mull)), fuzzing (using [libfuzzer](https://www.llvm.org/docs/LibFuzzer.html)) and static analysis and formatting (clang-format, clang-tidy, clangd, include-what-you-use).
The default build system is set up to use CMake, Ninja and CCache.
#### amp-devcontainer-rust
-The amp-devcontainer-rust built from this repository contains the Rust ecosystem and additional tools to facilitate, embedded, Rust development.
-The amp-devcontainer-rust includes support for host- and cross-compilation.
+The amp-devcontainer-rust image flavor contains the Rust ecosystem and additional tools to facilitate Rust development.
+This image flavor includes support for host- and cross-compilation.
Next to the Rust ecosystem there is support for code-coverage measurement, mutation testing (using [cargo-mutants](https://mutants.rs/)), fuzzing (using [rust-fuzz](https://rust-fuzz.github.io/book/introduction.html)) and static analysis and formatting (clippy, rustfmt).
For embedded development and flashing and debugging [probe-rs](https://probe.rs/) and [flip-link](https://github.com/knurling-rs/flip-link) are included.
@@ -113,7 +127,7 @@ Only the GitHub Action workflow is allowed to create a release, and the resultin
### Visual Studio Code
-All containers can be used in Visual Studio Code or GitHub Codespaces without any additional configuration.
+All container images can be used in Visual Studio Code or GitHub Codespaces without any additional configuration.
All included tools are preconfigured and necessary plug-ins will be installed at container start.
This behavior is implemented by appending devcontainer metadata to an image label according to these [specifications](https://containers.dev/implementors/reference/#labels).
It is possible to override, amend or change the options following this [merge logic](https://containers.dev/implementors/spec/#merge-logic).