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.
- proj_flow/__init__.py +4 -0
- proj_flow/__main__.py +10 -0
- proj_flow/api/__init__.py +10 -0
- proj_flow/api/arg.py +134 -0
- proj_flow/api/completers.py +93 -0
- proj_flow/api/ctx.py +238 -0
- proj_flow/api/env.py +416 -0
- proj_flow/api/init.py +26 -0
- proj_flow/api/makefile.py +140 -0
- proj_flow/api/step.py +173 -0
- proj_flow/base/__init__.py +11 -0
- proj_flow/base/cmd.py +50 -0
- proj_flow/base/inspect.py +133 -0
- proj_flow/base/matrix.py +240 -0
- proj_flow/base/plugins.py +44 -0
- proj_flow/base/uname.py +71 -0
- proj_flow/flow/__init__.py +11 -0
- proj_flow/flow/cli/__init__.py +66 -0
- proj_flow/flow/cli/cmds.py +385 -0
- proj_flow/flow/cli/finder.py +59 -0
- proj_flow/flow/configs.py +162 -0
- proj_flow/flow/dependency.py +153 -0
- proj_flow/flow/init.py +65 -0
- proj_flow/flow/interact.py +134 -0
- proj_flow/flow/layer.py +176 -0
- proj_flow/flow/steps.py +104 -0
- proj_flow/log/__init__.py +10 -0
- proj_flow/log/commit.py +463 -0
- proj_flow/log/fmt.py +12 -0
- proj_flow/log/format.py +13 -0
- proj_flow/log/hosting/__init__.py +11 -0
- proj_flow/log/hosting/github.py +248 -0
- proj_flow/log/msg.py +201 -0
- proj_flow/log/release.py +34 -0
- proj_flow/log/rich_text/__init__.py +22 -0
- proj_flow/log/rich_text/api.py +126 -0
- proj_flow/log/rich_text/markdown.py +61 -0
- proj_flow/log/rich_text/re_structured_text.py +68 -0
- proj_flow/plugins/__init__.py +8 -0
- proj_flow/plugins/base.py +30 -0
- proj_flow/plugins/cmake/__init__.py +11 -0
- proj_flow/plugins/cmake/__version__.py +5 -0
- proj_flow/plugins/cmake/build.py +29 -0
- proj_flow/plugins/cmake/config.py +59 -0
- proj_flow/plugins/cmake/context.py +112 -0
- proj_flow/plugins/cmake/pack.py +37 -0
- proj_flow/plugins/cmake/parser.py +166 -0
- proj_flow/plugins/cmake/test.py +29 -0
- proj_flow/plugins/commands/__init__.py +12 -0
- proj_flow/plugins/commands/bootstrap.py +21 -0
- proj_flow/plugins/commands/ci/__init__.py +17 -0
- proj_flow/plugins/commands/ci/changelog.py +47 -0
- proj_flow/plugins/commands/ci/matrix.py +46 -0
- proj_flow/plugins/commands/ci/release.py +116 -0
- proj_flow/plugins/commands/init.py +75 -0
- proj_flow/plugins/commands/list.py +167 -0
- proj_flow/plugins/commands/run.py +147 -0
- proj_flow/plugins/commands/system.py +60 -0
- proj_flow/plugins/conan/__init__.py +66 -0
- proj_flow/plugins/conan/_conan.py +146 -0
- proj_flow/plugins/github.py +13 -0
- proj_flow/plugins/sign/__init__.py +130 -0
- proj_flow/plugins/sign/win32.py +191 -0
- proj_flow/plugins/store/__init__.py +11 -0
- proj_flow/plugins/store/store_both.py +22 -0
- proj_flow/plugins/store/store_packages.py +79 -0
- proj_flow/plugins/store/store_tests.py +21 -0
- proj_flow/template/layers/base/.clang-format +27 -0
- proj_flow/template/layers/base/.flow/config.yml +38 -0
- proj_flow/template/layers/base/.flow/flow.py.mustache +172 -0
- proj_flow/template/layers/base/.flow/matrix.yml +63 -0
- proj_flow/template/layers/base/.flow/official.yml +4 -0
- proj_flow/template/layers/base/.gitignore +39 -0
- proj_flow/template/layers/base/README.md.mustache +2 -0
- proj_flow/template/layers/base/flow +7 -0
- proj_flow/template/layers/base/flow.cmd +9 -0
- proj_flow/template/layers/base.json +2 -0
- proj_flow/template/layers/cmake/.flow/cmake/common.cmake.mustache +27 -0
- proj_flow/template/layers/cmake/.flow/extensions/wall/__init__.py.mustache +2 -0
- proj_flow/template/layers/cmake/.flow/extensions/wall/icons/__init__.py.mustache +54 -0
- proj_flow/template/layers/cmake/.flow/extensions/wall/icons/magick.py.mustache +97 -0
- proj_flow/template/layers/cmake/.flow/packages/base.cmake.mustache +33 -0
- proj_flow/template/layers/cmake/.flow/packages/config.cmake +12 -0
- proj_flow/template/layers/cmake/.flow/packages/cpack.cmake +3 -0
- proj_flow/template/layers/cmake/.flow/packages/wix/cpack.cmake.mustache +1 -0
- proj_flow/template/layers/cmake/.flow/packages/wix/patches.in.wix +10 -0
- proj_flow/template/layers/cmake/.flow/packages/wix.cmake.mustache +13 -0
- proj_flow/template/layers/cmake/CMakeGraphVizOptions.cmake +8 -0
- proj_flow/template/layers/cmake/CMakeLists.txt.mustache +213 -0
- proj_flow/template/layers/cmake/CMakePresets.json +196 -0
- proj_flow/template/layers/cmake/data/assets/appicon.ico +0 -0
- proj_flow/template/layers/cmake/data/assets/appicon.png +0 -0
- proj_flow/template/layers/cmake/data/assets/wix_banner.bmp +0 -0
- proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp +0 -0
- proj_flow/template/layers/cmake/data/icons/.gitignore +3 -0
- proj_flow/template/layers/cmake/data/icons/appicon-mask.svg +6 -0
- proj_flow/template/layers/cmake/data/icons/appicon.svg +27 -0
- proj_flow/template/layers/cmake/src/main.cc.mustache +38 -0
- proj_flow/template/layers/cmake/src/version.hpp.in.mustache +36 -0
- proj_flow/template/layers/cmake/tests/test.cc.mustache +17 -0
- proj_flow/template/layers/cmake.json +15 -0
- proj_flow/template/layers/conan/.flow/cmake/libcxx_toolchain.cmake +4 -0
- proj_flow/template/layers/conan/.flow/cmake/output_dirs_setup.cmake +19 -0
- proj_flow/template/layers/conan/conanfile.txt +9 -0
- proj_flow/template/layers/conan.json +3 -0
- proj_flow/template/layers/github_actions/.github/linters/.isort.cfg +4 -0
- proj_flow/template/layers/github_actions/.github/linters/.mypy.ini +2 -0
- proj_flow/template/layers/github_actions/.github/workflows/build.yml +241 -0
- proj_flow/template/layers/github_actions/.github/workflows/linter.yml +59 -0
- proj_flow/template/layers/github_actions/CPPLINT.cfg +16 -0
- proj_flow/template/layers/github_actions.json +3 -0
- proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/bug_report.md.mustache +42 -0
- proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/feature_request.md.mustache +28 -0
- proj_flow/template/layers/github_social/CODE_OF_CONDUCT.md.mustache +76 -0
- proj_flow/template/layers/github_social/CONTRIBUTING.md +10 -0
- proj_flow/template/layers/github_social.json +3 -0
- proj_flow/template/licenses/0BSD.mustache +12 -0
- proj_flow/template/licenses/MIT.mustache +21 -0
- proj_flow/template/licenses/Unlicense.mustache +24 -0
- proj_flow/template/licenses/WTFPL.mustache +13 -0
- proj_flow/template/licenses/Zlib.mustache +19 -0
- proj_flow-0.8.1.dist-info/METADATA +81 -0
- proj_flow-0.8.1.dist-info/RECORD +126 -0
- proj_flow-0.8.1.dist-info/WHEEL +4 -0
- proj_flow-0.8.1.dist-info/entry_points.txt +2 -0
- 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,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,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
|
+
[](https://github.com/mzdun/proj-flow/actions)
|
|
28
|
+
[](https://pypi.python.org/pypi/proj-flow)
|
|
29
|
+
[](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/).
|