scd.version
¶
Routines for version management.
These module has Version
class which is a base class for
entrypoints scd.version
. All entrypoints of such class should be
subclasses of Version
.
Currently, it scd.version
has following defined entrypoints:
Entrypoint | Class |
---|---|
pep440 | PEP440 |
semver | SemVer |
git_pep440 | GitPEP440 |
git_semver | GitSemVer |
-
class
scd.version.
GitPEP440
(config)¶ Git flavored
PEP440
implementation.This implementation does the same, but precalculates local and dev parts based on Git information.
Dev release is the number of commits since latest tag and local will have Git short commit SHA at the first place.
-
class
scd.version.
GitSemVer
(config)¶ Git flavored
SemVer
implementation.This implementation does the same, but precalculates build and prerelase parts based on Git information.
Prerelase is the number of commits since latest tag and build is short commit hash. Previous and next builds are always empty. Because nobody predicts next commit hash.
-
class
scd.version.
PEP440
(config)¶ Implementation of Python versioning.
For details, please check PEP 440.
-
dev
¶ Dev number of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 2.Returns: Development part of the version number Return type: int
-
epoch
¶ Epoch part of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 1483072998.Returns: Epoch part of the version number Return type: int
-
local
¶ Local part of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 5afe90c.linux.Returns: Local part of the version number Return type: int
-
major
¶ Major part of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 1.Returns: Major part of the version number Return type: int
-
maximum
¶ Maximal representation of the version.
This always has all possible parts (probably except of prerelase, it is still optional, because we have to know context to calculate that) even if it makes no sense. I have no idea about usecase of that except of having this property for completenes.
Example:
0!1.2.3rc3.post0.dev0+1ubuntu1
.Horrible.
Returns: Maximal version number. Return type: str
-
minor
¶ Minor number for the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 2.Returns: Minor part of the version number Return type: int
-
next_dev
¶ Next dev number of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 3.Returns: Next development part of the version number Return type: int
-
next_major
¶ Next major number for the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 2.Returns: Next major part of the version number Return type: int
-
next_minor
¶ Next minor number for the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 3.Returns: Next minor part of the version number Return type: int
-
next_patch
¶ Next patch number for the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 4.Returns: Next patch part of the version number Return type: int
-
next_post
¶ Next post number of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 14.Returns: Next post part of the version number Return type: int
-
next_prerelease
¶ Next prerelease number of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 4.Returns: Next prerelease part of the version number Return type: int
-
patch
¶ Patch number for the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 3.Returns: Patch part of the version number Return type: int
-
post
¶ Post number of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 13.Returns: Post part of the version number Return type: int
-
prerelease
¶ Prerelease number of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 3.Returns: Prerelease part of the version number Return type: int
-
prerelease_type
¶ Type of the prerelase.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns rc.Returns: Type of the prerelease Return type: str
-
prev_dev
¶ Prev dev number of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 2.Returns: Previous development part of the version number Return type: int
-
prev_major
¶ Prev major number for the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 0.Returns: Previous major part of the version number Return type: int
-
prev_minor
¶ Prev minor number for the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 1.Returns: Previous minor part of the version number Return type: int
-
prev_patch
¶ Prev patch number for the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 2.Returns: Previous patch part of the version number Return type: int
-
prev_post
¶ Prev post number of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 12.Returns: Previous post part of the version number Return type: int
-
prev_prerelease
¶ Prev prerelease number of the version.
For version
1483072998!1.2.3rc3.post13.dev2+5afe90c.linux
it returns 2.Returns: Previous prerelease part of the version number Return type: int
-
-
class
scd.version.
SemVer
(config)¶ Implementation of semantic version numbering.
For details, please check http://semver.org/.
-
build
¶ Build version number.
Build version number of version
1.2.3-pre1+build4
is build4.Returns: Build version number. Return type: str
-
next_build
¶ Next build version number.
Next build version number of version
1.2.3-pre1+build4
is build5.Returns: Next build version number. Return type: str
-
next_major
¶ Next major version number.
Next major number of version
1.2.3
is 2.Returns: Next major version number. Return type: int
-
next_minor
¶ Next minor version number.
Next minor number of version
1.2.3
is 3.Returns: Next minor version number. Return type: int
-
next_patch
¶ Next patch version number.
Next patch number of version
1.2.3
is 4.Returns: Next patch version number. Return type: int
-
next_prerelease
¶ Next prerelase version number.
Next prerelase version number of version
1.2.3-pre1+build4
is pre2.Returns: Next prerelase version number. Return type: str
-
classmethod
next_text_version
(text)¶ Method which returns next number from the string.
From string
build10s
it returns 11.Parameters: text (str) – Line to search in. Returns: Next number Return type: int
-
classmethod
parse_text_version
(text)¶ Method which extracts latest number from the string.
Empty string implies 0. No number also implies 0.
Parameters: text (str) – Line to search in. Returns: Latest number Return type: int
-
prerelease
¶ Prerelase version number.
Prerelase version number of version
1.2.3-pre1+build4
is pre1.Returns: Prerelase version number. Return type: str
-
prev_build
¶ Prev build version number.
Previous build version number of version
1.2.3-pre1+build4
is build3.Returns: Previous build version number. Return type: str
-
prev_major
¶ Prev major version number.
Previous major number of version
1.2.3
is 0.Returns: Previous major version number. Return type: int
-
prev_minor
¶ Prev minor version number.
Previous minor number of version
1.2.3
is 1.Returns: Previous minor version number. Return type: int
-
prev_patch
¶ Prev patch version number.
Previous patch number of version
1.2.3
is 4.Returns: Previous patch version number. Return type: int
-
prev_prerelease
¶ Prev prerelase version number.
Previous prerelase version number of version
1.2.3-pre1+build4
is pre0.Returns: Previous prerelase version number. Return type: str
-
classmethod
prev_text_version
(version)¶ Method which returns previous number from the string.
From string
build10s
it returns 9.Parameters: text (str) – Line to search in. Returns: Next number Return type: int
-
-
class
scd.version.
Version
(config)¶ Base class for version scheme.
This class is the base of
scd.version
entrypoint and it’s main intention is correct version parsing and creating of template context.Parameters: config ( scd.config.Config
) – Configuration wrapper-
base
¶ Base number from config. Literally, as defined there.
Returns: Version number Return type: str
-
context
¶ Context for
jinja2.Template
.Returns: A mapping of context variables. Return type: dict[str, str or int]
-
full
¶ Full reference version number, with a lot of details.
Returns: Version number Return type: str
-
-
scd.version.
git_distance
(git_dir, matcher='v*')¶ Return a number of commits since latest matched tag.
Parameters: - git_dir (str) – Path to the
.git
directory of repository. - matcher (str) – Glob of the tag names to operate with.
Returns: The number of commits or
None
if nothing is found.Return type: int or None
- git_dir (str) – Path to the
-
scd.version.
git_tag
(git_dir)¶ Return a current Git commit sha for repository.
Parameters: git_dir (str) – Path to the .git
directory of repository.Returns: Commit SHA in short form or None
if cannot find any.Return type: str or None