Skip to content

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

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 ProhibitedStableKeywordsCheck: detect packages using prohibited 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?

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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