Skip to content

Implement a way for individual repositories to control their QA requirements #772

@ferringb

Description

@ferringb

QA rules are repo specific; currently there is hardcoded awareness of the gentoo repo in pkgcheck to control certain checks, demonstrating "one size don't fit all".

See #769 ; in that case, the requestor will explicitly want that a defaulted 'on' check for their repo, something gentoo-x86 absolutely wouldn't want.

A bit like #763 , pkgcheck should be be told by the repo and involved code, what should and shouldn't be used.

These are the design constraints in my view:

  1. The format is versioned. We'll presumably never get past v1, but gentoo history is one of "getting out of the corner we backed ourselves into is a PITA".
  2. By default, pkgcheck builtin checks are enabled. The configuration is explicitly opt-out for pkgcheck bundled checks.
  3. Repo's must be able to disable built in pkgcheck checks.
  4. Repo's must be able to require checks- whether pkgcheck or provided by a third party addon (3rd party checks to be addressed later- the format must allow for this however).
  5. The format must not prevent future addition allowing configuration directives for checks. Consider StableKeywordsCheck: detect packages using stable keywords #769 ; they require unstable globally. For my personal repos I will stabilize that which I can test- amd64- but would want every other arch marked as unstabled. IE, my repo would require a configuration directive.

The design for the configuration directives isn't in this scope; what's in the scope is that we must not prevent such a thing being added.

The location of this file is proposed as metadata/qa.conf, or akin.

Based on those requirements, my thought is this is best served by using TOML. I'm unaware of any tooling for providing a TOML 'spec', but that would be desirable here (and would be a builtin check, obviously).

@ulm , @thesamesam , @arthurzam : thoughts?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions