Compare commits
47 Commits
1.0.12.pos
...
1.2.2
| Author | SHA1 | Date | |
|---|---|---|---|
| d4b90b1f91 | |||
|
|
a07bcc37c4 | ||
| ac70d4dde4 | |||
|
|
0d1e981b6b | ||
| 6e1c60ee53 | |||
|
|
b01779dd06 | ||
|
|
f7ec5d98a7 | ||
|
|
82d4b1bd70 | ||
|
|
880fa29bbd | ||
|
|
7347106694 | ||
| dd6f24a82e | |||
|
|
e1c1e643c3 | ||
|
|
a5f39d6cb2 | ||
|
|
c6ed7ef0a1 | ||
|
|
0ef5a8f463 | ||
|
|
e06a3b00ae | ||
|
|
d3bf6ddaa6 | ||
|
|
a419af2ade | ||
| 78d7fbe39d | |||
| 3f5ee5f117 | |||
| 2d16b0e264 | |||
| 088dbf8a90 | |||
| bd49b23b59 | |||
| f5d61d8d04 | |||
| d21c839f07 | |||
| 6542c80e8f | |||
| 4272a55dde | |||
| 382e39e684 | |||
| 34c07e0d9f | |||
| 2c9886b251 | |||
| 782562eef8 | |||
| 82c32ff58c | |||
| 794e54c88b | |||
| 078f5624b2 | |||
| 44c10b88a5 | |||
| a4b7b27a65 | |||
| 77e2be2714 | |||
| f422b9ff7d | |||
| 660270d49b | |||
| 9f442a7b8e | |||
| 8fb9ba8406 | |||
| 38abaa58c5 | |||
| 35d75ea019 | |||
| 0b8651a30a | |||
| c5b3055bfe | |||
| 92a1d1a30f | |||
| f2c0bf1ddd |
45
Jenkinsfile
vendored
45
Jenkinsfile
vendored
@@ -26,7 +26,7 @@ def _bPreRelease = false
|
||||
def _bDraft = false
|
||||
// release content / changelog management
|
||||
def _bAutoChangelog = true //Not supported yet
|
||||
def _ReleaseContent_Title = "_CI/CD Automatic Release_"
|
||||
def _ReleaseContent_Title = "# _CI/CD Automatic Release_"
|
||||
def bPushMasterOnPypi = true
|
||||
// full rebuild toogle
|
||||
def _bFullRebuilt = true
|
||||
@@ -148,6 +148,7 @@ pipeline {
|
||||
PY_PROJECT_NAME = "__NOTSET__"
|
||||
PY_PROJECT_VERSION = "__NOTSET__"
|
||||
PY_PROJECT_VERSION_STRIPPED = "__NOTSET__"
|
||||
CHANGELOG = "__NOTSET__"
|
||||
}
|
||||
|
||||
stages {
|
||||
@@ -184,16 +185,14 @@ pipeline {
|
||||
|
||||
sh(". ~/BUILD_ENV/bin/activate && pip install --upgrade setuptools build pip copier jinja2-slug toml")
|
||||
|
||||
sh(". ~/TOOLS_ENV/bin/activate && pip install simple_rest_client requests twine")
|
||||
sh(". ~/TOOLS_ENV/bin/activate && pip install simple_rest_client requests twine packaging")
|
||||
|
||||
script {
|
||||
if(_PROJECT_NAME!="pygitversionhelper") {
|
||||
sh(". ~/TOOLS_ENV/bin/activate && pip install pygitversionhelper")
|
||||
}
|
||||
else
|
||||
{
|
||||
//TODO: need to install pygitversionhelper deps from a better way...
|
||||
sh(". ~/TOOLS_ENV/bin/activate && pip install packaging")
|
||||
if(_PROJECT_NAME!="pychangelogfactory") {
|
||||
sh(". ~/TOOLS_ENV/bin/activate && pip install pychangelogfactory")
|
||||
}
|
||||
}
|
||||
sh("git config --global user.email $_MaintainerEmail")
|
||||
@@ -217,6 +216,32 @@ pipeline {
|
||||
withCredentials([usernamePassword(credentialsId: _SCMCredentials, passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) {
|
||||
sh("git remote set-url origin https://${GIT_USERNAME}:${GIT_PASSWORD}@chacha.ddns.net/gitea/${_PROJECT_USER_NAME}/${_PROJECT_NAME}.git")
|
||||
}
|
||||
|
||||
CHANGELOG = sh(script: """#!/bin/sh -
|
||||
|. ~/TOOLS_ENV/bin/activate
|
||||
|exec python - << '__EOWRAPPER__'
|
||||
|
|
||||
|import re
|
||||
|
|
||||
|try:
|
||||
| from pychangelogfactory import ChangelogFactory
|
||||
|except ImportError:
|
||||
| from src.pychangelogfactory import ChangelogFactory
|
||||
|
|
||||
|try:
|
||||
| from pygitversionhelper import gitversionhelper
|
||||
|except ImportError:
|
||||
| from src.pygitversionhelper import gitversionhelper
|
||||
|
|
||||
|
|
||||
|LastTag=gitversionhelper.tag.getLastTag(same_branch=True)
|
||||
|CommitHistory=gitversionhelper.commit.getMessagesSinceTag(LastTag, merged_output=True, ignore_merged=True)
|
||||
|Changelog = ChangelogFactory(CommitHistory).RenderFullChangelog(include_unknown=True)
|
||||
|print(Changelog.replace("\\n","\\n\\n"))
|
||||
|
|
||||
|__EOWRAPPER__
|
||||
""".stripMargin(),
|
||||
returnStdout: true).trim()
|
||||
|
||||
if(_GIT_BRANCH=="master") {
|
||||
if(sh(returnStdout: true, script: "git tag --points-at HEAD").trim().isEmpty()) {
|
||||
@@ -573,6 +598,7 @@ pipeline {
|
||||
|from simple_rest_client.api import API
|
||||
|from simple_rest_client.resource import Resource
|
||||
|
|
||||
|
|
||||
|try:
|
||||
| from pygitversionhelper import gitversionhelper
|
||||
|except ImportError:
|
||||
@@ -619,6 +645,13 @@ pipeline {
|
||||
|ReleaseContent = "${_ReleaseContent_Title}" + "\\n" \\
|
||||
| + "\\n" \\
|
||||
| + "Reference documentation: [mkdocs page](https://chacha.ddns.net/mkdocs-web/${_PROJECT_USER_NAME}/${PY_PROJECT_NAME}/${_GIT_BRANCH}/${PY_PROJECT_VERSION_STRIPPED}/) "
|
||||
|
|
||||
|Changelog='''${CHANGELOG}'''
|
||||
|
|
||||
|ReleaseContent = ReleaseContent + "\\n"+ "\\n"+ "## Changelog:\\n" + Changelog
|
||||
|
|
||||
|if not Changelog:
|
||||
| ReleaseContent = ReleaseContent + "code/project maintainance"
|
||||
|
|
||||
|data={
|
||||
| "body": ReleaseContent,
|
||||
|
||||
@@ -19,7 +19,6 @@ from radon.cli import Config
|
||||
from radon.cli.harvest import CCHarvester, HCHarvester, MIHarvester
|
||||
|
||||
from .helper_base import helper_withresults_base
|
||||
from pprint import pprint
|
||||
|
||||
|
||||
class complexity_check(helper_withresults_base):
|
||||
|
||||
15
mkdocs.yml
15
mkdocs.yml
@@ -1,11 +1,11 @@
|
||||
docs_dir: docs
|
||||
site_name: pygitversionhelper
|
||||
site_url: 'https://chacha.ddns.net/mkdocs-web/chacha/pygitversionhelper/latest/'
|
||||
site_description: 'A simple simple git version helper in python.'
|
||||
site_url: https://chacha.ddns.net/mkdocs-web/chacha/pygitversionhelper/latest/
|
||||
site_description: A simple simple git version helper in python.
|
||||
site_author: prune
|
||||
repo_url: 'https://chacha.ddns.net/gitea/chacha/pygitversionhelper'
|
||||
repo_url: https://chacha.ddns.net/gitea/chacha/pygitversionhelper
|
||||
use_directory_urls: false
|
||||
copyright: 'CC BY-NC-SA 4.0'
|
||||
copyright: CC BY-NC-SA 4.0
|
||||
theme:
|
||||
name: material
|
||||
features:
|
||||
@@ -57,6 +57,13 @@ plugins:
|
||||
show_root_full_path: false
|
||||
merge_init_into_class: true
|
||||
separate_signature: true
|
||||
- with-pdf:
|
||||
cover_subtitle: User Manual
|
||||
cover_logo: C:\Users\chacha\git\pygitversionhelper\docs-static\Library.jpg
|
||||
verbose: false
|
||||
exclude_pages:
|
||||
- LICENSE
|
||||
output_path: C:\Users\chacha\git\pygitversionhelper\helpers-results\doc_gen\site\pdf\manual.pdf
|
||||
markdown_extensions:
|
||||
- def_list
|
||||
- tables
|
||||
|
||||
@@ -57,6 +57,7 @@ if TYPE_CHECKING:
|
||||
"merged_output": Optional[bool],
|
||||
"ignore_unknown_tags": Optional[bool],
|
||||
"output_format": Optional[str],
|
||||
"ignore_merged": Optional[bool],
|
||||
},
|
||||
total=False,
|
||||
)
|
||||
@@ -157,16 +158,27 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
|
||||
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)
|
||||
|
||||
str_cmd: str
|
||||
if ("same_branch" in kwargs) and (kwargs["same_branch"] is True):
|
||||
commits = _exec(f"git rev-list --first-parent --ancestry-path {tag_commit_id}..{current_commit_id}")
|
||||
str_cmd = f"git rev-list --first-parent {tag_commit_id}..{current_commit_id}" # ok
|
||||
else:
|
||||
commits = _exec(f"git rev-list --ancestry-path {tag_commit_id}..{current_commit_id}")
|
||||
str_cmd = f"git rev-list {tag_commit_id}..{current_commit_id}" # ok
|
||||
|
||||
if ("ignore_merged" in kwargs) and (kwargs["ignore_merged"] is True):
|
||||
str_cmd = str_cmd + " --no-merges" # ok
|
||||
|
||||
try:
|
||||
commits = _exec(str_cmd)
|
||||
except gitversionhelper.unknownGITFatalError as _e:
|
||||
raise cls.commitNotFound("no commit found in commit history") from _e
|
||||
|
||||
result = []
|
||||
for commit in commits:
|
||||
result.append(cls.getMessage(commit))
|
||||
@@ -185,7 +197,7 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
|
||||
"""
|
||||
try:
|
||||
res = _exec(
|
||||
f'git log -z --pretty="tformat:%B%-C()" -n 1 {commit_hash}',
|
||||
f'git log -z --pretty="tformat:%B%-C()" -n 1 {commit_hash}', # ok
|
||||
None,
|
||||
True,
|
||||
)
|
||||
@@ -204,9 +216,10 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
|
||||
the commit Id
|
||||
"""
|
||||
try:
|
||||
res = _exec(f"git rev-list -n 1 {tag}")
|
||||
res = _exec(f"git rev-list -n 1 {tag}") # ok
|
||||
except gitversionhelper.unknownGITFatalError as _e:
|
||||
raise cls.commitNotFound("no commit found in commit history") from _e
|
||||
|
||||
if len(res) == 0:
|
||||
raise cls.commitNotFound("no commit found in commit history")
|
||||
return res[0]
|
||||
@@ -216,16 +229,23 @@ class gitversionhelper: # pylint: disable=too-few-public-methods
|
||||
"""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):
|
||||
try:
|
||||
res = _exec("git rev-parse HEAD")
|
||||
except gitversionhelper.unknownGITFatalError as _e:
|
||||
raise cls.commitNotFound("no commit found in commit history") from _e
|
||||
str_cmd = "git rev-list --max-count=1 --date-order HEAD --first-parent" # ok
|
||||
else:
|
||||
res = _exec('git for-each-ref --sort=-committerdate refs/heads/ --count 1 --format="%(objectname)"')
|
||||
str_cmd = "git log --format=%H --all -n1" # ok
|
||||
|
||||
if ("ignore_merged" in kwargs) and (kwargs["ignore_merged"] is True):
|
||||
str_cmd = str_cmd + " --no-merges" # ok
|
||||
|
||||
try:
|
||||
res = _exec(str_cmd)
|
||||
except gitversionhelper.unknownGITFatalError as _e:
|
||||
raise cls.commitNotFound("no commit found in commit history") from _e
|
||||
|
||||
if len(res) == 0:
|
||||
raise cls.commitNotFound("no commit found in commit history")
|
||||
|
||||
@@ -1009,6 +1009,16 @@ class Test_gitversionhelper(unittest.TestCase):
|
||||
self.assertEqual(_v.minor, 3)
|
||||
self.assertEqual(_v.patch, 0)
|
||||
|
||||
with open("demofile.txt", "w+t") as tmpFile:
|
||||
tmpFile.write("testvalue4")
|
||||
os.system("git add .")
|
||||
os.system('git commit -m "4th commit"')
|
||||
|
||||
with open("demofile.txt", "w+t") as tmpFile:
|
||||
tmpFile.write("testvalue5")
|
||||
os.system("git add .")
|
||||
os.system('git commit -m "5th commit"')
|
||||
|
||||
os.system("git switch master")
|
||||
|
||||
_v = pygitversionhelper.gitversionhelper.version.getLastVersion(version_std="PEP440")
|
||||
@@ -1404,6 +1414,17 @@ class Test_gitversionhelper(unittest.TestCase):
|
||||
cmd = "git commit -m".split()
|
||||
cmd.append(commit_message5)
|
||||
subprocess.run(cmd, text=True, check=True)
|
||||
os.system(f"git tag 0.1.1.post4")
|
||||
|
||||
commit_message6 = "6.1 update this" + os.linesep + "6.1 fix that" + os.linesep + "6.1 test"
|
||||
commit_message6 = commit_message6.replace("\r\n", "\n").replace("\n", "\r\n")
|
||||
with open("demofile.txt", "w+t") as tmpFile:
|
||||
tmpFile.write("testvalue6")
|
||||
os.system("git add .")
|
||||
|
||||
cmd = "git commit -m".split()
|
||||
cmd.append(commit_message6)
|
||||
subprocess.run(cmd, text=True, check=True)
|
||||
|
||||
cmd = "git switch master".split()
|
||||
subprocess.run(cmd, text=True, check=True)
|
||||
@@ -1412,7 +1433,42 @@ class Test_gitversionhelper(unittest.TestCase):
|
||||
self.assertEqual(os.linesep.join([commit_message4, commit_message3, commit_message2]), res)
|
||||
|
||||
res = pygitversionhelper.gitversionhelper.commit.getMessagesSinceTag("0.1.1", merged_output=True)
|
||||
self.assertEqual(os.linesep.join([commit_message5, commit_message4, commit_message3, commit_message2]), res)
|
||||
self.assertEqual(os.linesep.join([commit_message6, commit_message5, commit_message4, commit_message3, commit_message2]), res)
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
merge_message = "automerge"
|
||||
cmd = "git merge --no-ff dev -m".split()
|
||||
cmd.append(merge_message)
|
||||
subprocess.run(cmd, text=True, check=True)
|
||||
|
||||
res = pygitversionhelper.gitversionhelper.commit.getMessagesSinceTag("0.1.1", merged_output=True, same_branch=True)
|
||||
self.assertEqual(os.linesep.join([merge_message, commit_message4, commit_message3, commit_message2]), res)
|
||||
|
||||
res = pygitversionhelper.gitversionhelper.commit.getMessagesSinceTag("0.1.1", merged_output=True)
|
||||
self.assertEqual(
|
||||
set(
|
||||
merge_message.splitlines()
|
||||
+ commit_message6.splitlines()
|
||||
+ commit_message5.splitlines()
|
||||
+ commit_message4.splitlines()
|
||||
+ commit_message3.splitlines()
|
||||
+ commit_message2.splitlines()
|
||||
),
|
||||
set(res.splitlines()),
|
||||
)
|
||||
|
||||
res = pygitversionhelper.gitversionhelper.commit.getMessagesSinceTag("0.1.1", merged_output=True, ignore_merged=True)
|
||||
self.assertEqual(
|
||||
set(
|
||||
commit_message6.splitlines()
|
||||
+ commit_message5.splitlines()
|
||||
+ commit_message4.splitlines()
|
||||
+ commit_message3.splitlines()
|
||||
+ commit_message2.splitlines()
|
||||
),
|
||||
set(res.splitlines()),
|
||||
)
|
||||
|
||||
def tearDown(self):
|
||||
os.chdir("/")
|
||||
|
||||
Reference in New Issue
Block a user