proj-flow 0.15.2__tar.gz → 0.15.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {proj_flow-0.15.2 → proj_flow-0.15.3}/CHANGELOG.rst +8 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/PKG-INFO +1 -1
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/__init__.py +1 -1
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/commit.py +5 -1
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/release.py +13 -7
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/minimal/base.py +2 -1
- proj_flow-0.15.3/src/proj_flow/minimal/ext/bug_report.py +75 -0
- proj_flow-0.15.2/src/proj_flow/minimal/ext/bug_report.py +0 -33
- {proj_flow-0.15.2 → proj_flow-0.15.3}/.flow/config.yaml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/.gitignore +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/.readthedocs.yaml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/LICENSE +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/README.md +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/ROADMAP.md +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/pyproject.toml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/__main__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/api/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/api/arg.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/api/completers.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/api/ctx.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/api/env.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/api/init.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/api/makefile.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/api/release.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/api/step.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/base/__cmake_version__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/base/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/base/cmd.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/base/inspect.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/base/matrix.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/base/name_list.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/base/plugins.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/base/registry.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/base/uname.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/cli/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/cli/argument.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/cli/finder.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/dependency.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/cmake/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/cmake/parser.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/cmake/project.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/cmake/steps.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/conan/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/conan/_conan.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/github/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/github/cli.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/github/hosting.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/github/publishing.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/github/switches.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/markdown_changelog.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/python/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/python/rtdocs.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/python/steps.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/python/version.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/re_structured_changelog.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/sign/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/sign/api.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/sign/win32.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/ext/store.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/flow/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/flow/configs.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/flow/layer.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/flow/steps.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/error.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/fmt.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/format.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/hosting/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/hosting/github.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/msg.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/rich_text/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/rich_text/api.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/rich_text/markdown.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/log/rich_text/re_structured_text.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/minimal/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/minimal/bootstrap.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/minimal/init.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/minimal/list.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/minimal/run.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/minimal/system.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/project/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/project/api.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/project/cplusplus/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/project/cplusplus/cmake_context.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/project/cplusplus/conan_context.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/project/cplusplus/project.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/project/data.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/project/interact.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.clang-format +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.flow/config.yml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.flow/flow.py.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.flow/matrix.yml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.flow/official.yml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.gitignore +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/README.md.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/flow +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/flow.cmd +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/base.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/cmake/common.cmake.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/__init__.py.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/__init__.py.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/magick.py.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/base.cmake.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/config.cmake +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/cpack.cmake +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/wix/cpack.cmake.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/wix/patches.in.wix +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/wix.cmake.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/CMakeGraphVizOptions.cmake +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/CMakeLists.txt.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/CMakePresets.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/appicon.ico +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/appicon.png +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/wix_banner.bmp +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/icons/.gitignore +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/icons/appicon-mask.svg +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/icons/appicon.svg +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/src/main.cc.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/src/version.hpp.in.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/tests/test.cc.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/conan/.flow/cmake/libcxx_toolchain.cmake +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/conan/.flow/cmake/output_dirs_setup.cmake +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/conan/conanfile.txt +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/conan.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/.github/linters/.isort.cfg +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/.github/linters/.mypy.ini +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/.github/workflows/build.yml.auto-release +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/.github/workflows/build.yml.basic +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/.github/workflows/linter.yml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/CPPLINT.cfg +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/bug_report.md.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/feature_request.md.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_social/CODE_OF_CONDUCT.md.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_social/CONTRIBUTING.md +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_social.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/licenses/0BSD.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/licenses/MIT.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/licenses/Unlicense.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/licenses/WTFPL.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/licenses/Zlib.mustache +0 -0
|
@@ -4,6 +4,14 @@ Changelog
|
|
|
4
4
|
|
|
5
5
|
All notable changes to this project will be documented in this file.
|
|
6
6
|
|
|
7
|
+
`0.15.3 <https://github.com/mzdun/proj-flow/compare/v0.15.2...v0.15.3>`_ (2025-02-24)
|
|
8
|
+
=====================================================================================
|
|
9
|
+
|
|
10
|
+
Bug Fixes
|
|
11
|
+
---------
|
|
12
|
+
|
|
13
|
+
- only use two most-recent minor versions in YAML (`24e4b05 <https://github.com/mzdun/proj-flow/commit/24e4b05c6bb6c3dc2a7db534e49f7ba542d396da>`_)
|
|
14
|
+
|
|
7
15
|
`0.15.2 <https://github.com/mzdun/proj-flow/compare/v0.15.1...v0.15.2>`_ (2025-02-24)
|
|
8
16
|
=====================================================================================
|
|
9
17
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: proj-flow
|
|
3
|
-
Version: 0.15.
|
|
3
|
+
Version: 0.15.3
|
|
4
4
|
Summary: C++ project maintenance, automated
|
|
5
5
|
Project-URL: Changelog, https://github.com/mzdun/proj-flow/blob/main/CHANGELOG.rst
|
|
6
6
|
Project-URL: Documentation, https://proj-flow.readthedocs.io/en/latest/
|
|
@@ -139,7 +139,11 @@ def _get_commit(hash: str, short_hash: str, message: str) -> Optional[Commit]:
|
|
|
139
139
|
|
|
140
140
|
breaking_change = None
|
|
141
141
|
body = "\n".join(lines).strip().split("BREAKING CHANGE", 1)
|
|
142
|
-
if
|
|
142
|
+
if (
|
|
143
|
+
len(body) > 1
|
|
144
|
+
and (len(body[0]) == 0 or body[0][-1:] == "\n")
|
|
145
|
+
and (len(body[1]) == 1 or body[1][:1] == ":")
|
|
146
|
+
):
|
|
143
147
|
body = body[1].lstrip(":").strip()
|
|
144
148
|
breaking_change = [
|
|
145
149
|
re.sub(r"\s+", " ", para.strip()) for para in body.split("\n\n")
|
|
@@ -6,8 +6,7 @@ The **proj_flow.log.release** performs a relase on the hosting service.
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
import typing
|
|
9
|
-
from
|
|
10
|
-
from typing import Iterable, Union
|
|
9
|
+
from typing import Iterable, Optional, Union
|
|
11
10
|
|
|
12
11
|
from proj_flow import api
|
|
13
12
|
from proj_flow.api import env
|
|
@@ -18,9 +17,14 @@ from proj_flow.log.error import NoProjectError, VersionNotAdvancing
|
|
|
18
17
|
OneOrMoreStrings = Union[str, Iterable[str]]
|
|
19
18
|
|
|
20
19
|
|
|
21
|
-
class VersionUpdater
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
class VersionUpdater:
|
|
21
|
+
def on_version_change(self, new_version: str) -> Optional[OneOrMoreStrings]:
|
|
22
|
+
return None
|
|
23
|
+
|
|
24
|
+
def on_version_change_tags(
|
|
25
|
+
self, new_version: str, tags: list[str]
|
|
26
|
+
) -> Optional[OneOrMoreStrings]:
|
|
27
|
+
return self.on_version_change(new_version)
|
|
24
28
|
|
|
25
29
|
|
|
26
30
|
version_updaters = registry.Registry[VersionUpdater]("VersionUpdater")
|
|
@@ -114,8 +118,10 @@ def add_release(
|
|
|
114
118
|
files_to_commit.append(version_path)
|
|
115
119
|
|
|
116
120
|
for updater in version_updaters.get():
|
|
117
|
-
modified = updater.
|
|
118
|
-
if
|
|
121
|
+
modified = updater.on_version_change_tags(next_version, tags)
|
|
122
|
+
if modified is None:
|
|
123
|
+
continue
|
|
124
|
+
elif isinstance(modified, str):
|
|
119
125
|
files_to_commit.append(modified)
|
|
120
126
|
else:
|
|
121
127
|
files_to_commit.extend(modified)
|
|
@@ -12,6 +12,7 @@ from typing import List
|
|
|
12
12
|
from proj_flow import __version__, api
|
|
13
13
|
from proj_flow.flow import layer
|
|
14
14
|
|
|
15
|
+
|
|
15
16
|
class GitInit(api.init.InitStep):
|
|
16
17
|
layers: List[layer.LayerInfo] = []
|
|
17
18
|
|
|
@@ -27,7 +28,7 @@ class GitInit(api.init.InitStep):
|
|
|
27
28
|
|
|
28
29
|
git("init")
|
|
29
30
|
git("add", ".")
|
|
30
|
-
|
|
31
|
+
|
|
31
32
|
executables: List[str] = []
|
|
32
33
|
|
|
33
34
|
for fs_layer in GitInit.layers:
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Copyright (c) 2025 Marcin Zdun
|
|
2
|
+
# This code is licensed under MIT license (see LICENSE for details)
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
The **proj_flow.minimal.ext.bug_report** adds next version to bug_report.yaml
|
|
6
|
+
next to CHANGELOG.rst.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import re
|
|
10
|
+
import sys
|
|
11
|
+
from typing import List, Tuple
|
|
12
|
+
|
|
13
|
+
from proj_flow.log import release
|
|
14
|
+
|
|
15
|
+
YAML_PATH = ".github/ISSUE_TEMPLATE/bug_report.yaml"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def _version(ver: str) -> Tuple[int, int, int, str]:
|
|
19
|
+
if ver[:1] == "v":
|
|
20
|
+
ver = ver[1:]
|
|
21
|
+
|
|
22
|
+
m = re.match(r"([0-9]+)\.([0-9]+)\.([0-9]+)(.*)", ver)
|
|
23
|
+
if m is None:
|
|
24
|
+
print(f"fatal error: cannot parse {ver}", file=sys.stderr)
|
|
25
|
+
raise SystemExit(1)
|
|
26
|
+
return (int(m.group(1)), int(m.group(2)), int(m.group(3)), ver)
|
|
27
|
+
|
|
28
|
+
def _prev_version(new_version: str, tags: List[str]):
|
|
29
|
+
current = _version(new_version)
|
|
30
|
+
versions = [_version(tag) for tag in reversed(tags)]
|
|
31
|
+
index = 0
|
|
32
|
+
while index < len(versions):
|
|
33
|
+
comp = versions[index]
|
|
34
|
+
if comp[0] != current[0] or comp[1] != current[1]:
|
|
35
|
+
break
|
|
36
|
+
|
|
37
|
+
index += 1
|
|
38
|
+
if index >= len(versions):
|
|
39
|
+
index = 0
|
|
40
|
+
|
|
41
|
+
return None if index > len(versions) else versions[index][-1]
|
|
42
|
+
|
|
43
|
+
@release.version_updaters.add
|
|
44
|
+
class VersionUpdater(release.VersionUpdater):
|
|
45
|
+
def on_version_change_tags(self, new_version: str, tags: List[str]):
|
|
46
|
+
old_version = _prev_version(new_version, tags)
|
|
47
|
+
|
|
48
|
+
range = [f" - Current (v{new_version})\n"]
|
|
49
|
+
if old_version:
|
|
50
|
+
range.extend(
|
|
51
|
+
[
|
|
52
|
+
f" - Previous (v{old_version})\n",
|
|
53
|
+
f" - Older, than v{old_version}\n",
|
|
54
|
+
]
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
with open(YAML_PATH, encoding="UTF-8") as inf:
|
|
58
|
+
lines = inf.readlines()
|
|
59
|
+
|
|
60
|
+
try:
|
|
61
|
+
id_index = lines.index(" id: version\n")
|
|
62
|
+
option_index = lines.index(" options:\n", id_index) + 1
|
|
63
|
+
option_index_end = option_index
|
|
64
|
+
while option_index_end < len(lines) and lines[option_index_end].startswith(
|
|
65
|
+
" - "
|
|
66
|
+
):
|
|
67
|
+
option_index_end += 1
|
|
68
|
+
lines[option_index:option_index_end] = range
|
|
69
|
+
except ValueError as e:
|
|
70
|
+
print(e, file=sys.stderr)
|
|
71
|
+
|
|
72
|
+
with open(YAML_PATH, "w", encoding="UTF-8") as outf:
|
|
73
|
+
outf.writelines(lines)
|
|
74
|
+
|
|
75
|
+
return YAML_PATH
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2025 Marcin Zdun
|
|
2
|
-
# This code is licensed under MIT license (see LICENSE for details)
|
|
3
|
-
|
|
4
|
-
"""
|
|
5
|
-
The **proj_flow.minimal.ext.bug_report** adds next version to bug_report.yaml
|
|
6
|
-
next to CHANGELOG.rst.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
import re
|
|
10
|
-
import sys
|
|
11
|
-
|
|
12
|
-
from proj_flow.log import release
|
|
13
|
-
|
|
14
|
-
YAML_PATH = ".github/ISSUE_TEMPLATE/bug_report.yaml"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
@release.version_updaters.add
|
|
18
|
-
class VersionUpdater(release.VersionUpdater):
|
|
19
|
-
def on_version_change(self, new_version: str):
|
|
20
|
-
with open(YAML_PATH, encoding="UTF-8") as inf:
|
|
21
|
-
lines = inf.readlines()
|
|
22
|
-
|
|
23
|
-
try:
|
|
24
|
-
id_index = lines.index(" id: version\n")
|
|
25
|
-
option_index = lines.index(" options:\n", id_index) + 1
|
|
26
|
-
lines[option_index:option_index] = f" - v{new_version}\n"
|
|
27
|
-
except ValueError as e:
|
|
28
|
-
print(e, file=sys.stderr)
|
|
29
|
-
|
|
30
|
-
with open(YAML_PATH, "w", encoding="UTF-8") as outf:
|
|
31
|
-
outf.writelines(lines)
|
|
32
|
-
|
|
33
|
-
return YAML_PATH
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.flow/flow.py.mustache
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/cpack.cmake
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/CMakeGraphVizOptions.cmake
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/CMakeLists.txt.mustache
RENAMED
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/appicon.ico
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/appicon.png
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/wix_banner.bmp
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/icons/.gitignore
RENAMED
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/icons/appicon.svg
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/src/main.cc.mustache
RENAMED
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/tests/test.cc.mustache
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/CPPLINT.cfg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_social/CONTRIBUTING.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|