proj-flow 0.9.2__py3-none-any.whl → 0.9.4__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.
Files changed (53) hide show
  1. proj_flow/__init__.py +1 -1
  2. proj_flow/api/env.py +7 -2
  3. proj_flow/api/makefile.py +1 -1
  4. proj_flow/base/plugins.py +1 -36
  5. proj_flow/base/registry.py +2 -1
  6. proj_flow/cli/__init__.py +1 -3
  7. proj_flow/cli/argument.py +1 -1
  8. proj_flow/ext/cplusplus/__init__.py +10 -0
  9. proj_flow/ext/cplusplus/cmake/__init__.py +12 -0
  10. proj_flow/{plugins → ext/cplusplus}/cmake/context.py +2 -2
  11. proj_flow/{plugins → ext/cplusplus}/cmake/parser.py +6 -28
  12. proj_flow/ext/cplusplus/cmake/steps.py +142 -0
  13. proj_flow/ext/cplusplus/cmake/version.py +35 -0
  14. proj_flow/{plugins → ext/cplusplus}/conan/__init__.py +2 -1
  15. proj_flow/{plugins → ext/cplusplus}/conan/_conan.py +7 -2
  16. proj_flow/ext/github/__init__.py +2 -2
  17. proj_flow/ext/github/cli.py +11 -2
  18. proj_flow/{plugins/github.py → ext/github/switches.py} +1 -1
  19. proj_flow/ext/{markdown_changelist.py → markdown_changelog.py} +2 -1
  20. proj_flow/ext/python/rtdocs.py +1 -1
  21. proj_flow/ext/python/version.py +1 -2
  22. proj_flow/ext/{re_structured_changelist.py → re_structured_changelog.py} +3 -1
  23. proj_flow/{plugins → ext}/sign/__init__.py +64 -44
  24. proj_flow/ext/sign/api.py +83 -0
  25. proj_flow/ext/sign/win32.py +152 -0
  26. proj_flow/{plugins/store/store_packages.py → ext/store.py} +51 -9
  27. proj_flow/log/release.py +12 -0
  28. proj_flow/log/rich_text/markdown.py +1 -1
  29. proj_flow/log/rich_text/re_structured_text.py +1 -1
  30. proj_flow/minimal/__init__.py +2 -2
  31. proj_flow/{plugins → minimal}/base.py +2 -2
  32. proj_flow/{plugins/commands → minimal}/init.py +1 -1
  33. {proj_flow-0.9.2.dist-info → proj_flow-0.9.4.dist-info}/METADATA +2 -1
  34. {proj_flow-0.9.2.dist-info → proj_flow-0.9.4.dist-info}/RECORD +38 -47
  35. proj_flow/plugins/__init__.py +0 -8
  36. proj_flow/plugins/cmake/__init__.py +0 -11
  37. proj_flow/plugins/cmake/build.py +0 -29
  38. proj_flow/plugins/cmake/config.py +0 -59
  39. proj_flow/plugins/cmake/pack.py +0 -37
  40. proj_flow/plugins/cmake/test.py +0 -29
  41. proj_flow/plugins/commands/__init__.py +0 -12
  42. proj_flow/plugins/commands/ci/__init__.py +0 -17
  43. proj_flow/plugins/commands/ci/changelog.py +0 -47
  44. proj_flow/plugins/commands/ci/matrix.py +0 -46
  45. proj_flow/plugins/commands/ci/release.py +0 -116
  46. proj_flow/plugins/sign/win32.py +0 -191
  47. proj_flow/plugins/store/__init__.py +0 -11
  48. proj_flow/plugins/store/store_both.py +0 -22
  49. proj_flow/plugins/store/store_tests.py +0 -21
  50. /proj_flow/{plugins → ext/cplusplus}/cmake/__version__.py +0 -0
  51. {proj_flow-0.9.2.dist-info → proj_flow-0.9.4.dist-info}/WHEEL +0 -0
  52. {proj_flow-0.9.2.dist-info → proj_flow-0.9.4.dist-info}/entry_points.txt +0 -0
  53. {proj_flow-0.9.2.dist-info → proj_flow-0.9.4.dist-info}/licenses/LICENSE +0 -0
@@ -1,34 +1,48 @@
1
- proj_flow/__init__.py,sha256=uvTj3SMJiL6KVk2DXIa3qN2-JQILjSXrTCIer6V-vjc,124
1
+ proj_flow/__init__.py,sha256=mb_RaqBK8YLjzInbWdxN7mBDJZ3gqbzxfnHEXvzXbTw,124
2
2
  proj_flow/__main__.py,sha256=HUar_qQ9Ndmchmryegtzu__5wukwCLrFN_SGRl5Ol_M,233
3
3
  proj_flow/api/__init__.py,sha256=gV2f6kll_5JXtvkGASvnx7CbOWr34PHOdck-4ce-qEk,378
4
4
  proj_flow/api/arg.py,sha256=J7_53noW7t8VJ9sfJiX4qaPs7KqWfMHNcrWYe1jIq-g,4097
5
5
  proj_flow/api/completers.py,sha256=NapNVu6QAQ_iF6dqcAzOV5kDHKD9MAMVX209Bklq-Mw,2464
6
6
  proj_flow/api/ctx.py,sha256=AXZSnfLO9w7Uiqa8VtrTzLnNegVZru2sn1-WON3RIyg,5847
7
- proj_flow/api/env.py,sha256=btQQ7_xLi4aKR9QnWIV2WrDvHbN4BVB9-fhdhlLzOQk,10920
7
+ proj_flow/api/env.py,sha256=4VvSkfA2k6OPrtvkPtEPhb24dDyaqbUoqSznIgvAXNg,11082
8
8
  proj_flow/api/init.py,sha256=an0czDiPCDqW4Bp0I8sGQgaAlDAozLO0ZYnP149lWqk,521
9
- proj_flow/api/makefile.py,sha256=hNKKe1Mf0V8JZl7yNLn5BJfHXJtjREqDVZ7JDRLkE4M,3858
9
+ proj_flow/api/makefile.py,sha256=AxtGOvmypBtSvoyMEDJq1bGoaVD5yW9YYRZSdunUEeg,3856
10
10
  proj_flow/api/release.py,sha256=A-t4qcjeaptEgfBCZs2Q9cOjsGACrNM0CzmCorms0U4,2401
11
11
  proj_flow/api/step.py,sha256=PAqLBkQkUVQETrBvHjI6_-PAkh4Q7KLPMBUOWqW_jbk,4580
12
12
  proj_flow/base/__init__.py,sha256=RRmqiYjdVlC4i8QijXHNiRh9yzNH8305WXezrSaPjKk,311
13
13
  proj_flow/base/cmd.py,sha256=Vo3e8kd4CHRzbsUkO-MnbhQxjLXTczv7YQRUkFlcBQE,1560
14
14
  proj_flow/base/inspect.py,sha256=lt5P19rvSZ-wMCTrCYAaQFCt2S9fUjEQXlrKK-Tmvwc,2786
15
15
  proj_flow/base/matrix.py,sha256=8XBFGYOwW6Myt_4h3WNk36V2bJ5xeqUv6DvzF4B3q_g,7767
16
- proj_flow/base/plugins.py,sha256=ZH8p16eeqdf7r99IHPEzvTxATXonj3QSwnYhEPtJSvE,2089
17
- proj_flow/base/registry.py,sha256=0OdNeeZmek1CecR0yMRAcKc7zHtQ6kpKTBPdfdV8iRo,2933
16
+ proj_flow/base/plugins.py,sha256=evn2Dym_NeoBaIZAu2YUtRd--15PCFpHD0h5zSsWkQE,978
17
+ proj_flow/base/registry.py,sha256=oRLGY1QLY306KLEXJU-p5kmTKQPM7xgRpaajdCFg0OQ,3022
18
18
  proj_flow/base/uname.py,sha256=7Awb3Es0jTAKMpyRawdrC16xc5X9M97BlPqEfQibqIk,2295
19
- proj_flow/cli/__init__.py,sha256=IpNnnr3ZOzwCmdhAzzruA8Sms04U1thdJjUvU6qpRH8,1270
20
- proj_flow/cli/argument.py,sha256=-wAm5WjhnYd0Qouo3j6QYXhQs3q5YAhrJlJNpMgl47E,13691
19
+ proj_flow/cli/__init__.py,sha256=__5sdeicDv3HBEREPwY2FAbLNcI5x8bUDJqmkhH6HJ0,1198
20
+ proj_flow/cli/argument.py,sha256=KnBRmnHfBQHF_rDxtE8HEa01QMIagBxxImq-jGClynE,13690
21
21
  proj_flow/cli/finder.py,sha256=5x7H1nH0k63DetDauhB_wABel_f0RQpsZ5YnhPfbkRc,1402
22
22
  proj_flow/ext/__init__.py,sha256=XD52rUFTPz3GnyRq6KZUNeWdMce7e0bB19iTx-zU6DE,169
23
- proj_flow/ext/markdown_changelist.py,sha256=P6FSfX2yD62Zm5_KnNDKo2XB-K_7rLZsXPcs6xH87xo,351
24
- proj_flow/ext/re_structured_changelist.py,sha256=u1mNCvntGRf-r6ti1fRVe-99IgWbxb5htfjzyeVml_0,360
25
- proj_flow/ext/github/__init__.py,sha256=_ujB0X99q0DYWMwL1H4TiYyxTzKsE_2Pvzwva91_jrw,260
26
- proj_flow/ext/github/cli.py,sha256=hzfU2Pk3X0T-uZBcesJqZ-fpgxJS0725EZAhETrSHa4,3638
23
+ proj_flow/ext/markdown_changelog.py,sha256=fRGL09jojnv2B-8vAX2prvgNp8e7uyq5NxboSZjFCJ8,436
24
+ proj_flow/ext/re_structured_changelog.py,sha256=UF23W9eu_YgPO42MiaoDbEKu8In_48mQg6rH9--mI30,459
25
+ proj_flow/ext/store.py,sha256=yfyIb2G7UhoIkPmVDnp1RPx2fwFZK8FyLZzrMvPlEUM,3681
26
+ proj_flow/ext/cplusplus/__init__.py,sha256=dAmLMyGVQq586jJM_jiAuo5Ecw9U8agpvSRbzzPgh3g,245
27
+ proj_flow/ext/cplusplus/cmake/__init__.py,sha256=f-_gTY_XpIfcKrAj0jhT57DBGeifkW2s7NlSxjpHTMg,366
28
+ proj_flow/ext/cplusplus/cmake/__version__.py,sha256=tmRnT4aUpx4_h-vyWsGyVEeahW49VlLqlsd-o7irmKY,126
29
+ proj_flow/ext/cplusplus/cmake/context.py,sha256=5RPpc0tquh7xDO1_ifgnIdxCbabuZeW-Yw7QjpeazUo,3085
30
+ proj_flow/ext/cplusplus/cmake/parser.py,sha256=ZqQRZqS_VU5VtC8uwax-dknh7sfuLEvtazG8ChSqHDQ,3814
31
+ proj_flow/ext/cplusplus/cmake/steps.py,sha256=Q7HcVlMbKOwrRj-Sms0W7FS027M_shM7s2FJx6rX4KQ,4100
32
+ proj_flow/ext/cplusplus/cmake/version.py,sha256=E0PAUdO9Wg02pxtU4LWYTNoTB-9Oer3Y9zr1lR2zvgw,962
33
+ proj_flow/ext/cplusplus/conan/__init__.py,sha256=Ohcx5DpvI9X3uEhkzcb85otqZPRGqeWw8Mc5HeVvjgs,1967
34
+ proj_flow/ext/cplusplus/conan/_conan.py,sha256=c3rVi4WdmhsO8eqxG2xG4vzgagnOx1HDUOPl3bWxkD0,3357
35
+ proj_flow/ext/github/__init__.py,sha256=Mgx19YS6SYBXYB66_pOgIgwuB2WKRxqp5UGutq0B9Xk,282
36
+ proj_flow/ext/github/cli.py,sha256=tOo65gZR1JRuitQdbs4i9lG0pxlWRXy2bmsaIbfOyUo,4091
27
37
  proj_flow/ext/github/hosting.py,sha256=3iW8QjeJk7MyqKNbv92nB-5a_Yn_B5_eEIlw_cdgUT0,519
38
+ proj_flow/ext/github/switches.py,sha256=Sv5NxTOzwatrhCanKM3siKI-NcH9Cwloe-ohWLnIuWg,407
28
39
  proj_flow/ext/python/__init__.py,sha256=GbEKEJJZ3PJ4sRHEykAWjGIR6yyyrYdlUFulldvsAGI,252
29
- proj_flow/ext/python/rtdocs.py,sha256=MliuI8GJ0lP7Azyeqt6qCMKLVOy0h7RdTwJbkw2Oc4c,6350
40
+ proj_flow/ext/python/rtdocs.py,sha256=idm6DTUnbA18L-EpxQiFVXCz9x8AIRSb52ZPqIXzrf8,6354
30
41
  proj_flow/ext/python/steps.py,sha256=pDHGAe_CDzzdRFAzM1AIBvkbc14KB3SNUunusKZAaaY,1815
31
- proj_flow/ext/python/version.py,sha256=d8cY36bJYkNNH_JQcj6v-DnBLeT2CsyIzj_nz76MUBU,3182
42
+ proj_flow/ext/python/version.py,sha256=pnyuKATyZwBh1p0gf9KmqbRSZx8hJ5285CiFK_tHEaY,3159
43
+ proj_flow/ext/sign/__init__.py,sha256=yvXpqLdvBwkB0GDBl4yWw--iZ2tFxhx-97EP9OAzx2g,4345
44
+ proj_flow/ext/sign/api.py,sha256=dlnXYYoBDYXx_WWGBQ8ThKmEMYmw2kt6NNZA8j-MXuM,2288
45
+ proj_flow/ext/sign/win32.py,sha256=fV8_Z42KaeDBEf3_5qCzlALb0dy1zN0Pqy8Hr-ZMAQ4,4874
32
46
  proj_flow/flow/__init__.py,sha256=Y1MfQsrbk_dIT6pn7c9YIlqsEUZj4Q9n_oIGtbnhIP4,339
33
47
  proj_flow/flow/configs.py,sha256=l-pIotrXFm4oMqqpuvKP-RdtlTmDDnK_izhTJfsWbhk,5260
34
48
  proj_flow/flow/dependency.py,sha256=5o_-5Soc2e1tOu5mwvkXa6jqDFplZi_chN8edkR6vVY,4644
@@ -42,43 +56,20 @@ proj_flow/log/error.py,sha256=65Nvhfs_d1xSY4EB-ISdWgjotvg-on3iKjhAWHpsBYM,841
42
56
  proj_flow/log/fmt.py,sha256=o14aO3iEt5_KKp9SqcfkscqbMKuTI83NBoSXHcrb7Kg,330
43
57
  proj_flow/log/format.py,sha256=gp1kUoW0nYj5e7Ysu1c29Fh2ssfE1KBSDIYeUbhzN9g,333
44
58
  proj_flow/log/msg.py,sha256=zARmRZHFV3yG-fBnx00wal4Y0O5aGnL-6XcGwNBNKA4,6758
45
- proj_flow/log/release.py,sha256=kyjXnWNhgkSp7ojZTEDTsHGAWAyYW3zIQ1NL6jyM47w,3834
59
+ proj_flow/log/release.py,sha256=-wZNv0VVLuTC_ynNaaDPQ1CcEw-5c-l6vzFOxvLVQnM,4160
46
60
  proj_flow/log/hosting/__init__.py,sha256=9Teyw8jJcxeWH2MegqYEgW0n5OmSAWC7FFJj2u_UcrM,278
47
61
  proj_flow/log/hosting/github.py,sha256=yLjJ9gSuOnnC87phPFNc4N2yWno0iIi7BruhSrYOjEI,7151
48
62
  proj_flow/log/rich_text/__init__.py,sha256=D3Y2jy9xlGgnQZdNC_ekoLzQtwkF_NTgLqDTWPvSRUk,279
49
63
  proj_flow/log/rich_text/api.py,sha256=PCSAGwkmDUMoVlpN7BDsgIA1AiMZEC0H6TUZXpr_Mg8,3571
50
- proj_flow/log/rich_text/markdown.py,sha256=GVDH7hONyATRG4FyXkSvprEzxikRXiErGyINjiJfQx8,1618
51
- proj_flow/log/rich_text/re_structured_text.py,sha256=zDx4KQQy1RzYhzTfnldwCYIxl-jypyDBYOwNKP1SqN4,1818
52
- proj_flow/minimal/__init__.py,sha256=VsIdoFE0RRXueJf4-fVJF15iukkZUiysJsr8sTb9XIs,326
64
+ proj_flow/log/rich_text/markdown.py,sha256=jBnNxxhBHzyIZ3Y4HXDfqpl7zlRbbKbKdwdnZwkmNAI,1623
65
+ proj_flow/log/rich_text/re_structured_text.py,sha256=DEl9KjBUF6cxfNWpQ7GVnHi7wKeuFnPGJwxQxjbCsnM,1823
66
+ proj_flow/minimal/__init__.py,sha256=NglaSdKiMebrOqfsqF9ctqi0ZwiiBHOQcUnp3DS8lP0,340
67
+ proj_flow/minimal/base.py,sha256=-J9aEU1R7tJY7hgcODB2o37CYi7v3iWUztuZ2IZF5cQ,740
53
68
  proj_flow/minimal/bootstrap.py,sha256=PcZfBsUmj8uDPGBC55iUgD5O7W4VSkpCQb6r9GEyAaQ,556
69
+ proj_flow/minimal/init.py,sha256=3AhICGKG8ZScMG1aVlNOXXM1pGOXayqW9AOmgsYbNAs,2081
54
70
  proj_flow/minimal/list.py,sha256=RlOqammE8olNKXsnbv1enF5uriu0MZ2wFbht37Z2ETw,4810
55
71
  proj_flow/minimal/run.py,sha256=fkirdYeWb36SFXqIq5NQEflIv0HdjNhaTpmsutzWwXA,4691
56
72
  proj_flow/minimal/system.py,sha256=9FliH5TD103JYSAe2O5EU7hkOHDgVzTqu0Exxk-WrXE,1579
57
- proj_flow/plugins/__init__.py,sha256=nJQiXQU2zOiM_mafqoBsCu3ivpuA_o2vAOPk4HdfBvY,308
58
- proj_flow/plugins/base.py,sha256=yDAn7417DazBXMzZpZs8wv1DNY_9EjqtkWRq2IOF_Oo,736
59
- proj_flow/plugins/github.py,sha256=hcC-le-suTxlX929wzwvghtNFSqiVn5VCcVoLDeMHj4,402
60
- proj_flow/plugins/cmake/__init__.py,sha256=Mk4Rm6Pqv7Jkd27cSfoP90bhVv4fxMcg3Rr0fNNJ63c,386
61
- proj_flow/plugins/cmake/__version__.py,sha256=tmRnT4aUpx4_h-vyWsGyVEeahW49VlLqlsd-o7irmKY,126
62
- proj_flow/plugins/cmake/build.py,sha256=3IxHUm2tiTXqrPLwJfgxB5kHwEfQnVXBEf4qij5twCc,796
63
- proj_flow/plugins/cmake/config.py,sha256=pBI9O-1bUFBSs-cM1maBwCYZJS-q0u0mjuhhjjCcx6w,1722
64
- proj_flow/plugins/cmake/context.py,sha256=jpySxdeVo-EMeN_Vx8m8n2Z9ZZu3knLqPfR77xlO-aM,3079
65
- proj_flow/plugins/cmake/pack.py,sha256=2rBaPePbqJn55pFBAkPQSjQJeK14HWfu6ogu9ZtVP_c,1030
66
- proj_flow/plugins/cmake/parser.py,sha256=MA1PB1lWybDC0YGYhaXEuHawGRPRRsjpJJ4qFqkDf8U,4223
67
- proj_flow/plugins/cmake/test.py,sha256=POUa5QBb9mTTCYhS7wLjkqtVRiFGoJxD8O556bDYHXs,790
68
- proj_flow/plugins/commands/__init__.py,sha256=-5jT0bfrrGds3TbAOIRZOFJjH2Q8IUKDzm02Ac7PO_4,298
69
- proj_flow/plugins/commands/init.py,sha256=MrdxMv9G-0oYZgLk5OOKjd36Z-b55mdJaTV9ix3va9o,2090
70
- proj_flow/plugins/commands/ci/__init__.py,sha256=4PkKCd2HoCHypAzO7GZatCkrV0fteLWdoICviQXoyAg,369
71
- proj_flow/plugins/commands/ci/changelog.py,sha256=Q2f-JGuFxmK0IJg7K8RN3z_Rv_29haexgoFQWUysUM0,1296
72
- proj_flow/plugins/commands/ci/matrix.py,sha256=tjEpyCTdNvIY4xvyGNy5KffCkmOXnVUUXVTds9WeDeA,1362
73
- proj_flow/plugins/commands/ci/release.py,sha256=F2KRMnc5TWu2-R7K003HWnRBDo9Pl9hfRvROpmtcMMw,3689
74
- proj_flow/plugins/conan/__init__.py,sha256=YJ9DWfKjKYqgp6zb3gCUnvGC5QKFFs55dSawooGxT0Y,1933
75
- proj_flow/plugins/conan/_conan.py,sha256=rI_vbM-Zk0yP7XJDM_nX9mXkuSTmeabcLASjJByvT8s,3270
76
- proj_flow/plugins/sign/__init__.py,sha256=JsAU02LZQS_tRwgpVpzzwLpRToan832VfPrsXHCteSc,3678
77
- proj_flow/plugins/sign/win32.py,sha256=h6YAtLxX0zM_YLVW60JS1tZZ-_du7I1Ko82M4AdvjN8,5335
78
- proj_flow/plugins/store/__init__.py,sha256=PyDlpUQFJNT6-_JU8UTDwFAnJsSb6f-wRwPnabX2hBs,326
79
- proj_flow/plugins/store/store_both.py,sha256=cwZl1WdUKIdCVimi3gN3t1lI4398d3tWUzKc3J67GXM,527
80
- proj_flow/plugins/store/store_packages.py,sha256=LqVjIfZiOGlLGIzbhw-Li2X7aWSIrzwBl5WnxK8DJM8,2699
81
- proj_flow/plugins/store/store_tests.py,sha256=0rh9RX-9EOp2pHYA-v_nsuGJJZLadFBFSp12N0EVNcA,567
82
73
  proj_flow/template/layers/base.json,sha256=jrlby8FUUwkx4V_EGMix_pkQlWcUCVUgmeoapZaZnt4,3
83
74
  proj_flow/template/layers/cmake.json,sha256=KJe9uqTDoGm0ppdNOtniKEv30iNV2K4Yk8hZQetEZ7Y,385
84
75
  proj_flow/template/layers/conan.json,sha256=mAhDrxCtDjI_7Rbtr2hlNW5_jZkLdWLiwgfuhRsRuuw,29
@@ -133,8 +124,8 @@ proj_flow/template/licenses/MIT.mustache,sha256=NncPoQaNsuy-WmRmboik3fyhJJ8m5pc2
133
124
  proj_flow/template/licenses/Unlicense.mustache,sha256=awOCsWJ58m_2kBQwBUGWejVqZm6wuRtCL2hi9rfa0X4,1211
134
125
  proj_flow/template/licenses/WTFPL.mustache,sha256=lvF4V_PrKKfZPa2TC8CZo8tlqaKvs3Bpv9G6XsWWQ4k,483
135
126
  proj_flow/template/licenses/Zlib.mustache,sha256=uIj-mhSjes2HJ3rRapyy2ALflKRz4xQgS4mVM9827C0,868
136
- proj_flow-0.9.2.dist-info/METADATA,sha256=MeCmWAW-9FrfKP0ND8nTY1YNWdECxRss2KE9NVql3zY,2780
137
- proj_flow-0.9.2.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
138
- proj_flow-0.9.2.dist-info/entry_points.txt,sha256=d_OmGKZzpY7FCWz0sZ4wnBAPZC75oMEzTgJZWtpDELo,49
139
- proj_flow-0.9.2.dist-info/licenses/LICENSE,sha256=vpOQJ5QlrTedF3coEWvA4wJzVJH304f66ZitR7Od4iU,1068
140
- proj_flow-0.9.2.dist-info/RECORD,,
127
+ proj_flow-0.9.4.dist-info/METADATA,sha256=xubfKNSwQpIkuu3Mugzwed5kdO3XhraoEIctZs0ppOI,2863
128
+ proj_flow-0.9.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
129
+ proj_flow-0.9.4.dist-info/entry_points.txt,sha256=d_OmGKZzpY7FCWz0sZ4wnBAPZC75oMEzTgJZWtpDELo,49
130
+ proj_flow-0.9.4.dist-info/licenses/LICENSE,sha256=vpOQJ5QlrTedF3coEWvA4wJzVJH304f66ZitR7Od4iU,1068
131
+ proj_flow-0.9.4.dist-info/RECORD,,
@@ -1,8 +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.plugins** provides the runtime comnponents of the *Project Flow*:
6
- the :class:`initialization helpers <proj_flow.api.init.InitStep>` and
7
- :class:`run steps <proj_flow.api.step.Step>`.
8
- """
@@ -1,11 +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.plugins.cmake** provides ``"CMake"``, ``"Build"``, ``"Pack"`` and
6
- ``"Test"`` steps, as well as CMake-specific initialization context.
7
- """
8
-
9
- from . import build, config, context, pack, parser, test
10
-
11
- __all__ = ["build", "config", "context", "pack", "parser", "test"]
@@ -1,29 +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.plugins.cmake.build** provides ``"Build"`` step.
6
- """
7
-
8
- import os
9
-
10
- from proj_flow.api import env, step
11
-
12
- from .__version__ import CMAKE_VERSION
13
-
14
-
15
- @step.register()
16
- class CMakeBuild:
17
- """Builds the project using ``preset`` config."""
18
-
19
- name = "Build"
20
- runs_after = ["Conan", "CMake"]
21
-
22
- def platform_dependencies(self):
23
- return [f"cmake>={CMAKE_VERSION}"]
24
-
25
- def is_active(self, config: env.Config, rt: env.Runtime) -> int:
26
- return os.path.isfile("CMakeLists.txt") and os.path.isfile("CMakePresets.json")
27
-
28
- def run(self, config: env.Config, rt: env.Runtime) -> int:
29
- return rt.cmd("cmake", "--build", "--preset", config.preset, "--parallel")
@@ -1,59 +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.plugins.cmake.config** provides ``"CMake"`` step.
6
- """
7
-
8
- import os
9
- from typing import Dict, List, cast
10
-
11
- from proj_flow import api
12
-
13
- from .__version__ import CMAKE_VERSION
14
-
15
-
16
- @api.step.register
17
- class CMakeConfig:
18
- """Configures the project using ``preset`` config."""
19
-
20
- name = "CMake"
21
- runs_after = ["Conan"]
22
-
23
- def platform_dependencies(self):
24
- return [f"cmake>={CMAKE_VERSION}"]
25
-
26
- def is_active(self, config: api.env.Config, rt: api.env.Runtime) -> int:
27
- return os.path.isfile("CMakeLists.txt") and os.path.isfile("CMakePresets.json")
28
-
29
- def directories_to_remove(self, config: api.env.Config) -> List[str]:
30
- return [f"build/{config.build_type}"]
31
-
32
- def run(self, config: api.env.Config, rt: api.env.Runtime) -> int:
33
- cmake_vars = cast(Dict[str, str], rt._cfg.get("cmake", {}).get("vars", {}))
34
- defines: List[str] = []
35
- for var in cmake_vars:
36
- value = cmake_vars[var]
37
-
38
- is_flag = value.startswith("?")
39
- if is_flag:
40
- value = value[1:]
41
-
42
- if value.startswith("config:"):
43
- value = value[len("config:")]
44
- value = config.get_path(value)
45
- elif value.startswith("runtime:"):
46
- value = value[len("runtime:")]
47
- value = getattr(rt, value, None)
48
-
49
- if is_flag:
50
- value = "ON" if value else "OFF"
51
-
52
- defines.append(f"-D{var}={value}")
53
-
54
- return rt.cmd(
55
- "cmake",
56
- "--preset",
57
- f"{config.preset}-{config.build_generator}",
58
- *defines,
59
- )
@@ -1,37 +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.plugins.cmake.pack** provides ``"Pack"`` step.
6
- """
7
-
8
- import os
9
-
10
- from proj_flow.api import env, step
11
-
12
- from .__version__ import CMAKE_VERSION
13
-
14
-
15
- @step.register
16
- class PackStep:
17
- """
18
- Packs archives and installers from ``cpack_generator`` config, using
19
- ``preset`` config.
20
- """
21
-
22
- name = "Pack"
23
- runs_after = ["Build"]
24
-
25
- def platform_dependencies(self):
26
- return [f"cmake>={CMAKE_VERSION}", f"cpack>={CMAKE_VERSION}"]
27
-
28
- def is_active(self, config: env.Config, rt: env.Runtime) -> int:
29
- return (
30
- os.path.isfile("CMakeLists.txt")
31
- and os.path.isfile("CMakePresets.json")
32
- and len(config.items.get("cpack_generator", [])) > 0
33
- )
34
-
35
- def run(self, config: env.Config, rt: env.Runtime) -> int:
36
- generators = ";".join(config.items.get("cpack_generator", []))
37
- return rt.cmd("cpack", "--preset", config.preset, "-G", generators)
@@ -1,29 +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.plugins.cmake.test** provides ``"Test"`` step.
6
- """
7
-
8
- import os
9
-
10
- from proj_flow.api import env, step
11
-
12
- from .__version__ import CMAKE_VERSION
13
-
14
-
15
- @step.register
16
- class CMakeTest:
17
- """Runs tests in the project using ``preset`` config."""
18
-
19
- name = "Test"
20
- runs_after = ["Build"]
21
-
22
- def platform_dependencies(self):
23
- return [f"cmake>={CMAKE_VERSION}", f"ctest>={CMAKE_VERSION}"]
24
-
25
- def is_active(self, config: env.Config, rt: env.Runtime) -> int:
26
- return os.path.isfile("CMakeLists.txt") and os.path.isfile("CMakePresets.json")
27
-
28
- def run(self, config: env.Config, rt: env.Runtime) -> int:
29
- return rt.cmd("ctest", "--preset", config.preset)
@@ -1,12 +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.plugins.commands** package implements various CLI commands.
6
- """
7
-
8
- import sys
9
-
10
- from proj_flow.base.plugins import load_module_plugins
11
-
12
- load_module_plugins(sys.modules[__name__])
@@ -1,17 +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.plugins.commands.ci** implements ``./flow ci`` command.
6
- """
7
-
8
- from proj_flow.api import arg
9
-
10
- from . import changelog, matrix, release
11
-
12
- __all__ = ["changelog", "matrix", "release"]
13
-
14
-
15
- @arg.command("ci")
16
- def main():
17
- """Perform various CI tasks"""
@@ -1,47 +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.plugins.commands.ci.changelog** implements
6
- ``./flow ci changelog`` command.
7
- """
8
-
9
- import typing
10
-
11
- from proj_flow.api import arg, env
12
- from proj_flow.log import commit, hosting, rich_text
13
-
14
-
15
- @arg.command("ci", "changelog")
16
- def main(
17
- rt: env.Runtime,
18
- rst: typing.Annotated[
19
- bool,
20
- arg.FlagArgument(help="Use reStructuredText instead of Markdown."),
21
- ],
22
- rebuild: typing.Annotated[
23
- bool,
24
- arg.FlagArgument(
25
- help="Recreate entire changelog. Useful, when adapting existing project."
26
- ),
27
- ],
28
- all: typing.Annotated[
29
- bool, arg.FlagArgument(help="Take all Conventional Commits.")
30
- ],
31
- ):
32
- generator = rich_text.select_generator(rst=rst)
33
-
34
- git = commit.Git(rt)
35
- tags = git.tag_list()
36
- gh_links = hosting.github.GitHub.from_repo(git)
37
-
38
- if rebuild:
39
- generator.create_changelog(tags, git, gh_links, rt, take_all=all)
40
- return 0
41
-
42
- prev_tag = tags[-2] if len(tags) > 1 else None
43
- curr_tag = tags[-1] if len(tags) > 0 else None
44
-
45
- setup = commit.LogSetup(gh_links, prev_tag, curr_tag, take_all=all)
46
- log, _ = git.get_log(setup)
47
- generator.update_changelog(log, setup, rt)
@@ -1,46 +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.plugins.commands.ci.matrix** implements ``./flow ci matrix`` command.
6
- """
7
-
8
- import argparse
9
- import json
10
- import os
11
- import sys
12
- from typing import Annotated, Optional
13
-
14
- from proj_flow.api import arg, env
15
- from proj_flow.flow.configs import Configs
16
-
17
-
18
- @arg.command("ci", "matrix")
19
- def matrix(
20
- official: Annotated[
21
- bool, arg.FlagArgument(help="Cut matrix to release builds only")
22
- ],
23
- rt: env.Runtime,
24
- ):
25
- """Supply data for github actions"""
26
-
27
- configs = Configs(
28
- rt, argparse.Namespace(configs=[], matrix=True, official=official)
29
- )
30
-
31
- usable = [usable.items for usable in configs.usable]
32
- for config in usable:
33
- if "--orig-compiler" in config:
34
- orig_compiler = config["--orig-compiler"]
35
- del config["--orig-compiler"]
36
- config["compiler"] = orig_compiler
37
- if "GITHUB_ACTIONS" in os.environ:
38
- var = json.dumps({"include": usable})
39
- GITHUB_OUTPUT = os.environ.get("GITHUB_OUTPUT")
40
- if GITHUB_OUTPUT is not None:
41
- with open(GITHUB_OUTPUT, "a", encoding="UTF-8") as github_output:
42
- print(f"matrix={var}", file=github_output)
43
- else:
44
- print(f"matrix={var}")
45
- else:
46
- json.dump(usable, sys.stdout)
@@ -1,116 +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.plugins.commands.ci.release** implements
6
- ``./flow ci release`` command.
7
- """
8
-
9
- import typing
10
-
11
- from proj_flow.api import arg, env
12
- from proj_flow.log import commit, fmt, hosting, release, rich_text
13
- from proj_flow.plugins import cmake
14
-
15
- FORCED_LEVEL_CHOICES = list(commit.FORCED_LEVEL.keys())
16
-
17
-
18
- def _name_list(names: typing.List[str]) -> str:
19
- if len(names) == 0:
20
- return ""
21
-
22
- prefix = ", ".join(names[:-1])
23
- if prefix:
24
- prefix += " and "
25
- return f"{prefix}{names[-1]}"
26
-
27
-
28
- def _bump_version(ver: str, level: commit.Level):
29
- split = ver.split("-", 1)
30
- if len(split) == 2:
31
- stability = f"-{split[1]}"
32
- else:
33
- stability = ""
34
-
35
- semver = [int(s) for s in split[0].split(".")]
36
- while len(semver) < 3:
37
- semver.append(0)
38
- semver = semver[:3]
39
-
40
- if level.value > commit.Level.BENIGN.value:
41
- # This turns [1, 2, 3] through 4 - x into [3, 2, 1]
42
- lvl = commit.Level.BREAKING.value - level.value
43
- semver[lvl] += 1
44
- for index in range(lvl + 1, len(semver)):
45
- semver[index] = 0
46
-
47
- return ".".join(str(v) for v in semver) + stability
48
-
49
-
50
- @arg.command("ci", "release")
51
- def main(
52
- rt: env.Runtime,
53
- all: typing.Annotated[
54
- bool, arg.FlagArgument(help="Take all Conventional Commits.")
55
- ],
56
- force: typing.Annotated[
57
- typing.Optional[str],
58
- arg.Argument(
59
- help="Ignore the version change from changelog and instead use this value. "
60
- f"Allowed values are: {_name_list(FORCED_LEVEL_CHOICES)}",
61
- meta="level",
62
- choices=FORCED_LEVEL_CHOICES,
63
- ),
64
- ],
65
- stability: typing.Annotated[
66
- typing.Optional[str],
67
- arg.Argument(help="Change the stability of the version.", meta="value"),
68
- ],
69
- ):
70
- """
71
- Bumps the project version based on current git logs, in a "chore" commit,
72
- attaches an annotated tag with the version number and pushes it all to , if GitHub CLI
73
- """
74
- generator = rich_text.markdown.ChangelogGenerator()
75
-
76
- forced_level = commit.FORCED_LEVEL.get(force) if force else None
77
-
78
- project = cmake.parser.get_project(rt.root)
79
- if not project:
80
- rt.fatal("No CMakeLists.txt with project() found.")
81
-
82
- git = commit.Git(rt)
83
- tags = git.tag_list(silent=True)
84
- gh_links = hosting.github.GitHub.from_repo(git)
85
-
86
- prev_tag = tags[-1] if len(tags) > 0 else None
87
-
88
- setup = commit.LogSetup(gh_links, prev_tag, None, take_all=all)
89
- log, log_level = git.get_log(setup)
90
-
91
- project_version = f"{project.version.value}{project.stability.value}"
92
- next_version = _bump_version(project_version, forced_level or log_level)
93
- setup.curr_tag = f"v{next_version}"
94
-
95
- if setup.curr_tag in tags:
96
- rt.fatal(f"Tag {setup.curr_tag} already exists.")
97
-
98
- files_to_commit: typing.List[str] = []
99
- if not rt.dry_run and project_version != next_version:
100
- files_to_commit.extend(generator.update_changelog(log, setup, rt))
101
- files_to_commit.extend(project.set_version(rt.root, next_version))
102
- # TODO: plugins for other places a version would need to be updated
103
-
104
- commit_message = f"release {next_version}"
105
- git.add_files(*files_to_commit)
106
- git.commit(f"chore: {commit_message}{fmt.format_commit_message(log)}")
107
- git.annotated_tag(setup.curr_tag, commit_message)
108
-
109
- if gh_links.is_active:
110
- draft_url = gh_links.draft_a_release(log, setup, git).draft_url
111
- if draft_url:
112
- rt.message("-- Visit draft at", draft_url, level=env.Msg.ALWAYS)
113
-
114
- print()
115
-
116
- print(project_version, "->", next_version)