Affects Version/s: None
Fix Version/s: None
Epic Name:Full vs partial update reporting
Epic Total Estimate:110
There are multiple reports from users where they want to see both the 1) current system version and 2) application versions running. In particular, it is very undesireable that the current system version (e.g. "os-release-2.20") is overwritten once an application update is installed on top of it (e.g. using single-file update).
This is a complex problem and for the first iteration we will only focus on the reporting aspect of this: make sure versions of both system and application updates are reported (see the attached slide for an example).
- Current software version stays until a system (full) image update is deployed
- Current application (partial) update versions are reported separately as part of inventory
- Existing Update Modules in Mender Hub written by us are adjusted to support version reporting
There is support in the update module spec for this already, but it's not implemented. Revoked in the feature/partial_updates branch, we won't use it.
- Names for all types of updates are stored in the artifact_provides structure in the Artifact, under the .version suffix:
- All rootfs-image Artifacts get a rootfs-image.version key.
- All other Artifacts get a rootfs-image.MODULE.version key, where MODULE is the payload type.
- Introduce a new field, clears_artifact_provides, which acts as a glob pattern, and clears artifact_provides that match it.
- All rootfs-image Artifacts by default get a "clears_artifact_provides": "rootfs-image.*" in them.
- All other Artifacts by default get a "clears_artifact_provides": "rootfs-image.MODULE.*" in them, where MODULE is the payload type.
- There is a mender-artifact option to set, and to clear custom clears_artifact_provides entries.
- There is a mender option to show current artifact_provides.
- There is a default inventory script which reports all artifact_provides.
- There is a mender-artifact option, --software-name, which changes what the MODULE string will be, in both artifact_provides and clears_artifact_provides.
- There is a mender-artifact option, --software-version, which sets the value of the .version field.
- If only --artifact-name is given when creating artifact, its value is used instead of --software-version.
- GUI displays artifact_provides information for Artifacts (for devices it should already be displayed through normal inventory).
Feature branch name: feature/partial_updates