- Lintian
Lintian task
Thetask_data associated to this task can contain the following keys:
input(required): a dictionary of values describing the input data,one of the sub-keys is required but both can be given at the same timetoo.source_artifact(Single lookup, optional): thedebian:source-package ordebian:upload artifactrepresenting the source package to be tested with lintianbinary_artifacts(Multiple lookup, optional): a list ofdebian:binary-package ordebian:uploadartifacts representing the binary packages to be tested with lintian(they are expected to be part of the same source package as the oneidentified withsource_artifact)
The task computes dynamic metadata as:
subject:name of source package of
input.source_artifactorinput.binary_artifactsparameter_summary:source package name and Version
runtime_context:
what:distributionwherewhatis what got analyzed (source,binary-allorbinary-any) anddistributioniscodenameofenvironment.configuration_context:
codenameofenvironment
Note
While it’s possible to submit only a source or only a single binaryartifact, you should aim to always submit source + arch-all + arch-anyrelated artifacts to have the best test coverage as some tags can onlybe emitted when lintian has access to all of them at the same time.
environment(Single lookup with default categorydebian:environments, required):debian:system-tarball artifact that will be used to runlintian. Must havelintianinstalled.backend(optional): the virtualization backend to use, defaults toautowhere the task is free to use the most suitable backend.Supported options:incus-lxc,incus-vm,unshare.output(optional): a dictionary of values controlling some aspectsof the generated artifactssource_analysis(optional, defaults to True): indicates whetherwe want to generate thedebian:lintian artifact for thesource packagebinary_all_analysis(optional, defaults to True): same assource_analysisbut for thedebian:lintian artifactrelated toArchitecture:allpackagesbinary_any_analysis(optional, defaults to True): same assource_analysisbut for thedebian:lintian artifactrelated toArchitecture:anypackages
target_distribution(optional): the fully qualified name of thedistribution that will provide the lintian software to analyze thepackages. Defaults todebian:unstable.include_tags(optional): a list of the lintian tags that are allowed tobe reported. If not provided (or empty), defaults to all. Translates into the--tagsor--tags-fromfilecommand line option.exclude_tags(optional): a list of the lintian tags that are notallowed to be reported. If not provided (or empty), then no tags arehidden. Translates into the--suppress-tagsor--suppress-tags-fromfilecommand line option.fail_on_severity(optional, defaults toerror): if the analysis emitstags of that severity or higher, then the task will return a “failure”instead of a “success”. Valid values are (in decreasing severity)“error”, “warning”, “info”, “pedantic”, “experimental”, “overridden”.“none” is a special value indicating that we should never fail.
The lintian runs will always use the options--no-cfg--display-level">=classification"--display-experimental--info--show-overrides tocollect the full set of data that lintian can provide.
Note
Current lintian can generate “masked” tags (withM: prefix) when youuse--show-overrides. For the purpose of Debusine, we entirelyignore those tags on the basis that it’s lintian’s decision to hidethem (and not the maintainer’s decision) and as such, they don’t bringany useful information. Lintian is full of exceptions to not emit sometags and the fact that some tags rely on a modular exception mechanismthat can be diverted to generate masked tags is not useful to packagemaintainers.
For those reasons, we suggested to lintian’s maintainers to entirelystop emitting those tags inhttps://bugs.debian.org/1053892
Between 1 to 3debian:lintian artifacts will be generated (onefor each source/binary package artifact submitted) and they will have a“relates to” relationship with the corresponding artifact that has beenanalyzed.