• Salsa CI job 'missing-breaks' to be enabled by default starting March 1

    From =?UTF-8?B?T3R0byBLZWvDpGzDpGluZW4=?@21:1/5 to All on Tue Feb 25 17:20:01 2025
    Hi all package maintainers who use Salsa CI,

    Salsa CI has had for many years the job 'missing-breaks' that
    complements piuparts by checking that the files a package introduce
    don't clash with files shipped by any other package in the
    distribution without having proper Breaks/Replaces in the
    `debian/control` file. This job works well, being quick to run and has
    had zero false positives in our experience.

    We plan to enable this job next weekend, but allow the job to fail. In
    a month from now we plan to switch it to enforcing mode so that this
    job must pass for the pipeline to pass.

    If you have any comments, feel free to reply to this email thread or
    take part in the discussion at https://salsa.debian.org/salsa-ci-team/pipeline/-/merge_requests/578

    ## Schedule

    1. March 1st: Enable this job by default, but in allow_failure mode,
    making Salsa CI yellow on packages that fail on this job
    2. March 31st: Remove the allow_failure mode, potentially making the
    Salsa CI red for packages that fail on this job

    ## Error examples

    Example output when end users run into this category of issues:

    $ apt upgrade
    ...
    Unpacking example (from .../foo_1.0-1_all.deb) ...
    dpkg: error processing /var/cache/apt/archives/foo_1.0-1_all.deb (--unpack):
    trying to overwrite '/usr/share/man/man8/example.8.gz', which is also
    in package bar 2.2

    Example output from the job on failure:

    $ check_for_missing_breaks_replaces.py -o
    ${WORKING_DIR}/missing_breaks.xml --changes-file
    ${WORKING_DIR}/*.changes
    [ERROR] Missing Breaks/Replaces found
    [ERROR] foo conflicts with bar files: {'/usr/share/man/man8/example.8.gz'}


    PS. If you are interested in many smaller improvements soon landing in
    Salsa CI, you are welcome to read and comment (and review) the 32
    currently open MRs at https://salsa.debian.org/salsa-ci-team/pipeline/-/merge_requests

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Simon Richter@21:1/5 to All on Tue Feb 25 18:40:01 2025
    Hi,

    can this be fixed to suggest Conflicts instead of Breaks/Replaces if the file in the other package is still shipped in the current version?

    Breaks/Replaces implies that ownership should be transferred from the other package to this one. This is most often correct, but care needs to be taken to not build a Replaces loop, something that Conflicts nicely avoids.

    Also, unversioned Breaks, Conflicts and Replaces should give a warning at least.

       Simon

    <html>
    <head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    </head>
    <body>
    <span dir="ltr" style="margin-top:0; margin-bottom:0;">Hi,</span>
    <br>
    <br><span dir="ltr" style="margin-top:0; margin-bottom:0;">can this be fixed to suggest Conflicts instead of Breaks/Replaces if the file in the other package is still shipped in the current version?</span>
    <br>
    <br><span dir="ltr" style="margin-top:0; margin-bottom:0;">Breaks/Replaces implies that ownership should be transferred from the other package to this one. This is most often correct, but care needs to be taken to not build a Replaces loop, something
    that Conflicts nicely avoids.</span>
    <br>
    <br><span dir="ltr" style="margin-top:0; margin-bottom:0;">Also, unversioned Breaks, Conflicts and Replaces should give a warning at least.</span>
    <br>
    <br><span dir="ltr" style="margin-top:0; margin-bottom:0;">&nbsp;&nbsp; Simon</span>
    <br>
    </body>
    </html>

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