• Review of debusine's lintian related API

    From Raphael Hertzog@21:1/5 to All on Thu Oct 12 19:10:01 2023
    Hello Axel, Bastien, Lucas, and other members of the lintian and QA teams,

    it's been a long time that I have been interested in building some infrastructure to manage scheduling and distribution of Debian-related
    build, QA and data collection tasks to a network of worker machines. I
    called this project debusine:
    https://salsa.debian.org/freexian-team/debusine/

    It has been started a while ago but thanks to external funding, its
    development pace is about to increase significantly. It is being developed
    by Freexian with the intention of giving people access to a range of pre-configured tools and workflows running on remote hardware.

    We want to make it easy for Debian contributors to leverage all the great
    QA tools that Debian provides. We want to improve and modernize Debian's
    build infrastructure, while also enabling distribution-wide experiments,
    custom package repositories and custom workflows with advanced package
    reviews.

    Analyzing lintian results is an important step in any serious package
    review workflow and as such, our current milestone plans to make it
    possible to run lintian on debusine workers. As lintian and QA experts, we would love to have your feedback on our plans, in particular on the public interface that we have designed.

    To give a bit more context, as a debusine user with an API key, you can
    submit "work requests". Each work request has a "task" assigned to it
    (e.g. sbuild, autopkgtest, lintian) and some JSON data that gives more
    details about the specific task. The structure of the JSON data varies
    from task to task but it basically defines the public API that lets users schedule work requests to debusine. The result of the work request
    (including any artifact generated) will then be stored in the database and
    made available for consumption by the user through the API.

    As an example, here's how the data could look like for a simple lintian
    work request:

    {
    "input": {
    "source_artifact_id": 1234, # References the source package to analyze
    "binary_artifact_id": 1235, # References the set of binary packages to analyze
    },
    "target_distribution": "debian:unstable",
    "lintian_version": "2.116.3", # Or minimal_lintian_version ?
    "fail_on_severity": "error",
    }

    We are currently drafting the expected structure of that JSON data for
    lintian (and autopkgtest) work requests in this merge request and we would appreciate if you could review it: https://salsa.debian.org/freexian-team/debusine/-/merge_requests/300

    I have left some open questions in the document and there are some
    unresolved review threads that have interesting questions too.

    We are aware that this duplicates work made by Lucas in the context of
    UDD, but we are trying to achieve a high level of integration and sharing worker setups across different QA tools, and duplication seems unavoidable
    in that context. We are certainly eager to cooperate and make it easy for
    UDD and debusine to work hand-in-hand. A future milestone will make it
    easier to export distribution-wide summary of data collected through such
    work requests.

    We plan to provide a debusine.debian.net/org instance accessible to all
    Debian developers in the near future, so you will be able to experiment
    and make use of the API that you will have helped to shape.

    If you have questions about debusine, don't hesitate to ask. If you are interested to follow along and/or help, you are more than welcome to: https://freexian-team.pages.debian.net/debusine/devel/contributing.html

    Have a nice day,
    Raphaël.

    PS: You might find it useful to browse the documentation to learn more about the
    goals and the high level concepts: https://freexian-team.pages.debian.net/debusine/devel/why.html https://freexian-team.pages.debian.net/debusine/design/index.html

    --
    ⢀⣴⠾⠻⢶⣦⠀ Raphaël Hertzog <[email protected]>
    ⣾⠁⢠⠒⠀⣿⡁
    ⢿⡄⠘⠷⠚⠋ The Debian Handbook: https://debian-handbook.info/get/
    ⠈⠳⣄⠀⠀⠀⠀ Debian Long Term Support: https://deb.li/LTS

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)