proj-flow 0.13.1__py3-none-any.whl → 0.14.0__py3-none-any.whl

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/__init__.py CHANGED
@@ -6,4 +6,4 @@ The **proj_flow** contains only ``__version__`` to be updated, nothing more.
6
6
  This is in an attempt to make this module easy to load initially.
7
7
  """
8
8
 
9
- __version__ = "0.13.1"
9
+ __version__ = "0.14.0"
@@ -85,6 +85,10 @@ def release_cmd(
85
85
  choices=["ON", "OFF"],
86
86
  ),
87
87
  ],
88
+ changelog: typing.Annotated[
89
+ bool,
90
+ arg.FlagArgument(help="Even with --dry-run, write changes in project files, changelog, etc."),
91
+ ],
88
92
  ):
89
93
  """
90
94
  Bump the project version based on current git logs, create a "chore"
@@ -104,6 +108,7 @@ def release_cmd(
104
108
  try:
105
109
  next_tag = log.release.add_release(
106
110
  rt=rt,
111
+ dbg_changelog=changelog,
107
112
  forced_level=forced_level,
108
113
  take_all=all,
109
114
  draft=publish != "ON",
proj_flow/log/release.py CHANGED
@@ -57,6 +57,7 @@ def _get_project(rt: env.Runtime):
57
57
 
58
58
  def add_release(
59
59
  rt: env.Runtime,
60
+ dbg_changelog: bool,
60
61
  forced_level: typing.Optional[commit.Level],
61
62
  take_all: bool,
62
63
  draft: bool,
@@ -103,7 +104,7 @@ def add_release(
103
104
  rt.fatal(f"Tag {setup.curr_tag} already exists.")
104
105
 
105
106
  files_to_commit: typing.List[str] = []
106
- if not rt.dry_run:
107
+ if dbg_changelog or not rt.dry_run:
107
108
  generator.update_changelog(changelog, setup, rt)
108
109
  files_to_commit.append(generator.filename)
109
110
 
@@ -0,0 +1,33 @@
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proj-flow
3
- Version: 0.13.1
3
+ Version: 0.14.0
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/
@@ -8,7 +8,7 @@ Project-URL: Homepage, https://pypi.org/project/proj-flow/
8
8
  Project-URL: Source Code, https://github.com/mzdun/proj-flow
9
9
  Author-email: Marcin Zdun <marcin.zdun@gmail.com>
10
10
  License-File: LICENSE
11
- Keywords: C/C++,c++,ci,cpp,dependency,developer,manager,tool
11
+ Keywords: C/C++,build-tool,c++,ci-cd,continuous-integration,cpp,dependencies,dependency-manager,developer,developer-tools,development,meta-build-tool,pipeline,tools-and-automation
12
12
  Classifier: Development Status :: 4 - Beta
13
13
  Classifier: Intended Audience :: Developers
14
14
  Classifier: License :: OSI Approved :: MIT License
@@ -1,4 +1,4 @@
1
- proj_flow/__init__.py,sha256=wjuJFVjqZoovl8bpB3f15GhniAx4Z-59lj-Z9hP3cAE,277
1
+ proj_flow/__init__.py,sha256=qiWw5Fx__nnpw0LI39btJTrpcmikuMylzzW4wC0CXQk,277
2
2
  proj_flow/__main__.py,sha256=HUar_qQ9Ndmchmryegtzu__5wukwCLrFN_SGRl5Ol_M,233
3
3
  proj_flow/dependency.py,sha256=CpcnR6El8AO9hlLc9lQtYQADYlkx3GMHlkLYbEAtdMI,4639
4
4
  proj_flow/api/__init__.py,sha256=gV2f6kll_5JXtvkGASvnx7CbOWr34PHOdck-4ce-qEk,378
@@ -34,7 +34,7 @@ proj_flow/ext/cplusplus/cmake/steps.py,sha256=IBxATzcJfDI5XibaKgXDnKDKPIaJM1fAJK
34
34
  proj_flow/ext/cplusplus/conan/__init__.py,sha256=Fv839SWsKPWMZs9ox9T-bofZ4xDJXOI5UfWKQkm0Vtg,1924
35
35
  proj_flow/ext/cplusplus/conan/_conan.py,sha256=9xnji-f8uN7huXLqavVBUDC33CgnjBIyZX6wVcGm2RA,3352
36
36
  proj_flow/ext/github/__init__.py,sha256=Mgx19YS6SYBXYB66_pOgIgwuB2WKRxqp5UGutq0B9Xk,282
37
- proj_flow/ext/github/cli.py,sha256=ZPLTPEjxQEWnxc5pZnb9Rj-P-PUH2kpkxIvC5c0f9zo,6007
37
+ proj_flow/ext/github/cli.py,sha256=ClqnQoqphVR9KxyO7lwNLoai6KHvynS_fbxRrgGzMEk,6201
38
38
  proj_flow/ext/github/hosting.py,sha256=3iW8QjeJk7MyqKNbv92nB-5a_Yn_B5_eEIlw_cdgUT0,519
39
39
  proj_flow/ext/github/publishing.py,sha256=5dUNFq47X_g9vo25R3lQRkSjV2IiAm2zkIhNe8gLDKs,1921
40
40
  proj_flow/ext/github/switches.py,sha256=g7O2hvrg4mHm3WSHYsRBhEDU0bIkEJgp4Qclhqxk0uI,421
@@ -55,7 +55,7 @@ proj_flow/log/error.py,sha256=65Nvhfs_d1xSY4EB-ISdWgjotvg-on3iKjhAWHpsBYM,841
55
55
  proj_flow/log/fmt.py,sha256=o14aO3iEt5_KKp9SqcfkscqbMKuTI83NBoSXHcrb7Kg,330
56
56
  proj_flow/log/format.py,sha256=gp1kUoW0nYj5e7Ysu1c29Fh2ssfE1KBSDIYeUbhzN9g,333
57
57
  proj_flow/log/msg.py,sha256=zARmRZHFV3yG-fBnx00wal4Y0O5aGnL-6XcGwNBNKA4,6758
58
- proj_flow/log/release.py,sha256=eKT1on5if_QZ57zD6gPlA-uf2t_7ct-RskLZAabTe4M,4206
58
+ proj_flow/log/release.py,sha256=y4u2oUbRuUtrOwuNP-_QGDsV8JArh1iTJGPjMr68wTo,4248
59
59
  proj_flow/log/hosting/__init__.py,sha256=9Teyw8jJcxeWH2MegqYEgW0n5OmSAWC7FFJj2u_UcrM,278
60
60
  proj_flow/log/hosting/github.py,sha256=O2BdB50vzVSKKIu3qNEYBiBdEUIPqj6C2xVvGAKjTZ4,9123
61
61
  proj_flow/log/rich_text/__init__.py,sha256=D3Y2jy9xlGgnQZdNC_ekoLzQtwkF_NTgLqDTWPvSRUk,279
@@ -69,6 +69,7 @@ proj_flow/minimal/init.py,sha256=PpaN2uCzBbp-XO9Zjzkh5Vva8Zk204Kk0CJBH_jZzy8,308
69
69
  proj_flow/minimal/list.py,sha256=RlOqammE8olNKXsnbv1enF5uriu0MZ2wFbht37Z2ETw,4810
70
70
  proj_flow/minimal/run.py,sha256=4qvGLqz2ayCZDvVBrq4tG094fjfcmDPon-xcGPQkM_U,4665
71
71
  proj_flow/minimal/system.py,sha256=9FliH5TD103JYSAe2O5EU7hkOHDgVzTqu0Exxk-WrXE,1579
72
+ proj_flow/minimal/ext/bug_report.py,sha256=rC9LR2obJ54zOoPd6fU3BClB9-sYyhuxG_p4_wSCpZs,949
72
73
  proj_flow/project/__init__.py,sha256=AROrwhbuMR5rJE-HC769eL4IXrMLQYpQb3HgpkOAYqg,293
73
74
  proj_flow/project/api.py,sha256=UrqXsupVaYQ1obFWj_8OJYhWcsZDjDHQb8mN6qC28uc,1994
74
75
  proj_flow/project/data.py,sha256=TluhBDoJEYL4dnyTpInmhQ49Uvf8mkWmpU-YMLQPNhE,317
@@ -131,8 +132,8 @@ proj_flow/template/licenses/MIT.mustache,sha256=NncPoQaNsuy-WmRmboik3fyhJJ8m5pc2
131
132
  proj_flow/template/licenses/Unlicense.mustache,sha256=awOCsWJ58m_2kBQwBUGWejVqZm6wuRtCL2hi9rfa0X4,1211
132
133
  proj_flow/template/licenses/WTFPL.mustache,sha256=lvF4V_PrKKfZPa2TC8CZo8tlqaKvs3Bpv9G6XsWWQ4k,483
133
134
  proj_flow/template/licenses/Zlib.mustache,sha256=uIj-mhSjes2HJ3rRapyy2ALflKRz4xQgS4mVM9827C0,868
134
- proj_flow-0.13.1.dist-info/METADATA,sha256=D1liIJ_ZvTdmFy0TcOx-7bRnl6qtYOycA0hhx81HTt8,2868
135
- proj_flow-0.13.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
136
- proj_flow-0.13.1.dist-info/entry_points.txt,sha256=d_OmGKZzpY7FCWz0sZ4wnBAPZC75oMEzTgJZWtpDELo,49
137
- proj_flow-0.13.1.dist-info/licenses/LICENSE,sha256=vpOQJ5QlrTedF3coEWvA4wJzVJH304f66ZitR7Od4iU,1068
138
- proj_flow-0.13.1.dist-info/RECORD,,
135
+ proj_flow-0.14.0.dist-info/METADATA,sha256=b17oLvgMFTkWCTMuWbXtRvt0C_6Llf-hwMzoKxuP-gk,2987
136
+ proj_flow-0.14.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
137
+ proj_flow-0.14.0.dist-info/entry_points.txt,sha256=d_OmGKZzpY7FCWz0sZ4wnBAPZC75oMEzTgJZWtpDELo,49
138
+ proj_flow-0.14.0.dist-info/licenses/LICENSE,sha256=vpOQJ5QlrTedF3coEWvA4wJzVJH304f66ZitR7Od4iU,1068
139
+ proj_flow-0.14.0.dist-info/RECORD,,