Compare commits

...

43 Commits

Author SHA1 Message Date
00882db033 Merge pull request 'dev' (#40) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/40
new-tag:1.3.5
2023-11-06 16:13:04 +01:00
cclecle
5dc86907b6 update from last project template 2023-11-06 15:05:27 +00:00
cclecle
ce7d23f44b split quality & types .launch scripts 2023-11-06 15:01:10 +00:00
eb5bbc2900 Merge pull request 'chore: remove useless data dir' (#39) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/39
new-tag:1.3.4
2023-09-30 01:54:47 +02:00
cclecle
deb9b618d1 chore: remove useless data dir
fix: correct function doc (Google docstrings)
fix: add py.tyed to dist
2023-09-30 00:18:40 +01:00
7c48c8c55e Merge pull request 'fix: switch to pypi version of chacha-cicd-helper' (#38) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/38
new-tag:1.3.3
2023-09-30 00:54:11 +02:00
ac1535e02d Merge pull request 'chore: switch from helpers to chacha_cicd_helper' (#37) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/37
new-tag:1.3.2
2023-09-30 00:07:14 +02:00
8049477a5c Merge pull request 'chore: dummy change' (#36) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/36
new-tag:1.3.1
2023-09-24 20:31:09 +02:00
a87a717b9e Merge pull request 'feat: add py.typed for mypy' (#35) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/35
2023-09-24 20:24:51 +02:00
ca7a69ae76 Merge pull request 'dev' (#34) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/34
new-tag:1.3.0
2023-09-24 20:18:10 +02:00
d4b90b1f91 Merge pull request 'Fix title' (#33) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/33
new-tag: 1.2.2
2023-03-28 02:39:04 +02:00
ac70d4dde4 Merge pull request 'beautify jenkins file' (#32) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/32
new-tag: 1.2.1
2023-03-28 02:05:30 +02:00
6e1c60ee53 Merge pull request 'dev' (#31) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/31
newt-tag: 1.2.1
2023-03-28 01:55:24 +02:00
dd6f24a82e Merge pull request 'dev' (#30) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/30
new-tag: 1.2.0
2023-03-28 01:16:59 +02:00
78d7fbe39d Merge pull request 'dev' (#29) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/29
new-tag:1.1.0
2023-03-27 03:03:53 +02:00
3f5ee5f117 Merge pull request 'improve project configuration from pychangelogfactory' (#28) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/28
new-tag: 1.0.12
2023-03-25 21:05:05 +01:00
2d16b0e264 Merge pull request 'dev' (#27) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/27
new-tag: 1.0.11
2023-03-25 00:00:31 +01:00
088dbf8a90 Merge pull request 'dev' (#26) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/26
new-tag:1.0.10
2023-03-24 22:27:57 +01:00
bd49b23b59 Merge pull request 'dev' (#25) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/25
new-tag: 1.0.9
2023-03-24 21:09:23 +01:00
f5d61d8d04 Merge pull request 'fix: twine cmd line' (#24) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/24
new-tag: 1.0.8
2023-03-22 10:49:23 +01:00
d21c839f07 Merge pull request 'dev' (#23) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/23
new-tag: 1.0.7
2023-03-22 10:03:04 +01:00
6542c80e8f Merge pull request 'fix usernamePassword in jenkins' (#22) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/22
new-tag:1.0.6
2023-03-22 01:00:21 +01:00
4272a55dde Merge pull request 'dev' (#21) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/21
new-tag:1.0.5
2023-03-22 00:49:37 +01:00
382e39e684 Merge pull request 'dev' (#20) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/20
new-tag:1.0.4
2023-03-20 10:12:13 +01:00
34c07e0d9f Merge pull request 'escape toml' (#19) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/19
new-tag:1.0.3
2023-03-20 01:16:37 +01:00
2c9886b251 Merge pull request 'test: tag_regex to extract verison only' (#18) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/18
new-tag:1.0.4
2023-03-20 01:14:17 +01:00
782562eef8 Merge pull request 'dev' (#17) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/17
new-tag:1.0.3
2023-03-20 00:15:31 +01:00
82c32ff58c Merge pull request 'dev' (#16) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/16
new-tag:1.0.2
2023-03-19 22:59:59 +01:00
794e54c88b Merge pull request 'dev' (#15) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/15
new-tag:1.0.1
2023-03-19 21:58:48 +01:00
078f5624b2 Merge pull request 'fix: project username' (#14) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/14
new-tag: 1.0.0
2023-03-19 21:02:07 +01:00
44c10b88a5 Merge pull request 'fix: typo in jenkins pipeline file' (#13) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/13
new-tag: 1.0.0
2023-03-19 20:57:20 +01:00
a4b7b27a65 Merge pull request 'dev' (#12) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/12
new-tag:1.0.0
2023-03-19 20:53:01 +01:00
77e2be2714 Merge pull request 'fix: remove branch on git push (useless)' (#11) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/11
new-tag:1.0.0
2023-03-19 20:41:37 +01:00
f422b9ff7d Merge pull request 'fix git tag cmd' (#10) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/10
new-tag:1.0.0
2023-03-19 20:34:23 +01:00
660270d49b Merge pull request 'fix git username/address in jenkinsfile' (#9) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/9
new-tag:1.0.0
2023-03-19 20:29:40 +01:00
9f442a7b8e Merge pull request 'update jenkinsfile' (#8) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/8
new-tag:1.0.0
2023-03-19 20:24:31 +01:00
8fb9ba8406 Merge pull request 'dev' (#7) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/7
2023-03-19 20:02:38 +01:00
38abaa58c5 Merge pull request 'fix deps' (#6) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/6
2023-03-19 19:47:06 +01:00
35d75ea019 Merge pull request 'dev' (#5) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/5
2023-03-19 19:43:17 +01:00
0b8651a30a Merge pull request 'dev' (#4) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/4
2023-03-19 19:22:48 +01:00
c5b3055bfe Merge pull request 'feature: add log-line in pipeline' (#3) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/3
2023-03-19 11:39:08 +01:00
92a1d1a30f Merge pull request 'update jenkinsFile' (#2) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/2
2023-03-19 11:29:50 +01:00
f2c0bf1ddd Merge pull request 'bump master release' (#1) from dev into master
Reviewed-on: https://chacha.ddns.net/gitea/chacha/pygitversionhelper/pulls/1
2023-03-19 11:23:54 +01:00
7 changed files with 106 additions and 14 deletions

14
Jenkinsfile vendored
View File

@@ -426,9 +426,17 @@ pipeline {
}
post {
always {
dir("gitrepo") {
publishCoverage adapters: [cobertura(mergeToOneReport: true, path: "helpers-results/cl_types_check/cobertura.xml")]
junit 'helpers-results/cl_types_check/junit.xml'
dir("gitrepo") {
//publish coverage
recordCoverage( sourceDirectories: [[path: 'src']],
tools: [[parser: 'COBERTURA', pattern: 'helpers-results/cl_types_check/cobertura.xml']],
id: 'COBERTURA', name: 'COBERTURA Coverage',
sourceCodeRetention: 'EVERY_BUILD',)
//add type check to junit result set
junit 'helpers-results/cl_types_check/junit.xml'
//publish html reports files
publishHTML([
reportDir: "helpers-results/cl_quality_check",
reportFiles: "report.html",

View File

@@ -10,7 +10,7 @@
<stringAttribute key="org.eclipse.debug.ui.ATTR_CONSOLE_ENCODING" value="UTF-8"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:pygitversionhelper/helpers_proxy}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_OTHER_WORKING_DIRECTORY" value=""/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="--typecheck --qualitycheck"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="--qualitycheck"/>
<stringAttribute key="org.python.pydev.debug.ATTR_INTERPRETER" value="__default"/>
<stringAttribute key="org.python.pydev.debug.ATTR_PROJECT" value="pygitversionhelper"/>
<stringAttribute key="process_factory_id" value="org.python.pydev.debug.processfactory.PyProcessFactory"/>

17
RUN_types.launch Normal file
View File

@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.python.pydev.debug.regularLaunchConfigurationType">
<booleanAttribute key="org.eclipse.debug.core.ATTR_FORCE_SYSTEM_CONSOLE_ENCODING" value="false"/>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
<listEntry value="/pygitversionhelper/helpers_proxy"/>
</listAttribute>
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="2"/>
</listAttribute>
<stringAttribute key="org.eclipse.debug.ui.ATTR_CONSOLE_ENCODING" value="UTF-8"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:pygitversionhelper/helpers_proxy}"/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_OTHER_WORKING_DIRECTORY" value=""/>
<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="--typecheck"/>
<stringAttribute key="org.python.pydev.debug.ATTR_INTERPRETER" value="__default"/>
<stringAttribute key="org.python.pydev.debug.ATTR_PROJECT" value="pygitversionhelper"/>
<stringAttribute key="process_factory_id" value="org.python.pydev.debug.processfactory.PyProcessFactory"/>
</launchConfiguration>

View File

@@ -46,7 +46,21 @@ include-package-data = true
where = ["src"]
[tool.setuptools.package-data]
"pygitversionhelper.data" = ["*.*"]
"pysimpleini" = ["py.typed"]
# [[tool.mypy.overrides]]
# module = ""
# ignore_missing_imports = true
[tool.coverage.run]
cover_pylib = false
branch = true
data_file="helpers-results/cl_unit_test_raw_coverage/.coverage"
# debug = ["config","multiproc","process"]
parallel = true
concurrency = [
'thread'
]
[project.urls]
Homepage = "https://chacha.ddns.net/gitea/chacha/pygitversionhelper/"

View File

@@ -1,7 +0,0 @@
# pygitversionhelper (c) by chacha
#
# pygitversionhelper is licensed under a
# Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Unported License.
#
# You should have received a copy of the license along with this
# work. If not, see <https://creativecommons.org/licenses/by-nc-sa/4.0/>.

View File

@@ -65,10 +65,12 @@ if TYPE_CHECKING:
def _exec(cmd: str, root: Optional[str | os.PathLike[str]] = None, raw: bool = False) -> str | List[str]:
"""helper function to handle system cmd execution
Args:
cmd: command line to be executed
root: root directory where the command need to be executed
raw: return bytes if True, str if False or None
Returns:
a list of command's return lines or the raw output
@@ -134,8 +136,10 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def isDirty(cls) -> bool:
"""check if the repository is in dirty state
Returns:
True if it is dirty
"""
return bool(_exec("git status --short"))
@@ -151,16 +155,19 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def getMessagesSinceTag(cls, tag: str, **kwargs: Unpack[TKwargs]) -> str | List[str]:
"""Retrieve a commits message history from repository.
Start from Latest found commit until the given tag.
Args:
tag: tag of the commit where search will stop
tag (str): tag of the commit where search will stop
Keyword Arguments:
kwargs/merged_output (bool): Output one single merged string
kwargs/same_branch (bool): Force searching only in the same branch
kwargs/ignore_merged (bool): ignore merged commits
Returns:
the commit message
"""
current_commit_id = cls.getLast(**kwargs)
tag_commit_id = cls.getFromTag(tag)
@@ -190,10 +197,13 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def getMessage(cls, commit_hash: str) -> str:
"""retrieve a commit message from repository
Args:
commit_hash: id of the commit
Returns:
the commit message
"""
try:
res = _exec(
@@ -210,10 +220,13 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def getFromTag(cls, tag: str) -> str:
"""retrieve a commit from repository associated to a tag
Args:
tag: tag of the commit
Returns:
the commit Id
"""
try:
res = _exec(f"git rev-list -n 1 {tag}") # ok
@@ -227,11 +240,14 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def getLast(cls, **kwargs: Unpack[TKwargs]) -> str:
"""retrieve last commit from repository
Keyword Arguments:
kwargs/same_branch (bool): force searching only in the same branch
kwargs/ignore_merged (bool): ignore merged commits
Returns:
the commit Id
"""
str_cmd: str
if ("same_branch" in kwargs) and (kwargs["same_branch"] is True):
@@ -276,12 +292,16 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def getTags(cls, Sort: str = "taggerdate", **kwargs: Unpack[TKwargs]) -> List[str]:
"""retrieve all tags from a repository
Args:
Sort: sorting constraints (git format)
Keyword Arguments:
kwargs/same_branch (bool): force searching only in the same branch
Returns:
the tags list
"""
if Sort not in cls.__validGitTagSort:
@@ -295,10 +315,13 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def getLastTag(cls, **kwargs: Unpack[TKwargs]) -> str:
"""retrieve the Latest tag from a repository
Keyword Arguments:
kwargs/same_branch (bool): force searching only in the same branch
Returns:
the tag
"""
if ("same_branch" in kwargs) and (kwargs["same_branch"] is True):
res = _exec("git describe --tags --first-parent --abbrev=0")
@@ -316,12 +339,16 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def getDistanceFromTag(cls, tag: Optional[str] = None, **kwargs: Unpack[TKwargs]) -> int:
"""retrieve the distance between Latest commit and tag in the repository
Arguments:
tag: reference tag, if None the most recent one will be used
Keyword Arguments:
kwargs/same_branch (bool): force searching only in the same branch
Returns:
the tag
"""
if tag is None:
tag = cls.getLastTag(**kwargs)
@@ -397,10 +424,13 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def _getBumpDevStrategy(cls, **kwargs: Unpack[TKwargs]) -> str:
"""get selected bump_dev_strategy
Keyword Arguments:
kwargs/bump_dev_strategy (str): the given bump_dev_strategy (can be None)
Returns:
Kwargs given bump_dev_strategy or the default one.
"""
BumpDevStrategy: str = cls.DefaultBumpDevStrategy
@@ -414,10 +444,13 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def _getBumpType(cls, **kwargs: Unpack[TKwargs]) -> str:
"""get selected bump_type
Keyword Arguments:
kwargs/bump_type (str): the given bump_type (can be None)
Returns:
Kwargs given bump_type or the default one.
"""
BumpType: str = cls.DefaultBumpType
if "bump_type" in kwargs:
@@ -431,13 +464,17 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
self, amount: int = 1, **kwargs: Unpack[TKwargs]
) -> gitversionhelper.version.MetaVersion | str:
"""bump the version to the next one
Args:
amount: number of revision to bump
Keyword Arguments:
kwargs/bump_type (str): the given bump_type (can be None)
kwargs/bump_dev_strategy (str): the given bump_dev_strategy (can be None)
Returns:
the bumped version
"""
BumpType: str = self._getBumpType(**kwargs)
@@ -488,20 +525,26 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
def doFormatVersion(self, **kwargs: Unpack[TKwargs]) -> str:
"""output a formated version string
Keyword Arguments:
kwargs/output_format: output format to render ("Auto" or "PEP440" or "SemVer")
Returns:
formated version string
"""
return gitversionhelper.version.doFormatVersion(self, **kwargs)
@classmethod
def _getVersionStd(cls, **kwargs: Unpack[TKwargs]) -> gitversionhelper.version.MetaVersion.TVersionStd:
"""get selected version_std
Keyword Arguments:
kwargs/version_std (str): the given version_std (can be None)
Returns:
Kwargs given version_std or the default one.
"""
VersionStd: str = cls.DefaultInputFormat
if "version_std" in kwargs:
@@ -514,6 +557,7 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def getCurrentVersion(cls, **kwargs: Unpack[TKwargs]) -> gitversionhelper.version.MetaVersion | str:
"""get the current version or bump depending of repository state.
Keyword Arguments:
kwargs/version_std (str): the given version_std (can be None)
kwargs/same_branch (bool): force searching only in the same branch
@@ -521,8 +565,10 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
kwargs/bump_type (str): the given bump_type (can be None)
kwargs/bump_dev_strategy (str): the given bump_dev_strategy (can be None)
kwargs/output_format (str): output format to render ("Auto" or "PEP440" or "SemVer")
Returns:
the last version
"""
if gitversionhelper.repository.isDirty() is not False:
raise gitversionhelper.repository.repositoryDirty("The repository is dirty and a current version can not be generated.")
@@ -544,14 +590,17 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def getCurrentFormatedVersion(cls, **kwargs: Unpack[TKwargs]) -> str:
"""same as getCurrentVersion() with formated_output kwarg forced activated.
Keyword Arguments:
kwargs/version_std (str): the given version_std (can be None)
kwargs/same_branch (bool): force searching only in the same branch
kwargs/bump_type (str): the given bump_type (can be None)
kwargs/bump_dev_strategy (str): the given bump_dev_strategy (can be None)
kwargs/output_format (str): output format to render ("Auto" or "PEP440" or "SemVer")
Returns:
the last version
"""
kwargs["formated_output"] = True
return cast(str, cls.getCurrentVersion(**kwargs))
@@ -561,12 +610,16 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
cls, tag: str, **kwargs: Unpack[TKwargs]
) -> gitversionhelper.version.MetaVersion:
"""get version from tags.
Arguments:
tag: the tag to be parsed
Keyword Arguments:
kwargs/version_std (str): the given version_std (can be None)
Returns:
MetaVersion object
"""
_m: Optional[re.Match[str]]
VersionStd: gitversionhelper.version.MetaVersion.TVersionStd = cls._getVersionStd(**kwargs)
@@ -639,13 +692,16 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def getLastVersion(cls, **kwargs: Unpack[TKwargs]) -> gitversionhelper.version.MetaVersion | str: # pylint: disable=R1260
"""get the last version from tags
Keyword Arguments:
kwargs/version_std (str): the given version_std (can be None)
kwargs/same_branch (bool): force searching only in the same branch
kwargs/formated_output (bool): output a formated version string
kwargs/ignore_unknown_tags (bool): skip tags with not decoded versions (default to False)
Returns:
the last version in MetaVersion object or string
"""
lastTag: str = cls.MetaVersion.raw
cls.__versionReseted = False
@@ -678,12 +734,16 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
@classmethod
def doFormatVersion(cls, inputversion: MetaVersion, **kwargs: Unpack[TKwargs]) -> str:
"""output a formated version string from a MetaVersion object
Keyword Arguments:
kwargs/output_format (str): output format to render ("Auto" or "PEP440" or "SemVer")
Args:
inputversion: version to be rendered
Returns:
formated version string
"""
VersionStd = cls._getVersionStd(**kwargs)