proj-flow 0.8.1__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 (126) hide show
  1. proj_flow/__init__.py +4 -0
  2. proj_flow/__main__.py +10 -0
  3. proj_flow/api/__init__.py +10 -0
  4. proj_flow/api/arg.py +134 -0
  5. proj_flow/api/completers.py +93 -0
  6. proj_flow/api/ctx.py +238 -0
  7. proj_flow/api/env.py +416 -0
  8. proj_flow/api/init.py +26 -0
  9. proj_flow/api/makefile.py +140 -0
  10. proj_flow/api/step.py +173 -0
  11. proj_flow/base/__init__.py +11 -0
  12. proj_flow/base/cmd.py +50 -0
  13. proj_flow/base/inspect.py +133 -0
  14. proj_flow/base/matrix.py +240 -0
  15. proj_flow/base/plugins.py +44 -0
  16. proj_flow/base/uname.py +71 -0
  17. proj_flow/flow/__init__.py +11 -0
  18. proj_flow/flow/cli/__init__.py +66 -0
  19. proj_flow/flow/cli/cmds.py +385 -0
  20. proj_flow/flow/cli/finder.py +59 -0
  21. proj_flow/flow/configs.py +162 -0
  22. proj_flow/flow/dependency.py +153 -0
  23. proj_flow/flow/init.py +65 -0
  24. proj_flow/flow/interact.py +134 -0
  25. proj_flow/flow/layer.py +176 -0
  26. proj_flow/flow/steps.py +104 -0
  27. proj_flow/log/__init__.py +10 -0
  28. proj_flow/log/commit.py +463 -0
  29. proj_flow/log/fmt.py +12 -0
  30. proj_flow/log/format.py +13 -0
  31. proj_flow/log/hosting/__init__.py +11 -0
  32. proj_flow/log/hosting/github.py +248 -0
  33. proj_flow/log/msg.py +201 -0
  34. proj_flow/log/release.py +34 -0
  35. proj_flow/log/rich_text/__init__.py +22 -0
  36. proj_flow/log/rich_text/api.py +126 -0
  37. proj_flow/log/rich_text/markdown.py +61 -0
  38. proj_flow/log/rich_text/re_structured_text.py +68 -0
  39. proj_flow/plugins/__init__.py +8 -0
  40. proj_flow/plugins/base.py +30 -0
  41. proj_flow/plugins/cmake/__init__.py +11 -0
  42. proj_flow/plugins/cmake/__version__.py +5 -0
  43. proj_flow/plugins/cmake/build.py +29 -0
  44. proj_flow/plugins/cmake/config.py +59 -0
  45. proj_flow/plugins/cmake/context.py +112 -0
  46. proj_flow/plugins/cmake/pack.py +37 -0
  47. proj_flow/plugins/cmake/parser.py +166 -0
  48. proj_flow/plugins/cmake/test.py +29 -0
  49. proj_flow/plugins/commands/__init__.py +12 -0
  50. proj_flow/plugins/commands/bootstrap.py +21 -0
  51. proj_flow/plugins/commands/ci/__init__.py +17 -0
  52. proj_flow/plugins/commands/ci/changelog.py +47 -0
  53. proj_flow/plugins/commands/ci/matrix.py +46 -0
  54. proj_flow/plugins/commands/ci/release.py +116 -0
  55. proj_flow/plugins/commands/init.py +75 -0
  56. proj_flow/plugins/commands/list.py +167 -0
  57. proj_flow/plugins/commands/run.py +147 -0
  58. proj_flow/plugins/commands/system.py +60 -0
  59. proj_flow/plugins/conan/__init__.py +66 -0
  60. proj_flow/plugins/conan/_conan.py +146 -0
  61. proj_flow/plugins/github.py +13 -0
  62. proj_flow/plugins/sign/__init__.py +130 -0
  63. proj_flow/plugins/sign/win32.py +191 -0
  64. proj_flow/plugins/store/__init__.py +11 -0
  65. proj_flow/plugins/store/store_both.py +22 -0
  66. proj_flow/plugins/store/store_packages.py +79 -0
  67. proj_flow/plugins/store/store_tests.py +21 -0
  68. proj_flow/template/layers/base/.clang-format +27 -0
  69. proj_flow/template/layers/base/.flow/config.yml +38 -0
  70. proj_flow/template/layers/base/.flow/flow.py.mustache +172 -0
  71. proj_flow/template/layers/base/.flow/matrix.yml +63 -0
  72. proj_flow/template/layers/base/.flow/official.yml +4 -0
  73. proj_flow/template/layers/base/.gitignore +39 -0
  74. proj_flow/template/layers/base/README.md.mustache +2 -0
  75. proj_flow/template/layers/base/flow +7 -0
  76. proj_flow/template/layers/base/flow.cmd +9 -0
  77. proj_flow/template/layers/base.json +2 -0
  78. proj_flow/template/layers/cmake/.flow/cmake/common.cmake.mustache +27 -0
  79. proj_flow/template/layers/cmake/.flow/extensions/wall/__init__.py.mustache +2 -0
  80. proj_flow/template/layers/cmake/.flow/extensions/wall/icons/__init__.py.mustache +54 -0
  81. proj_flow/template/layers/cmake/.flow/extensions/wall/icons/magick.py.mustache +97 -0
  82. proj_flow/template/layers/cmake/.flow/packages/base.cmake.mustache +33 -0
  83. proj_flow/template/layers/cmake/.flow/packages/config.cmake +12 -0
  84. proj_flow/template/layers/cmake/.flow/packages/cpack.cmake +3 -0
  85. proj_flow/template/layers/cmake/.flow/packages/wix/cpack.cmake.mustache +1 -0
  86. proj_flow/template/layers/cmake/.flow/packages/wix/patches.in.wix +10 -0
  87. proj_flow/template/layers/cmake/.flow/packages/wix.cmake.mustache +13 -0
  88. proj_flow/template/layers/cmake/CMakeGraphVizOptions.cmake +8 -0
  89. proj_flow/template/layers/cmake/CMakeLists.txt.mustache +213 -0
  90. proj_flow/template/layers/cmake/CMakePresets.json +196 -0
  91. proj_flow/template/layers/cmake/data/assets/appicon.ico +0 -0
  92. proj_flow/template/layers/cmake/data/assets/appicon.png +0 -0
  93. proj_flow/template/layers/cmake/data/assets/wix_banner.bmp +0 -0
  94. proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp +0 -0
  95. proj_flow/template/layers/cmake/data/icons/.gitignore +3 -0
  96. proj_flow/template/layers/cmake/data/icons/appicon-mask.svg +6 -0
  97. proj_flow/template/layers/cmake/data/icons/appicon.svg +27 -0
  98. proj_flow/template/layers/cmake/src/main.cc.mustache +38 -0
  99. proj_flow/template/layers/cmake/src/version.hpp.in.mustache +36 -0
  100. proj_flow/template/layers/cmake/tests/test.cc.mustache +17 -0
  101. proj_flow/template/layers/cmake.json +15 -0
  102. proj_flow/template/layers/conan/.flow/cmake/libcxx_toolchain.cmake +4 -0
  103. proj_flow/template/layers/conan/.flow/cmake/output_dirs_setup.cmake +19 -0
  104. proj_flow/template/layers/conan/conanfile.txt +9 -0
  105. proj_flow/template/layers/conan.json +3 -0
  106. proj_flow/template/layers/github_actions/.github/linters/.isort.cfg +4 -0
  107. proj_flow/template/layers/github_actions/.github/linters/.mypy.ini +2 -0
  108. proj_flow/template/layers/github_actions/.github/workflows/build.yml +241 -0
  109. proj_flow/template/layers/github_actions/.github/workflows/linter.yml +59 -0
  110. proj_flow/template/layers/github_actions/CPPLINT.cfg +16 -0
  111. proj_flow/template/layers/github_actions.json +3 -0
  112. proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/bug_report.md.mustache +42 -0
  113. proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/feature_request.md.mustache +28 -0
  114. proj_flow/template/layers/github_social/CODE_OF_CONDUCT.md.mustache +76 -0
  115. proj_flow/template/layers/github_social/CONTRIBUTING.md +10 -0
  116. proj_flow/template/layers/github_social.json +3 -0
  117. proj_flow/template/licenses/0BSD.mustache +12 -0
  118. proj_flow/template/licenses/MIT.mustache +21 -0
  119. proj_flow/template/licenses/Unlicense.mustache +24 -0
  120. proj_flow/template/licenses/WTFPL.mustache +13 -0
  121. proj_flow/template/licenses/Zlib.mustache +19 -0
  122. proj_flow-0.8.1.dist-info/METADATA +81 -0
  123. proj_flow-0.8.1.dist-info/RECORD +126 -0
  124. proj_flow-0.8.1.dist-info/WHEEL +4 -0
  125. proj_flow-0.8.1.dist-info/entry_points.txt +2 -0
  126. proj_flow-0.8.1.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,241 @@
1
+ name: Build
2
+
3
+ on:
4
+ push:
5
+ branches: [ "main" ]
6
+ tags: [ "v*" ]
7
+ pull_request:
8
+ workflow_dispatch:
9
+
10
+ env:
11
+ RELEASE: ${{ github.event_name == 'push' && github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }}
12
+
13
+ jobs:
14
+ M:
15
+ name: Select builds
16
+ runs-on: ubuntu-latest
17
+ outputs:
18
+ RELEASE: ${{env.RELEASE}}
19
+ matrix: ${{steps.flow.outputs.matrix}}
20
+ steps:
21
+ - name: Checkout
22
+ uses: actions/checkout@v4
23
+
24
+ - name: Find builds
25
+ id: flow
26
+ run: python ./.flow/flow.py ci matrix
27
+
28
+ build:
29
+ needs: M
30
+ strategy:
31
+ matrix: ${{ fromJson(needs.M.outputs.matrix) }}
32
+
33
+ env:
34
+ BUILD_TYPE: ${{ matrix.build_type }}
35
+ CONAN_REVISIONS_ENABLED: 1
36
+ FLOW_COMMAND: python ./.flow/flow.py run -D os=${{ matrix.os }} build_type=${{ matrix.build_type }} compiler=${{ matrix.compiler }} sanitizer=${{ matrix.sanitizer }}
37
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38
+ ARTIFACT_SUFFIX: ${{ matrix.github_os }}-${{ matrix.build_type }}-${{ matrix.compiler }}${{ matrix.sanitizer && '-sanitize' || '' }}
39
+ CONAN_CACHE: ${{ matrix.github_os }}-${{ matrix.build_type }}-${{ matrix.compiler }}
40
+
41
+ runs-on: ${{ matrix.github_os }}
42
+ name: ${{ matrix.build_name }}
43
+ outputs:
44
+ RELEASE: ${{ fromJson(needs.M.outputs.RELEASE) }}
45
+
46
+ steps:
47
+ - name: Checkout
48
+ uses: actions/checkout@v4
49
+ with:
50
+ submodules: true
51
+
52
+ # ######## ## ## ## ## #### ######## ####### ## ## ## ## ######## ## ## ########
53
+ # ## ### ## ## ## ## ## ## ## ## ### ## ### ### ## ### ## ##
54
+ # ## #### ## ## ## ## ## ## ## ## #### ## #### #### ## #### ## ##
55
+ # ###### ## ## ## ## ## ## ######## ## ## ## ## ## ## ### ## ###### ## ## ## ##
56
+ # ## ## #### ## ## ## ## ## ## ## ## #### ## ## ## ## #### ##
57
+ # ## ## ### ## ## ## ## ## ## ## ## ### ## ## ## ## ### ##
58
+ # ######## ## ## ### #### ## ## ####### ## ## ## ## ######## ## ## ##
59
+ - name: Python 3.10
60
+ uses: actions/setup-python@v5
61
+ with:
62
+ python-version: '3.10'
63
+
64
+ - name: Bootstrap Flow
65
+ run: |
66
+ python ./.flow/flow.py bootstrap
67
+
68
+ - name: Add msbuild to PATH
69
+ if: ${{ matrix.windows }}
70
+ uses: microsoft/setup-msbuild@v1.1
71
+
72
+ - name: Install WiX 4
73
+ if: ${{ matrix.windows }}
74
+ shell: cmd
75
+ run: |
76
+ dotnet tool install --global wix --version 4.0.4
77
+ wix extension add -g WixToolset.UI.wixext/4.0.4
78
+
79
+ - name: Install Ninja
80
+ if: ${{ matrix.ubuntu }}
81
+ run: |
82
+ sudo apt-get install ninja-build -y
83
+
84
+ - name: Install GCC 13
85
+ if: ${{ matrix.ubuntu && matrix.needs_gcc_ppa }}
86
+ run: |
87
+ sudo apt install software-properties-common -y
88
+ sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
89
+ sudo apt install gcc-13 g++-13 -y
90
+
91
+ - name: Set up GCC 13
92
+ if: ${{ matrix.ubuntu }}
93
+ run: |
94
+ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 130
95
+ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-13 130
96
+ sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-13 130
97
+
98
+ sudo update-alternatives --set g++ /usr/bin/g++-13
99
+ sudo update-alternatives --set gcc /usr/bin/gcc-13
100
+ sudo update-alternatives --set gcov /usr/bin/gcov-13
101
+
102
+ - name: Set up GCC 13 as c++/cc
103
+ if: ${{ matrix.ubuntu && matrix.gcc }}
104
+ run: |
105
+ sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-13 130
106
+ sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-13 130
107
+
108
+ sudo update-alternatives --set c++ /usr/bin/g++-13
109
+ sudo update-alternatives --set cc /usr/bin/gcc-13
110
+
111
+ - name: Install Clang 18
112
+ if: ${{ matrix.ubuntu && matrix.clang }}
113
+ run: |
114
+ wget https://apt.llvm.org/llvm.sh
115
+ chmod +x llvm.sh
116
+ sudo ./llvm.sh 18
117
+
118
+ sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-18 180
119
+ sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-18 180
120
+
121
+ sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang++-18 180
122
+ sudo update-alternatives --install /usr/bin/cc cc /usr/bin/clang-18 180
123
+
124
+ sudo update-alternatives --set clang++ /usr/bin/clang++-18
125
+ sudo update-alternatives --set clang /usr/bin/clang-18
126
+
127
+ sudo update-alternatives --set c++ /usr/bin/clang++-18
128
+ sudo update-alternatives --set cc /usr/bin/clang-18
129
+
130
+ - name: Check C++ binary
131
+ if: ${{ matrix.ubuntu }}
132
+ run: |
133
+ realpath `which c++`
134
+ c++ --version
135
+ sudo locale-gen pl_PL.UTF-8 en_US.UTF-8 en_GB.UTF-8
136
+
137
+ - name: Install Conan
138
+ id: conan
139
+ uses: turtlebrowser/get-conan@main
140
+ with:
141
+ version: 1.66.0
142
+
143
+ - name: Conan cache
144
+ uses: actions/cache@v4
145
+ id: cache
146
+ with:
147
+ path: ${{ matrix.home }}/.conan/data
148
+ key: ${{ env.CONAN_CACHE }}-${{ hashFiles('conanfile.txt') }}
149
+ restore-keys: |
150
+ ${{ env.CONAN_CACHE }}-
151
+
152
+ # ######## ######## ####### ## ######## ###### ########
153
+ # ## ## ## ## ## ## ## ## ## ## ##
154
+ # ## ## ## ## ## ## ## ## ## ##
155
+ # ######## ######## ## ## ## ###### ## ##
156
+ # ## ## ## ## ## ## ## ## ## ##
157
+ # ## ## ## ## ## ## ## ## ## ## ##
158
+ # ## ## ## ####### ###### ######## ###### ##
159
+
160
+ - name: Configure
161
+ run: ${{ env.FLOW_COMMAND }} -s Conan,CMake
162
+
163
+ - name: Build
164
+ run: ${{ env.FLOW_COMMAND }} -s Build
165
+
166
+ - name: Test
167
+ run: ${{ env.FLOW_COMMAND }} -s Test,StoreTests
168
+
169
+ - name: Pack
170
+ id: artifacts
171
+ if: ${{ fromJson(needs.M.outputs.RELEASE) }}
172
+ run: ${{ env.FLOW_COMMAND }} -s Sign,Pack,SignPackages,StorePackages
173
+ env:
174
+ SIGN_TOKEN: ${{ secrets.SIGN_TOKEN }}
175
+
176
+ # ## ## ######## ## ####### ### ########
177
+ # ## ## ## ## ## ## ## ## ## ## ##
178
+ # ## ## ## ## ## ## ## ## ## ## ##
179
+ # ## ## ######## ## ## ## ## ## ## ##
180
+ # ## ## ## ## ## ## ######### ## ##
181
+ # ## ## ## ## ## ## ## ## ## ##
182
+ # ####### ## ######## ####### ## ## ########
183
+
184
+ - name: Upload packages
185
+ uses: actions/upload-artifact@v4
186
+ if: ${{ steps.artifacts.outputs.CPACK_GENERATORS != '' }}
187
+ with:
188
+ name: _packages-${{ env.ARTIFACT_SUFFIX }}
189
+ path: ${{github.workspace}}/build/artifacts/packages/
190
+
191
+ - name: Upload test results
192
+ uses: actions/upload-artifact@v4
193
+ if: always()
194
+ with:
195
+ name: _tests-${{ env.ARTIFACT_SUFFIX }}
196
+ path: ${{github.workspace}}/build/artifacts/test-results/
197
+
198
+ merge:
199
+ name: Merge artifacts
200
+ runs-on: ubuntu-latest
201
+ needs: build
202
+ outputs:
203
+ RELEASE: ${{ fromJson(needs.build.outputs.RELEASE) }}
204
+
205
+ steps:
206
+ - name: Merge packages
207
+ uses: actions/upload-artifact/merge@v4
208
+ if: ${{ fromJson(needs.build.outputs.RELEASE) }}
209
+ with:
210
+ name: Packages
211
+ pattern: _packages-*
212
+ delete-merged: true
213
+ - name: Merge test results
214
+ uses: actions/upload-artifact/merge@v4
215
+ if: always()
216
+ with:
217
+ name: Test Results
218
+ pattern: _tests-*
219
+ delete-merged: true
220
+
221
+ publish:
222
+ name: Upload packages
223
+ if: ${{ fromJson(needs.merge.outputs.RELEASE) }}
224
+ needs: merge
225
+ runs-on: ubuntu-latest
226
+
227
+ env:
228
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
229
+
230
+ steps:
231
+ - name: Checkout
232
+ uses: actions/checkout@v4
233
+
234
+ - name: Get packages
235
+ uses: actions/download-artifact@v4
236
+ with:
237
+ name: Packages
238
+ path: ${{github.workspace}}/build/download/packages
239
+
240
+ - name: Upload to release
241
+ run: python ./.flow/flow.py ci upload --ref "${{github.action_ref}}" "${{github.workspace}}/build/download/packages"
@@ -0,0 +1,59 @@
1
+ name: Super-linter
2
+
3
+ on:
4
+ pull_request:
5
+
6
+ jobs:
7
+ lint:
8
+ name: Super-linter
9
+ runs-on: ubuntu-latest
10
+
11
+ steps:
12
+ - name: Checkout Code
13
+ uses: actions/checkout@v4
14
+ with:
15
+ fetch-depth: 0
16
+
17
+ - name: Lint Code Base
18
+ uses: github/super-linter/slim@v5
19
+ env:
20
+ VALIDATE_ALL_CODEBASE: false
21
+ DEFAULT_BRANCH: main
22
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
23
+ LOG_LEVEL: ERROR
24
+ SUPPRESS_POSSUM: true
25
+
26
+ VALIDATE_GITHUB_ACTIONS: true
27
+ VALIDATE_JSON: true
28
+ VALIDATE_MARKDOWN: true
29
+
30
+ VALIDATE_CPP: true
31
+
32
+ VALIDATE_PYTHON_BLACK: true
33
+ VALIDATE_PYTHON_FLAKE8: true
34
+ VALIDATE_PYTHON_MYPY: true
35
+ VALIDATE_PYTHON_PYLINT: true
36
+ VALIDATE_PYTHON_ISORT: true
37
+
38
+ VALIDATE_CSS: true
39
+ VALIDATE_HTML: true
40
+
41
+ VALIDATE_JAVASCRIPT_ES: true
42
+ VALIDATE_JAVASCRIPT_STANDARD: true
43
+ VALIDATE_JSX: true
44
+
45
+ VALIDATE_TYPESCRIPT_ES: true
46
+ VALIDATE_TYPESCRIPT_STANDARD: true
47
+ VALIDATE_TSX: true
48
+
49
+ IGNORE_GENERATED_FILES: true
50
+ FILTER_REGEX_INCLUDE: ".*/libs/.*|.*/apps/.*|.*/tools/[^/]+\\.py"
51
+ FILTER_REGEX_EXCLUDE: ".*/build/.*|\
52
+ .*/external/.*|\
53
+ .*/tools/.*"
54
+
55
+ - name: Lint with clang-format
56
+ uses: DoozyX/clang-format-lint-action@v0.17
57
+ with:
58
+ exclude: ./build ./external ./tools
59
+ clangFormatVersion: 17
@@ -0,0 +1,16 @@
1
+ set noparent
2
+ linelength=120
3
+ exclude_files=./tools
4
+ filter=-build/c++11
5
+ filter=-build/include_order
6
+ filter=-build/include_subdir
7
+ filter=-build/namespaces
8
+ filter=-readability/todo
9
+ filter=-runtime/arrays
10
+ filter=-runtime/explicit
11
+ filter=-runtime/indentation_namespace
12
+ filter=-runtime/int
13
+ filter=-runtime/references
14
+ filter=-whitespace/braces
15
+ filter=-whitespace/tab
16
+ filter=-whitespace/indent
@@ -0,0 +1,3 @@
1
+ {
2
+ "when": "with_github_actions"
3
+ }
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ ---
5
+
6
+ <!--
7
+
8
+ Have you read {{PROJECT.NAME}}'s Code of Conduct? By filing an Issue, you are
9
+ expected to comply with it, including treating everyone with respect:
10
+ https://github.com/???/{{PROJECT.NAME}}/blob/master/CODE_OF_CONDUCT.md
11
+
12
+ -->
13
+
14
+ ## Describe the bug
15
+
16
+ _A clear and concise description of what the bug is._
17
+
18
+ ## To Reproduce
19
+ Steps to reproduce the behavior:
20
+ 1. <!-- First Step -->
21
+ 2. <!-- Second Step -->
22
+ 3. <!-- and so on… -->
23
+
24
+ **Expected behavior:**
25
+
26
+ _A clear and concise description of what you expected to happen._
27
+
28
+ **Actual behavior:**
29
+
30
+ _What actually happens._
31
+
32
+ **Reproduces how often:**
33
+
34
+ _What percentage of the time does it reproduce?_
35
+
36
+ ## Platform (please complete the following information)
37
+ - OS: _[e.g. Ubuntu 18.04, Windows 10 2004]_
38
+ - Compiler: _[e.g. gcc-10, clang-10, msvc 16.4]_
39
+ - Library version: _[e.g. tag name, commit id]_
40
+
41
+ ## Additional information
42
+ _Any additional information, configuration or data that might be necessary to reproduce the issue._
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ ---
5
+
6
+ <!--
7
+
8
+ Have you read {{PROJECT.NAME}}'s Code of Conduct? By filing an Issue, you are
9
+ expected to comply with it, including treating everyone with respect:
10
+ https://github.com/mbits-libs/{{PROJECT.NAME}}/blob/master/CODE_OF_CONDUCT.md
11
+
12
+ -->
13
+
14
+ ## Summary
15
+
16
+ _One paragraph explanation of the feature: a clear and concise description of what you want to happen._
17
+
18
+ ## Motivation
19
+
20
+ _Why are we doing this? What use cases does it support? What is the expected outcome? A clear and concise description of what the problem is. Ex._ I'm always frustrated when [...]
21
+
22
+ ## Describe alternatives you've considered
23
+
24
+ _A clear and concise description of the alternative solutions you've considered._
25
+
26
+ ## Additional context
27
+
28
+ _Add any other context or screenshots about the feature request here._
@@ -0,0 +1,76 @@
1
+ # {{PROJECT.NAME}}'s Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ In the interest of fostering an open and welcoming environment, we as
6
+ contributors and maintainers pledge to making participation in our project and
7
+ our community a harassment-free experience for everyone, regardless of age, body
8
+ size, disability, ethnicity, sex characteristics, gender identity and expression,
9
+ level of experience, education, socio-economic status, nationality, personal
10
+ appearance, race, religion, or sexual identity and orientation.
11
+
12
+ ## Our Standards
13
+
14
+ Examples of behavior that contributes to creating a positive environment
15
+ include:
16
+
17
+ * Using welcoming and inclusive language
18
+ * Being respectful of differing viewpoints and experiences
19
+ * Gracefully accepting constructive criticism
20
+ * Focusing on what is best for the community
21
+ * Showing empathy towards other community members
22
+
23
+ Examples of unacceptable behavior by participants include:
24
+
25
+ * The use of sexualized language or imagery and unwelcome sexual attention or
26
+ advances
27
+ * Trolling, insulting/derogatory comments, and personal or political attacks
28
+ * Public or private harassment
29
+ * Publishing others' private information, such as a physical or electronic
30
+ address, without explicit permission
31
+ * Other conduct which could reasonably be considered inappropriate in a
32
+ professional setting
33
+
34
+ ## Our Responsibilities
35
+
36
+ Project maintainers are responsible for clarifying the standards of acceptable
37
+ behavior and are expected to take appropriate and fair corrective action in
38
+ response to any instances of unacceptable behavior.
39
+
40
+ Project maintainers have the right and responsibility to remove, edit, or
41
+ reject comments, commits, code, wiki edits, issues, and other contributions
42
+ that are not aligned to this Code of Conduct, or to ban temporarily or
43
+ permanently any contributor for other behaviors that they deem inappropriate,
44
+ threatening, offensive, or harmful.
45
+
46
+ ## Scope
47
+
48
+ This Code of Conduct applies both within project spaces and in public spaces
49
+ when an individual is representing the project or its community. Examples of
50
+ representing a project or community include using an official project e-mail
51
+ address, posting via an official social media account, or acting as an appointed
52
+ representative at an online or offline event. Representation of a project may be
53
+ further defined and clarified by project maintainers.
54
+
55
+ ## Enforcement
56
+
57
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
58
+ reported by contacting the project team at {{PROJECT.EMAIL}}. All
59
+ complaints will be reviewed and investigated and will result in a response that
60
+ is deemed necessary and appropriate to the circumstances. The project team is
61
+ obligated to maintain confidentiality with regard to the reporter of an incident.
62
+ Further details of specific enforcement policies may be posted separately.
63
+
64
+ Project maintainers who do not follow or enforce the Code of Conduct in good
65
+ faith may face temporary or permanent repercussions as determined by other
66
+ members of the project's leadership.
67
+
68
+ ## Attribution
69
+
70
+ This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71
+ available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72
+
73
+ [homepage]: https://www.contributor-covenant.org
74
+
75
+ For answers to common questions about this code of conduct, see
76
+ https://www.contributor-covenant.org/faq
@@ -0,0 +1,10 @@
1
+ # How to contribute
2
+
3
+ I'm really glad you're reading this. You are probably much further into this, than I am.
4
+
5
+ _This is very much work in progress._
6
+
7
+ In the meantime, look at the [issue templates](.github/ISSUE_TEMPLATE/).
8
+
9
+ Thanks,
10
+ Marcin
@@ -0,0 +1,3 @@
1
+ {
2
+ "when": "with_github_social"
3
+ }
@@ -0,0 +1,12 @@
1
+ Copyright (c) {{COPY.YEAR}} {{COPY.HOLDER}}
2
+
3
+ Permission to use, copy, modify, and/or distribute this software for any
4
+ purpose with or without fee is hereby granted.
5
+
6
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
7
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
8
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
9
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
10
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
11
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
12
+ PERFORMANCE OF THIS SOFTWARE.
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) {{COPY.YEAR}} {{COPY.HOLDER}}
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,24 @@
1
+ This is free and unencumbered software released into the public domain.
2
+
3
+ Anyone is free to copy, modify, publish, use, compile, sell, or
4
+ distribute this software, either in source code form or as a compiled
5
+ binary, for any purpose, commercial or non-commercial, and by any
6
+ means.
7
+
8
+ In jurisdictions that recognize copyright laws, the author or authors
9
+ of this software dedicate any and all copyright interest in the
10
+ software to the public domain. We make this dedication for the benefit
11
+ of the public at large and to the detriment of our heirs and
12
+ successors. We intend this dedication to be an overt act of
13
+ relinquishment in perpetuity of all present and future rights to this
14
+ software under copyright law.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
19
+ IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20
+ OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21
+ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22
+ OTHER DEALINGS IN THE SOFTWARE.
23
+
24
+ For more information, please refer to <https://unlicense.org>
@@ -0,0 +1,13 @@
1
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
2
+ Version 2, December 2004
3
+
4
+ Copyright (C) 2004 Sam Hocevar <sam@hocevar.net>
5
+
6
+ Everyone is permitted to copy and distribute verbatim or modified
7
+ copies of this license document, and changing it is allowed as long
8
+ as the name is changed.
9
+
10
+ DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
11
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
12
+
13
+ 0. You just DO WHAT THE FUCK YOU WANT TO.
@@ -0,0 +1,19 @@
1
+ zlib License
2
+
3
+ (C) {{COPY.YEAR}} {{COPY.HOLDER}}
4
+
5
+ This software is provided 'as-is', without any express or implied
6
+ warranty. In no event will the authors be held liable for any damages
7
+ arising from the use of this software.
8
+
9
+ Permission is granted to anyone to use this software for any purpose,
10
+ including commercial applications, and to alter it and redistribute it
11
+ freely, subject to the following restrictions:
12
+
13
+ 1. The origin of this software must not be misrepresented; you must not
14
+ claim that you wrote the original software. If you use this software
15
+ in a product, an acknowledgment in the product documentation would be
16
+ appreciated but is not required.
17
+ 2. Altered source versions must be plainly marked as such, and must not be
18
+ misrepresented as being the original software.
19
+ 3. This notice may not be removed or altered from any source distribution.
@@ -0,0 +1,81 @@
1
+ Metadata-Version: 2.4
2
+ Name: proj-flow
3
+ Version: 0.8.1
4
+ Summary: C++ project maintenance, automated
5
+ Project-URL: Documentation, https://proj-flow.readthedocs.io/en/latest/
6
+ Project-URL: Homepage, https://pypi.org/project/proj-flow/
7
+ Project-URL: Source Code, https://github.com/mzdun/proj-flow
8
+ Author-email: Marcin Zdun <marcin.zdun@gmail.com>
9
+ License-File: LICENSE
10
+ Keywords: C/C++,c++,ci,cpp,dependency,developer,manager,tool
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: License :: OSI Approved :: MIT License
14
+ Classifier: Operating System :: OS Independent
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Topic :: Software Development :: Build Tools
18
+ Requires-Python: >=3.10
19
+ Requires-Dist: argcomplete
20
+ Requires-Dist: chevron2021
21
+ Requires-Dist: prompt-toolkit
22
+ Requires-Dist: pyyaml
23
+ Description-Content-Type: text/markdown
24
+
25
+ # C++ flow
26
+
27
+ [![Python package workflow badge](https://github.com/mzdun/proj-flow/actions/workflows/python-publish.yml/badge.svg)](https://github.com/mzdun/proj-flow/actions)
28
+ [![PyPI version badge](https://img.shields.io/pypi/v/proj-flow.svg)](https://pypi.python.org/pypi/proj-flow)
29
+ [![PyPI License: MIT](https://img.shields.io/pypi/l/proj-flow.svg)](https://pypi.python.org/pypi/proj-flow)
30
+
31
+ **C++ flow** aims at being a one-stop tool for C++ projects, from creating new
32
+ project, though building and verifying, all the way to publishing releases to
33
+ the repository. It will run a set of known steps and will happily consult your
34
+ project what do you want to call any subset of those steps.
35
+
36
+ Currently, it will make use of Conan for external dependencies, CMake presets
37
+ for config and build and GitHub CLI for releases.
38
+
39
+ ## Installation
40
+
41
+ To create a new project with _C++ flow_, first install it using pip:
42
+
43
+ ```sh
44
+ (.venv) $ pip install proj-flow
45
+ ```
46
+
47
+ Every project created with _C++ flow_ has a self-bootstrapping helper script,
48
+ which will install `proj-flow` if it is needed, using either current virtual
49
+ environment or switching to a private virtual environment (created inside
50
+ `.flow/.venv` directory). This is used by the GitHub workflow in the generated
51
+ projects through the `bootstrap` command.
52
+
53
+ On any platform, this command (and any other) may be called from the root of the
54
+ project with:
55
+
56
+ ```sh
57
+ python .flow/flow.py bootstrap
58
+ ```
59
+
60
+ From Bash with:
61
+
62
+ ```sh
63
+ ./flow bootstrap
64
+ ```
65
+
66
+ From PowerShell with:
67
+
68
+ ```sh
69
+ .\flow bootstrap
70
+ ```
71
+
72
+ ## Creating a project
73
+
74
+ A fresh C++ project can be created with a
75
+
76
+ ```sh
77
+ proj-flow init
78
+ ```
79
+
80
+ This command will ask multiple questions to build Mustache context for the
81
+ project template. For more information, see [the documentation](https://proj-flow.readthedocs.io/en/latest/).