Stride prescription pipeline unit¶
Declaring pipeline units of type stride.
Note
The pipeline unit is registered based on should_include
directive - see documentation for more info.
The following example shows all the configuration options that can be supplied to a stride pipeline unit type. See respective sections described below for more info.
name: StrideUnit
type: stride
should_include:
# See should_include section for more info.
match: # Criteria to trigger run of this pipeline unit. Defaults to always running the boot pipeline unit if no package_version is provided.
state: # Optional, resolver internal state to match for the given stride.
resolved_dependencies:
- name: werkzeug # Dependencies that have to be present in the resolved state.
version: "~=1.0.0" # Version specifier specifying version range.
index_url: 'https://pypi.org/simple' # Index URL used when consuming the release. Can be negated using "not".
run:
log: # Optional text printed to logs when the unit gets called.
message: Some text printed to log on pipeline unit run
type: WARNING
stack_info: # Information printed to the recommended stack report.
- type: WARNING
message: Hello, world
link: https://thoth-station.ninja # A link to justifications or a link to a web page.
not_acceptable: Bad package inclusion # Block resolving the given stack.
# Configuration of prematurely terminating the resolution process.
eager_stop_pipeline: "Stop pipeline"
Note
For a complete schema check the schema.py file in adviser’s implementation.
Stride match
¶
A state that needs to be met to trigger the given stride pipeline unit. The state states resolved dependencies where each entry in the resolved dependency listing is described as:
name
- optional package name that has to be stated in the resolved dependency listingversion
- optional package version in a form of version specifier that has to be stated in the resolved dependency listingindex_url
- optional package index from which the given package is consumed, can be negated using “not
”develop
- optional, if provided it additionally specifies if the dependency should or should not be a development dependency
To run the given stride, all the packages in the resolved dependency listing need to be present in the resolved software stack.
It is possible to provide a listing of matching criteria to run the given
pipeline unit multiple times - the run part will be reused for each match
entry stated.
Stride run.log
¶
Print the given message to the resolution log if the pipeline unit is included and run.
See boot’s log that has shared semantics.
Stride run.stack_info
¶
See boot’s stack info which semantics is shared with this unit.
Stride run.not_acceptable
¶
If the given pipeline unit is registered and matched, it will discard the resolved stack matched from the resolver’s results reported.
Stride run.eager_stop_pipeline
¶
If the given pipeline unit is registered and matched, it will cause the whole resolution process to halt and report back results computed, if any. If no results are available, the resolution process will fail as no software stack is produced.