Wrap prescription pipeline unit¶
Declaring pipeline units of type wrap.
The pipeline unit is registered based on
directive - see documentation for more info.
The following example shows all the configuration options that can be supplied to a wrap pipeline unit type. See respective sections described below for more info.
name: WrapUnit type: wrap 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,<2.5.0" # Version specifier for matching version ranges. index_url: 'https://pypi.org/simple' # Index URL used for consuming the package. 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. justification: - type: INFO message: "Hello, Thoth!" link: https://thoth-station.ninja advised_manifest_changes: - apiVersion: "apps.openshift.io/v1" kind: DeploymentConfig patch: op: add path: "/spec/template/spec/containers/0/env/0" value: name: "WORKDIR" value: "/home/workdir"
For a complete schema check the schema.py file in adviser’s implementation.
See stride’s match that has shared semantics.
name: WrapUnit type: wrap should_include: adviser_pipeline: true recommendation_types: # Only warn here, in case of performance the corresponding resolution step can be penalized. - latest - testing library_usage: tensorflow: - tensorflow.keras.layers.Embedding match: # Matching multiple criteria. - state: resolved_dependencies: - name: tensorflow version: "<=2.4.0" - state: resolved_dependencies: - name: tensorflow-cpu version: "<=2.4.0" - state: resolved_dependencies: - name: tensorflow-gpu version: "<=2.4.0" run: stack_info: - type: WARNING message: "TensorFlow in version <=2.4 is slow when tf.keras.layers.Embedding is used" # Can be replaced with just "tf_42475". link: "https://thoth-station.ninja/j/tf_42475.html"
Print the given message to the resolution log if the pipeline unit is included and run.
See boot’s log that has shared semantics.
See stack info which semantics is shared with this unit.
Note stack info is added only once even if the pipeline unit is run multiple times during the resolution process.
A justification added if the given wrap is matched and run. This justification is similar to the one as provided by step. It is added to the resolved stack if the match criteria are met.
Suggested changes to the manifest files used for application deployment.
A pipeline unit that adjusts environment variables if
intel-tensorflow is resolved.
name: WrapUnit type: wrap should_include: adviser_pipeline: true match: state: resolved_dependencies: - name: intel-tensorflow run: advised_manifest_changes: - apiVersion: apps.openshift.io/v1 kind: DeploymentConfig patch: op: add path: /spec/template/spec/containers/0/env/0 value: name: OMP_NUM_THREADS value": "1" stack_info: - type: INFO message: Adjst OMP_NUM_THREADS environment variable to make sure application behaves correctly in containerized environments link: 'https://www.openmp.org/spec-html/5.0/openmpse50.html'
See Advised manifest changes section for more info and semantics.
GitHub release notes prescription pipeline unit¶
A specific type of wrap pipeline unit that adds links to GitHub release page. See the linked demo for more info.
units: wraps: - name: FlaskGitHubReleaseNotesWrap type: wrap.GHReleaseNotes # Mind the type. should_include: adviser_pipeline: true # See should_include section for more options. match: state: resolved_dependencies: - name: flask version: '>=0.0.0' index_url: 'https://pypi.org/simple' run: release_notes: organization: pallets repository: flask # tag_version_prefix: v
The example above will link to GitHub release info if the listed package is in the resolved stack.
See stride’s match that has shared semantics for matching resolved dependencies.
run.release_notes part states organization and repository on GitHub
that is used as an information to construct URL to the release notes hosted on
GitHub. If the project uses a prefix (such as
v) in the release tag,
tag_version_prefix directive can be specified.
An example link generated for flask in version 1.1.0.