debdiff

# Workflow `debdiff`

This workflow schedules DebDiff tasks to compare packages from the `original` collection against those provided in `source_artifact` and `binary_artifacts`. A single DebDiff task is scheduled for the `source_artifact`, and one DebDiff task is scheduled per architecture present in the `binary_artifacts`, provided a corresponding package exists in the `original` collection with a compatible architecture.

Note

Architectures are considered compatible when they are equal, or when one is `all` and the other is `any` (to account for changes in a binary package’s declared architecture across versions).

- `task_data`:

  - `source_artifact` (Single lookup, required): the debian:source-package or debian:upload artifact to use as the new version in the comparison; it will be compared to the original source package found in `original` collection. `source_artifact` is also used to identify binary packages built by the original source, allowing the workflow to detect removed binaries.

  - `binary_artifacts` (Multiple lookup, optional): the debian:upload or debian:binary-package artifacts to use as the new versions in the comparisons; each will be compared to the corresponding original package (with a compatible architecture) found in `original` collection.

  - `original` (Single lookup, required): debian:suite collection in which to look up the original packages

  - `extra_flags` (optional): a list of command-line flags to be passed to each scheduled DebDiff task

  - `arch_all_build_architecture` (string, defaults to `amd64`): concrete architecture on which to run tasks for source packages or binary packages with `Architecture: all`.

  - `backend` (string, optional): see DebDiff

  - `vendor` (string, required): the distribution vendor, used to build `environment` for DebDiff

  - `codename` (string, required): the distribution codename, used to build `environment` for part of DebDiff

The workflow computes dynamic metadata as:

- subject: package name of `source_artifact`

- parameter_summary: name of debian suite: old_version → new_version

- source_artifact_id: id of the source artifact

- binary_artifacts_ids: ids of the binary artifacts

- original_id: id of the original artifact

The workflow status will be:

  - `Success` or `Failure`: `Failure` if any of the DebDiff scheduled tasks returned `Failure`, otherwise `Success`. Note that the workflow will not schedule any DebDiff task if `original` does not contain a matching package for either `source_artifact` or any of the `binary_artifact`.