[X] I have searched the existing issues, and I could not find an existing issue for this feature
[X] I am requesting a straightforward extension of existing dbt functionality, rather than a Big Idea better suited to a discussion
Describe the feature
For dbt-ducdkb, we recently implemented automated versioning via git tags, by adding in a pbr dependency.
pbr uses what they call Linux/Python Compatible Semantic Versioning 3.0.0. The main differences with SemVer 2.0.0 are:
Pre-release versions are now separated by . not -, and use a/b/c rather than alpha/beta etc.
Alpha version are prefixed by a 0 such as: 2.0.0.0a1 instead of 2.0.0.a1 for version ‘2.0.0 alpha 1’. Please note dev version tag does not have a leading 0, as is 2.0.0.0a2.dev1.
Unfortunately, dbt-common's semver module doesn't seem to match this versioning. Concretely, this means I get this error:
version_string = '1.8.3.dev6'
@classmethod
def from_version_string(cls, version_string):
match = _VERSION_REGEX.match(version_string)
if not match:
> raise dbt_common.exceptions.base.SemverError(
f'"{version_string}" is not a valid semantic version.'
)
E dbt_common.exceptions.base.SemverError: "1.8.3.dev6" is not a valid semantic version.
venv/lib/python3.12/site-packages/dbt_common/semver.py:99: SemverError
We have a workaround for now, that post-processes the version and replaces the . with a -, see code and PR. However, it would be great to add support for Semver "3.0.0"/PEP-440 versioning to the regex!
Describe alternatives you've considered
pbr could instead use SemVer 2.0.0 versioning, but other packages might also follow PEP-440 guidelines
We have a workaround (see description) but it's a little hacky
Is this your first time submitting a feature request?
Describe the feature
For
dbt-ducdkb
, we recently implemented automated versioning viagit tag
s, by adding in apbr
dependency.pbr
uses what they call Linux/Python Compatible Semantic Versioning 3.0.0. The main differences with SemVer 2.0.0 are:Unfortunately,
dbt-common
's semver module doesn't seem to match this versioning. Concretely, this means I get this error:We have a workaround for now, that post-processes the version and replaces the
.
with a-
, see code and PR. However, it would be great to add support for Semver "3.0.0"/PEP-440 versioning to the regex!Describe alternatives you've considered
pbr
could instead use SemVer 2.0.0 versioning, but other packages might also follow PEP-440 guidelinesWho will this benefit?
pbr
Are you interested in contributing this feature?
No response
Anything else?
No response