Release Provider¶
This provider allows access to the release revisions of a project.
The default implementation works for projects following the versioning scheme specified in PEP 440.
Alternatively, a hook can be used for custom release lookup logic.
Module for the ReleaseProvider.
- class varats.provider.release.release_provider.ReleaseType(*values)[source]¶
Bases:
EnumA ReleaseType referes to one of the three parts of the semantic versioning specification.
It is assumed that a major release is also a minor release and that a minor release is also a patch release.
- value: int¶
- MAJOR = 1¶
- MINOR = 2¶
- PATCH = 3¶
- class varats.provider.release.release_provider.ReleaseProviderHook[source]¶
Bases:
objectGives the
ReleaseProviderthe necessary information how to find the releases for a project.This class should be inherited by projects.
- classmethod get_release_revisions(release_type)[source]¶
Get a set of all release revisions for a project.
- Return type:
List[Tuple[FullCommitHash,str]]- Returns:
a list of tuples of hashes and version strings of release commits
- class varats.provider.release.release_provider.ReleaseProvider(project)[source]¶
Bases:
ProviderProvides access to release revisions of a project.
- classmethod create_provider_for_project(project)[source]¶
Creates a provider instance for the given project if possible.
- Return type:
Optional[ReleaseProvider]- Returns:
a provider instance for the given project if possible, otherwise,
None
- classmethod create_default_provider(project)[source]¶
Creates a default provider instance that can be used with any project.
- Return type:
- Returns:
a default provider instance
- get_release_revisions(release_type)[source]¶
Get all release revisions of this provider’s project along with their version strings.
- Parameters:
release_type (
ReleaseType) – the type of releases to return- Return type:
List[Tuple[FullCommitHash,str]]- Returns:
a list of tuples of hashes and version strings of release commits
- class varats.provider.release.release_provider.ReleaseDefaultProvider(project)[source]¶
Bases:
ReleaseProviderDefault implementation of the
ReleaseProviderfor projects that do not need or support their own implementation.This implementation looks for commits with tags that are PEP 440 versions.
- get_release_revisions(release_type)[source]¶
Get all release revisions of this provider’s project along with their version strings.
- Parameters:
release_type (
ReleaseType) – the type of releases to return- Return type:
List[Tuple[FullCommitHash,str]]- Returns:
a list of tuples of hashes and version strings of release commits