Add doc on concepts.
This commit is contained in:
parent
f8d269b6e5
commit
10edeef330
1 changed files with 49 additions and 0 deletions
49
notes/concepts.md
Normal file
49
notes/concepts.md
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
Requirement
|
||||||
|
===========
|
||||||
|
|
||||||
|
Some sort of constraint about the environment that can be specified and satisfied.
|
||||||
|
|
||||||
|
Examples:
|
||||||
|
* a dependency on version 1.3 of the python package "foo"
|
||||||
|
* a dependency on the apt package "blah"
|
||||||
|
|
||||||
|
Requirements can be discovered from build system metadata files and from build logs.
|
||||||
|
|
||||||
|
Different kinds of requirements are subclassed from the main Requirement class.
|
||||||
|
|
||||||
|
Output
|
||||||
|
======
|
||||||
|
|
||||||
|
A build artifact that can be produced by a build system, e.g. an
|
||||||
|
executable file or a Perl module.
|
||||||
|
|
||||||
|
Problem
|
||||||
|
=======
|
||||||
|
|
||||||
|
An issue found in a build log by buildlog-consultant.
|
||||||
|
|
||||||
|
BuildFixer
|
||||||
|
==========
|
||||||
|
|
||||||
|
Takes a build problem and tries to resolve it in some way.
|
||||||
|
|
||||||
|
This can mean changing the project that's being built
|
||||||
|
(by modifying the source tree), or changing the environment
|
||||||
|
(e.g. by install packages from apt).
|
||||||
|
|
||||||
|
Common fixers:
|
||||||
|
|
||||||
|
+ InstallFixer([(resolver, repository)])
|
||||||
|
+ DebianDependencyFixer(tree, resolver)
|
||||||
|
|
||||||
|
Repository
|
||||||
|
==========
|
||||||
|
|
||||||
|
Some sort of provider of external requirements. Can satisfy environment
|
||||||
|
requirements.
|
||||||
|
|
||||||
|
Resolver
|
||||||
|
========
|
||||||
|
|
||||||
|
Can take one kind of upstream requirement and turn it into another. E.g.
|
||||||
|
converting missing Python modules to apt or pypi packages.
|
Loading…
Add table
Add a link
Reference in a new issue