diff options
author | 2017-06-26 17:21:04 +0000 | |
---|---|---|
committer | 2017-06-26 17:21:04 +0000 | |
commit | 807d371bdd4d888bb0129b5e0d62fc3ae1a6c8e1 (patch) | |
tree | b32fcbe43f95711977b44296a194ed171dc4c8f2 | |
parent | assign the next free number (diff) | |
download | glep-807d371bdd4d888bb0129b5e0d62fc3ae1a6c8e1.tar.gz glep-807d371bdd4d888bb0129b5e0d62fc3ae1a6c8e1.tar.bz2 glep-807d371bdd4d888bb0129b5e0d62fc3ae1a6c8e1.zip |
/* QA checks/verification */ necessity for verification
-rw-r--r-- | GLEP:73.mw | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -237,6 +237,15 @@ For most of the real-life use cases, two iterations should be able to solve all c? ( d ) b? ( c ) a? ( b ) ===QA checks/verification=== +====The necessity of verification==== +The purpose of REQUIRED_USE constraint verification is to ensure that for all valid combinations of input USE flags, the solver will be able to find a valid solution. This needs to be done explicitly since complex REQUIRED_USE constraints may trigger solving issues with non-obvious USE flag combinations, causing the developers to miss the issue. + +Since the solver must be able to deal with non-solvable constraints (by reporting them and letting the user deal with them), verification is not a strict necessity for enforcing REQUIRED_USE. However, it improves the user experience, and so is a worthwhile addition to the QA tools in place. + +To provide the best coverage, it is beneficial to integrate the verification into the tools commonly used by developers — repoman and pkgcheck, including the CI runs. For this to be possible, the algorithm must meet two requirements: +* it must be fast enough not to cause significant increase in repoman/pkgcheck run time for the full repository, +* it must not trigger a large number of false positives, and if any are triggered, they should be easy to work around. + ====Context to the checks==== As noted in the specification part, all of them checks need to be repeated for all possible sets of the immutable flags. This is necessary since the immutable flags can alter the solutions significantly. In particular: * they can alter the preferred choices in the any-of, at-most-one-of and exactly-one-of groups, |