proj-flow 0.15.1__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.1 → proj_flow-0.15.3}/CHANGELOG.rst +16 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/PKG-INFO +1 -1
- {proj_flow-0.15.1 → proj_flow-0.15.3}/ROADMAP.md +1 -1
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/__init__.py +1 -1
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/flow/layer.py +19 -2
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/commit.py +5 -1
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/release.py +13 -7
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/minimal/base.py +15 -0
- proj_flow-0.15.3/src/proj_flow/minimal/ext/bug_report.py +75 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/minimal/init.py +3 -0
- proj_flow-0.15.3/src/proj_flow/template/layers/base.json +3 -0
- proj_flow-0.15.1/src/proj_flow/minimal/ext/bug_report.py +0 -33
- proj_flow-0.15.1/src/proj_flow/template/layers/base.json +0 -2
- {proj_flow-0.15.1 → proj_flow-0.15.3}/.flow/config.yaml +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/.gitignore +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/.readthedocs.yaml +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/LICENSE +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/README.md +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/pyproject.toml +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/__main__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/api/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/api/arg.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/api/completers.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/api/ctx.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/api/env.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/api/init.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/api/makefile.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/api/release.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/api/step.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/base/__cmake_version__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/base/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/base/cmd.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/base/inspect.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/base/matrix.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/base/name_list.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/base/plugins.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/base/registry.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/base/uname.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/cli/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/cli/argument.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/cli/finder.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/dependency.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/cmake/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/cmake/parser.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/cmake/project.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/cmake/steps.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/conan/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/cplusplus/conan/_conan.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/github/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/github/cli.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/github/hosting.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/github/publishing.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/github/switches.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/markdown_changelog.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/python/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/python/rtdocs.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/python/steps.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/python/version.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/re_structured_changelog.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/sign/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/sign/api.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/sign/win32.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/ext/store.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/flow/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/flow/configs.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/flow/steps.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/error.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/fmt.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/format.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/hosting/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/hosting/github.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/msg.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/rich_text/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/rich_text/api.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/rich_text/markdown.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/log/rich_text/re_structured_text.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/minimal/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/minimal/bootstrap.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/minimal/list.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/minimal/run.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/minimal/system.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/project/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/project/api.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/project/cplusplus/__init__.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/project/cplusplus/cmake_context.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/project/cplusplus/conan_context.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/project/cplusplus/project.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/project/data.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/project/interact.py +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.clang-format +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.flow/config.yml +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.flow/flow.py.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.flow/matrix.yml +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.flow/official.yml +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/.gitignore +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/README.md.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/flow +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/base/flow.cmd +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/cmake/common.cmake.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/__init__.py.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/__init__.py.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/magick.py.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/base.cmake.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/config.cmake +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/cpack.cmake +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/wix/cpack.cmake.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/wix/patches.in.wix +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/.flow/packages/wix.cmake.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/CMakeGraphVizOptions.cmake +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/CMakeLists.txt.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/CMakePresets.json +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/appicon.ico +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/appicon.png +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/wix_banner.bmp +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/icons/.gitignore +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/icons/appicon-mask.svg +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/icons/appicon.svg +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/src/main.cc.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/src/version.hpp.in.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/tests/test.cc.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake.json +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/conan/.flow/cmake/libcxx_toolchain.cmake +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/conan/.flow/cmake/output_dirs_setup.cmake +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/conan/conanfile.txt +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/conan.json +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/.github/linters/.isort.cfg +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/.github/linters/.mypy.ini +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/.github/workflows/build.yml.auto-release +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/.github/workflows/build.yml.basic +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/.github/workflows/linter.yml +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions/CPPLINT.cfg +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_actions.json +0 -0
- {proj_flow-0.15.1 → 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.1 → 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.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_social/CODE_OF_CONDUCT.md.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_social/CONTRIBUTING.md +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/github_social.json +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/licenses/0BSD.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/licenses/MIT.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/licenses/Unlicense.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/licenses/WTFPL.mustache +0 -0
- {proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/licenses/Zlib.mustache +0 -0
|
@@ -4,6 +4,22 @@ 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
|
+
|
|
15
|
+
`0.15.2 <https://github.com/mzdun/proj-flow/compare/v0.15.1...v0.15.2>`_ (2025-02-24)
|
|
16
|
+
=====================================================================================
|
|
17
|
+
|
|
18
|
+
Bug Fixes
|
|
19
|
+
---------
|
|
20
|
+
|
|
21
|
+
- carry +x on Windows (`846f6a1 <https://github.com/mzdun/proj-flow/commit/846f6a1b8d71d682e04dbd12b31ba9a6311b3d0b>`_)
|
|
22
|
+
|
|
7
23
|
`0.15.1 <https://github.com/mzdun/proj-flow/compare/v0.15.0...v0.15.1>`_ (2025-02-23)
|
|
8
24
|
=====================================================================================
|
|
9
25
|
|
|
@@ -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/
|
|
@@ -22,6 +22,7 @@ class FileInfo:
|
|
|
22
22
|
src: str
|
|
23
23
|
dst: str
|
|
24
24
|
is_mustache: bool
|
|
25
|
+
is_executable: bool
|
|
25
26
|
when: Optional[str] = None
|
|
26
27
|
|
|
27
28
|
@classmethod
|
|
@@ -32,12 +33,19 @@ class FileInfo:
|
|
|
32
33
|
json_file = cast(dict, filelist.get(key, {}))
|
|
33
34
|
path = cast(Optional[str], json_file.get("path"))
|
|
34
35
|
when = cast(Optional[str], json_file.get("when"))
|
|
36
|
+
is_executable = cast(bool, json_file.get("executable"))
|
|
35
37
|
dst = (
|
|
36
38
|
chevron.render(path, context).replace("/", os.sep)
|
|
37
39
|
if path is not None
|
|
38
40
|
else basename if is_mustache else src
|
|
39
41
|
)
|
|
40
|
-
return cls(
|
|
42
|
+
return cls(
|
|
43
|
+
src=src,
|
|
44
|
+
dst=dst,
|
|
45
|
+
is_mustache=is_mustache,
|
|
46
|
+
is_executable=is_executable,
|
|
47
|
+
when=when,
|
|
48
|
+
)
|
|
41
49
|
|
|
42
50
|
def template(self):
|
|
43
51
|
open_mstch = "{{"
|
|
@@ -71,6 +79,10 @@ class FileInfo:
|
|
|
71
79
|
else:
|
|
72
80
|
shutil.copy2(src, dst, follow_symlinks=False)
|
|
73
81
|
|
|
82
|
+
def get_git_checks(self):
|
|
83
|
+
if self.is_executable:
|
|
84
|
+
yield self
|
|
85
|
+
|
|
74
86
|
|
|
75
87
|
@dataclass
|
|
76
88
|
class LayerInfo:
|
|
@@ -149,6 +161,11 @@ class LayerInfo:
|
|
|
149
161
|
if not rt.silent:
|
|
150
162
|
print()
|
|
151
163
|
|
|
164
|
+
def get_git_checks(self):
|
|
165
|
+
for file in self.files:
|
|
166
|
+
for special in file.get_git_checks():
|
|
167
|
+
yield special
|
|
168
|
+
|
|
152
169
|
|
|
153
170
|
def copy_license(rt: env.Runtime, context: ctx.SettingsType):
|
|
154
171
|
license = path_get(context, "COPY.LICENSE")
|
|
@@ -159,7 +176,7 @@ def copy_license(rt: env.Runtime, context: ctx.SettingsType):
|
|
|
159
176
|
os.path.join(ctx.package_root, ctx.template_dir, "licenses")
|
|
160
177
|
)
|
|
161
178
|
license_file = f"{license}.mustache"
|
|
162
|
-
info = FileInfo(license_file, "LICENSE", is_mustache=True)
|
|
179
|
+
info = FileInfo(license_file, "LICENSE", is_mustache=True, is_executable=False)
|
|
163
180
|
info.run(licenses_dir, rt, context)
|
|
164
181
|
|
|
165
182
|
|
|
@@ -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)
|
|
@@ -7,11 +7,15 @@ new projects.
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import sys
|
|
10
|
+
from typing import List
|
|
10
11
|
|
|
11
12
|
from proj_flow import __version__, api
|
|
13
|
+
from proj_flow.flow import layer
|
|
12
14
|
|
|
13
15
|
|
|
14
16
|
class GitInit(api.init.InitStep):
|
|
17
|
+
layers: List[layer.LayerInfo] = []
|
|
18
|
+
|
|
15
19
|
def priority(self):
|
|
16
20
|
return sys.maxsize
|
|
17
21
|
|
|
@@ -24,6 +28,17 @@ class GitInit(api.init.InitStep):
|
|
|
24
28
|
|
|
25
29
|
git("init")
|
|
26
30
|
git("add", ".")
|
|
31
|
+
|
|
32
|
+
executables: List[str] = []
|
|
33
|
+
|
|
34
|
+
for fs_layer in GitInit.layers:
|
|
35
|
+
for info in fs_layer.get_git_checks():
|
|
36
|
+
if info.is_executable:
|
|
37
|
+
executables.append(info.dst)
|
|
38
|
+
|
|
39
|
+
if len(executables):
|
|
40
|
+
git("update-index", "--chmod=+x", *executables)
|
|
41
|
+
|
|
27
42
|
git("commit", "-m", "Initial commit")
|
|
28
43
|
|
|
29
44
|
|
|
@@ -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
|
|
@@ -15,6 +15,7 @@ import yaml
|
|
|
15
15
|
from proj_flow import dependency, flow
|
|
16
16
|
from proj_flow.api import arg, ctx, env, init
|
|
17
17
|
from proj_flow.base.name_list import name_list
|
|
18
|
+
from proj_flow.minimal import base
|
|
18
19
|
from proj_flow.project import api, interact
|
|
19
20
|
|
|
20
21
|
|
|
@@ -148,6 +149,8 @@ def main(
|
|
|
148
149
|
|
|
149
150
|
current_project.append_extensions(context)
|
|
150
151
|
|
|
152
|
+
base.GitInit.layers = layers
|
|
153
|
+
|
|
151
154
|
steps = sorted((step.priority(), i, step) for i, step in enumerate(init.__steps))
|
|
152
155
|
for _, _, step in steps:
|
|
153
156
|
step.postprocess(rt, context)
|
|
@@ -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
|
{proj_flow-0.15.1 → 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
|
{proj_flow-0.15.1 → 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.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/CMakeGraphVizOptions.cmake
RENAMED
|
File without changes
|
{proj_flow-0.15.1 → 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.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/appicon.ico
RENAMED
|
File without changes
|
{proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/appicon.png
RENAMED
|
File without changes
|
{proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/wix_banner.bmp
RENAMED
|
File without changes
|
{proj_flow-0.15.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp
RENAMED
|
File without changes
|
{proj_flow-0.15.1 → 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.1 → proj_flow-0.15.3}/src/proj_flow/template/layers/cmake/data/icons/appicon.svg
RENAMED
|
File without changes
|
{proj_flow-0.15.1 → 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.1 → 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.1 → 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.1 → 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
|