You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
@@ -18,7 +36,7 @@ This repository is under active development; see [pulse](https://github.com/phil
18
36
19
37
## Description
20
38
21
-
### Image variants
39
+
### Image flavors
22
40
23
41
The following devcontainers are published towards the [GitHub Container Registry](https://ghcr.io/):
24
42
@@ -45,6 +63,27 @@ Next to the Rust ecosystem there is support for code-coverage measurement, mutat
45
63
46
64
For embedded development and flashing and debugging [probe-rs](https://probe.rs/) and [flip-link](https://github.com/knurling-rs/flip-link) are included.
47
65
66
+
### Versioning
67
+
68
+
The amp-devcontainer repository follows a [semantic versioning](https://semver.org/spec/v2.0.0.html) strategy for its container images. This ensures clear communication of updates and compatibility. The versioning format used is `<major>.<minor>.<patch>`. Released containers are tagged with `<major>`, `<major>.<minor>`, `<major>.<minor>.<patch>` and `v<major>.<minor>.<patch>`. The latest build on the default branch is tagged with `edge` and pull request builds are tagged with `pr-<number>`.
Released containers will never be cleaned-up, pull request builds are cleaned up when the pull request is merged, and edge builds may be cleaned up after being stale for a while.
80
+
81
+
The release notes always contain an overview of the corresponding image versions that included the full SHA next to the version number. This makes it possible for humans to easily see what version is used while still pinning to an exact version. This is the recommended way to refer to an image.
82
+
83
+
All container images are included in a release. This might change in the future when the need arises to have separate releases per container.
84
+
85
+
This versioning strategy is implemented as GitHub Actions workflows, ensuring consistency and security across releases. Only the GitHub Action workflow is allowed to create a release, and the resulting images are [signed](#verify-image-signature).
86
+
48
87
### Visual Studio Code
49
88
50
89
Both containers can be used in Visual Studio Code or GitHub Codespaces without any additional configuration. All included tools are set-up 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).
@@ -117,6 +156,17 @@ The resulting containers can be used in a `.devcontainer.json` file or in a `.de
117
156
}
118
157
```
119
158
159
+
### Continuous integration
160
+
161
+
The resulting containers can be used in a GitHub workflow by using the [`container`](https://docs.github.com/en/actions/writing-workflows/choosing-where-your-workflow-runs/running-jobs-in-a-container) property on a job.
0 commit comments