ConflictsReplacesChecker

Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.

Summary

File conflicts between packages are a common source of error in ubuntu. The conflicts checker tool can automatically detect overlapping files in packages that do not declare proper conflicts.

Use cases

Bob is a ubuntu developer who maintains package foo. This package gets split between foo and foo-core during the course of the development without declaring a correct Replaces line. The conflicts checker notices this and display it on its status page. Malory fixes the package shortly after the upload.

Scope

The tool will check for file conflicts by examining the packages and storing the results in a database. The results will be made available for the developers.

Design

The current implementation puts its raw results to http://conflictchecker.ubuntu.com/possible-conflicts/

Those results need to be post-processed to make the easier to read. The following simplifications are planed:

  • Reduce the architecture information. The common case is that all architectures have the same conflicts, if that is the case, show only a single item.
  • Not every conflict is relevant, we care only for certain upgrade pathes. Irrelevant information should be filtered out.
  • A page with links to action items should be generated from the list of conflicts. Each conflict gets its own page with a hint for a possible fix.
  • In addition to the "what packages do conflict" view, there should be a
    • "what files cause conflicts" view that is calculated by most common file name across multiple sets, then shortest name, then alpha

In addition to this, the conflicts checker needs to be improved in the area of diversions. To do that, packages with diversion will be installed in a VM and the result of the diversion and the hash of the maintainer script that caused the diversion will be recorded.

Implementation

Most of the actual conflict implementation is already done. The post-processing of the raw data is missing.

BoF agenda and discussion

Check if a new upload has all necessary conflicts or replaces in place

  • for a new upload, if it fits into the uploaded distribution
  • for a release, if all necessary replaces/conflicts exist for a dist upgrade from foo, foo-security, foo-updates.

Inform the uploader/file bugs.

The needed information is available in the Contents file for the distro and the file listing for the uploaded binary packages. Information about diversions needs to be made available.


CategorySpec

ConflictsReplacesChecker (last edited 2009-08-19 22:43:51 by ppp245-86)