More work on resolvers.
This commit is contained in:
parent
2aab09121d
commit
d89426738f
9 changed files with 267 additions and 143 deletions
30
notes/structure.md
Normal file
30
notes/structure.md
Normal file
|
@ -0,0 +1,30 @@
|
|||
Upstream requirements are expressed as objects derived from UpstreamRequirement.
|
||||
|
||||
They can either be:
|
||||
|
||||
* extracted from the build system
|
||||
* extracted from errors in build logs
|
||||
|
||||
The details of UpstreamRequirements are specific to the kind of requirement,
|
||||
and otherwise opaque to ognibuild.
|
||||
|
||||
When building a package, we first make sure that all declared upstream
|
||||
requirements are met.
|
||||
|
||||
Then we attempt to build.
|
||||
|
||||
If any problems are found in the log, buildlog-consultant will report them.
|
||||
|
||||
ognibuild can then invoke "fixers" to address Problems.
|
||||
|
||||
Problems can be converted to UpstreamRequirements by UpstreamRequirementFixer
|
||||
|
||||
Other Fixer can do things like e.g. upgrade configure.ac to a newer version.
|
||||
|
||||
UpstreamRequirementFixer uses a UpstreamRequirementResolver object that
|
||||
can translate UpstreamRequirement objects into apt package names or
|
||||
e.g. cpan commands.
|
||||
|
||||
ognibuild keeps finding problems, resolving them and rebuilding until it finds
|
||||
a problem it can not resolve or that it thinks it has already resolved
|
||||
(i.e. seen before).
|
Loading…
Add table
Add a link
Reference in a new issue