Internal API
Sources
Dependeny sources - i.e. ways we can depend on a project
- class ska_rt.gitlab.GitlabHelmChartDep(*args, **kwargs)
Helm chart built from source code on GitLab
Parameters:
dep_type: Should be'gitlab:helm-chart'project: Gitlab project name (e.g.ska-telescope/sdp/ska-sdp-integration)branch: (List of) branch names in priority order (e.g.[ "{branch}", "main", "master" ])tag: (List of) tags in priority order (e.g.[ "1.2.1" ]) - overridesbranchjob: Job name to look for (e.g.[ 'helm-chart-build' ])chart_name: Name of chart (if multiple charts are published)repository: Repository where helm chart can be obtained from (optional). Only used if it cannot be determined from CI job
- classmethod dep_type_name()
Dependency name, used in configuration files
- parse_trace(gl_job, trace)
Abstract method that extracts dependency properties from Gitlab job trace in subclasses
- class ska_rt.gitlab.GitlabOciImageDep(*args, **kwargs)
OCI image built from source code on GitLab
Parameters:
dep_type: Should be'gitlab:oci-image'project: Gitlab project name (e.g.ska-telescope/sdp/ska-sdp-proccontrol)branch: (List of) branch names in priority order (e.g.[ "{branch}", "main", "master" ])tag: (List of) tags in priority order (e.g.[ "1.2.1" ]) - overridesbranchjob: Job name to look for (e.g.[ 'oci-image-build' ])
- classmethod dep_type_name()
Dependency name, used in configuration files
- parse_trace(gl_job, trace)
Abstract method that extracts dependency properties from Gitlab job trace in subclasses
- class ska_rt.gitlab.GitlabPythonDep(*args, **kwargs)
Python package with source code on GitLab
Parameters:
dep_type: Should be'gitlab:python'project: Gitlab project name (e.g.ska-telescope/sdp/ska-sdp-config)branch: (List of) branch names in priority order (e.g.[ "{branch}", "main", "master" ])tag: (List of) tags in priority order (e.g.[ "1.2.1" ]) - overridesbranchjob: Job name to look for (e.g.[ 'python-build-for-publication', 'python-build-for-development' ])
- classmethod dep_type_name()
Dependency name, used in configuration files
- parse_trace(gl_job, trace)
Abstract method that extracts dependency properties from Gitlab job trace in subclasses
- class ska_rt.gitlab.GitlabTraceDep(config, dep_name, dep_type, project, branch=('{branch}', 'main', 'master'), tag=None, job=('oci-image-build',), sink=(), **extra_args)
GitLab dependency that extracts information from a job trace
- abstract classmethod dep_type_name()
Dependency name, used in configuration files
- abstract parse_trace(gl_job, trace)
Abstract method that extracts dependency properties from Gitlab job trace in subclasses
Sinks
Dependency sinks for more or less generic YAML configuration files
- class ska_rt.yaml.HelmDependencySink(config, sink_name, sink_type, file, **extra_args)
Update a Helm dependency
Parameters:
file: Path ofChart.yamlto update (e.g."charts/ska-mid/Chart.yaml")
Required dependency data:
name: Name of dependency / packagerepository: Helm repository to pull fromversion: Version of package to use
- classmethod sink_type_name()
Dependency sink name, used in configuration files
- class ska_rt.yaml.YamlSink(config, sink_name, sink_type, file, updates, **extra_args)
Update a YAML file
Parameters:
file: Path of file to update (e.g."pyproject.yaml")updates: List of updates – each a dictionary with values:path:.-separated JSON path to update (allow data substitution)value: Value to set (allows data substituation, e.g."{version}")
Required dependency data: Only to cover substitutions
- classmethod sink_type_name()
Dependency sink name, used in configuration files
- update(data)
Updates target YAML file with data from the parameter dictionary.
Dependency sinks for Python packages
- class ska_rt.python.GenericPythonPoetrySink(config, sink_name, sink_type, dependency='{name}', file='pyproject.toml', section='tool.poetry.dependencies', version_only=False, **extra_args)
Generic sink for Poetry sinks. See subclasses for expected parameters.
- abstract classmethod sink_type_name()
Dependency sink name, used in configuration files
- update(data)
Set dependency properties of Python package
Updates pyproject.toml as appropriate for dependency data passed in parameter.
- if version_only = True:
do not add a new poetry source for updated dependency
- class ska_rt.python.PythonPoetrySink(config, sink_name, sink_type, dependency='{name}', file='pyproject.toml', section='tool.poetry.dependencies', version_only=False, **extra_args)
- Update
pyproject.tomlfor injecting Python dependency to Poetry (by custom source)
Parameters:
file: Target file path (e.g."pyproject.toml")section: Dependency section to update (e.g."tool.poetry.dependencies")
dependency: Name of dependency (e.g."{name}"to derive from dependency)
Required dependency data:
name: Package nameversion: Package versionpypi_url: PyPI-compatible repository URL
- classmethod sink_type_name()
Dependency sink name, used in configuration files
- Update
- class ska_rt.python.PythonPoetrySinkURL(config, sink_name, sink_type, dependency='{name}', file='pyproject.toml', section='tool.poetry.dependencies', version_only=False, **extra_args)
Update
pyproject.tomlfor injecting Python dependency to Poetry (by URL)Parameters:
file: Target file path (e.g."pyproject.toml")section: Dependency section to update (e.g."tool.poetry.dependencies")dependency: Name of dependency (e.g."{name}"to derive from dependency)
Required dependency data:
wheel_url: URL to download wheel
- classmethod sink_type_name()
Dependency sink name, used in configuration files