proj-flow 0.13.0__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.0"
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
@@ -13,8 +13,7 @@ int main(int argc, char* argv[]) {
13
13
  long counter{};
14
14
 
15
15
  args::null_translator tr{};
16
- args::parser parser{"{{PROJECT.DESCRIPTION}}",
17
- args::from_main(argc, argv), &tr};
16
+ args::parser parser{"{{PROJECT.DESCRIPTION}}", args::from_main(argc, argv), &tr};
18
17
 
19
18
  parser.arg(path, "path").meta("<file>").help("sets the path of foobar");
20
19
  parser.set<std::true_type>(verbose, "v")
@@ -9,9 +9,7 @@
9
9
  namespace {{NAMESPACE}}::testing {
10
10
 
11
11
  {{#with_conan}}
12
- TEST({{NAMESPACE}}, test) {
13
- ASSERT_EQ(1, 1);
14
- }
12
+ TEST({{NAMESPACE}}, test) { ASSERT_EQ(1, 1); }
15
13
  {{/with_conan}}
16
14
 
17
15
  } // namespace {{NAMESPACE}}::testing
@@ -221,9 +221,9 @@ jobs:
221
221
  if: ${{ fromJson(needs.merge.outputs.RELEASE) }}
222
222
  needs: merge
223
223
  runs-on: ubuntu-latest
224
-
225
- env:
226
- GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
224
+ permissions:
225
+ contents: write
226
+ packages: write
227
227
 
228
228
  steps:
229
229
  - name: Checkout
@@ -237,3 +237,5 @@ jobs:
237
237
 
238
238
  - name: Publish the release
239
239
  run: python ./.flow/flow.py github publish --upload "${{github.workspace}}/build/download/packages"
240
+ env:
241
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: proj-flow
3
- Version: 0.13.0
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=PoVhsF_ytVKuTPOAxKexvO4PLPbqOZ9Qh4x4Zgd68jA,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
@@ -111,16 +112,16 @@ proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp,sha256=599idjsdWX8ghO
111
112
  proj_flow/template/layers/cmake/data/icons/.gitignore,sha256=NEwIFSarC4e2DwNDDqGKGGvScsfAtWFdM-CT_hhsuXM,35
112
113
  proj_flow/template/layers/cmake/data/icons/appicon-mask.svg,sha256=pkMzpiGSq8emOD0MGrcwhQvHXkMcPp0aNhsyzS1dAZE,258
113
114
  proj_flow/template/layers/cmake/data/icons/appicon.svg,sha256=suZ4xxKxNe5La8K2OcsffpMpuHZn_hKfi0cSKPTzbFo,1357
114
- proj_flow/template/layers/cmake/src/main.cc.mustache,sha256=XSqjowXjPhmm18GRZl05r9co50DEehHIyDiXLH0YY_c,1202
115
+ proj_flow/template/layers/cmake/src/main.cc.mustache,sha256=NiV_NNddQREs0FMnQCGKfYmgX6SMAA0SyeHu6hukpZM,1181
115
116
  proj_flow/template/layers/cmake/src/version.hpp.in.mustache,sha256=q-OHyLQ-d52hkV45m3DWLoBs9EWiHbIlIOnMvDoSfdg,1757
116
- proj_flow/template/layers/cmake/tests/test.cc.mustache,sha256=ZoUYCEZOwOPB3A-0EU-59rebPCqPjW7FuHDMNvdG_t0,371
117
+ proj_flow/template/layers/cmake/tests/test.cc.mustache,sha256=7PjahLNA9E9NkybjUqh1LkxRPnn-blEWrvXTePg7yqc,368
117
118
  proj_flow/template/layers/conan/conanfile.txt,sha256=XOuMBysuBL9wmWmoruZqi6yhZO-APPlZKOxU2HQhFx0,106
118
119
  proj_flow/template/layers/conan/.flow/cmake/libcxx_toolchain.cmake,sha256=WkECkH-UyBzC4-ChIBCyVIN42NQLTy-3OLCk4BZ9deM,244
119
120
  proj_flow/template/layers/conan/.flow/cmake/output_dirs_setup.cmake,sha256=-GSDiZm4kFzAarB6WZ20ew4wO9QNprTH3Q2uHHMlsVw,1272
120
121
  proj_flow/template/layers/github_actions/CPPLINT.cfg,sha256=JX88FBnJ3pECU0QS-8CjOfvWo_my6lSgX8kc1oi-mmY,385
121
122
  proj_flow/template/layers/github_actions/.github/linters/.isort.cfg,sha256=9gpUkeq6rXGxXeeokeGkTDjOBvDpdlcup8ipxCpJQ9s,79
122
123
  proj_flow/template/layers/github_actions/.github/linters/.mypy.ini,sha256=13DnGOzVFyXtkXH-48LlblCLfiXc2Xbzk78pllCKbSo,37
123
- proj_flow/template/layers/github_actions/.github/workflows/build.yml,sha256=bgzdp18fIWzIQOfFRE9Q9T_JlA04XW2d9mk9mz8UgSw,8119
124
+ proj_flow/template/layers/github_actions/.github/workflows/build.yml,sha256=WdYWTTlCQuy2FC9nSVQJKg4avLJ2UQ3IIrrEnPFvP8U,8183
124
125
  proj_flow/template/layers/github_actions/.github/workflows/linter.yml,sha256=Ffg-ptQ9kjw4X0UyQax9-3AMIP2H62ikDkbgPi0ypeM,1545
125
126
  proj_flow/template/layers/github_social/CODE_OF_CONDUCT.md.mustache,sha256=XzXW9p1pX7AA5DcWW7cz-Onrxa0J32WclgCYWeYLT3Y,3347
126
127
  proj_flow/template/layers/github_social/CONTRIBUTING.md,sha256=nw1FZgDtKXubnRqvBaQgSmUqpsvDy_433VGmy5W-BH4,239
@@ -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.0.dist-info/METADATA,sha256=BOrS-VjJkVokbE3OPUiRBmgImfsj9mRVMFG_Ux3tQOI,2868
135
- proj_flow-0.13.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
136
- proj_flow-0.13.0.dist-info/entry_points.txt,sha256=d_OmGKZzpY7FCWz0sZ4wnBAPZC75oMEzTgJZWtpDELo,49
137
- proj_flow-0.13.0.dist-info/licenses/LICENSE,sha256=vpOQJ5QlrTedF3coEWvA4wJzVJH304f66ZitR7Od4iU,1068
138
- proj_flow-0.13.0.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,,