proj-flow 0.15.2__tar.gz → 0.16.0__tar.gz
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-0.15.2 → proj_flow-0.16.0}/CHANGELOG.rst +16 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/PKG-INFO +1 -1
- proj_flow-0.16.0/actions/bootstrap/action.yml +49 -0
- proj_flow-0.16.0/actions/bootstrap/version.py +46 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/__init__.py +1 -1
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/commit.py +5 -1
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/release.py +13 -7
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/minimal/base.py +2 -1
- proj_flow-0.16.0/src/proj_flow/minimal/ext/bug_report.py +75 -0
- proj_flow-0.15.2/src/proj_flow/minimal/ext/bug_report.py +0 -33
- {proj_flow-0.15.2 → proj_flow-0.16.0}/.flow/config.yaml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/.gitignore +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/.readthedocs.yaml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/LICENSE +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/README.md +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/ROADMAP.md +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/pyproject.toml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/__main__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/api/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/api/arg.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/api/completers.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/api/ctx.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/api/env.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/api/init.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/api/makefile.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/api/release.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/api/step.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/base/__cmake_version__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/base/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/base/cmd.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/base/inspect.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/base/matrix.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/base/name_list.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/base/plugins.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/base/registry.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/base/uname.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/cli/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/cli/argument.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/cli/finder.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/dependency.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/cplusplus/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/cplusplus/cmake/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/cplusplus/cmake/parser.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/cplusplus/cmake/project.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/cplusplus/cmake/steps.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/cplusplus/conan/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/cplusplus/conan/_conan.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/github/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/github/cli.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/github/hosting.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/github/publishing.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/github/switches.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/markdown_changelog.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/python/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/python/rtdocs.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/python/steps.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/python/version.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/re_structured_changelog.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/sign/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/sign/api.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/sign/win32.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/ext/store.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/flow/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/flow/configs.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/flow/layer.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/flow/steps.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/error.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/fmt.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/format.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/hosting/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/hosting/github.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/msg.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/rich_text/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/rich_text/api.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/rich_text/markdown.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/log/rich_text/re_structured_text.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/minimal/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/minimal/bootstrap.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/minimal/init.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/minimal/list.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/minimal/run.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/minimal/system.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/project/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/project/api.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/project/cplusplus/__init__.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/project/cplusplus/cmake_context.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/project/cplusplus/conan_context.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/project/cplusplus/project.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/project/data.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/project/interact.py +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/base/.clang-format +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/base/.flow/config.yml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/base/.flow/flow.py.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/base/.flow/matrix.yml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/base/.flow/official.yml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/base/.gitignore +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/base/README.md.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/base/flow +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/base/flow.cmd +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/base.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/.flow/cmake/common.cmake.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/__init__.py.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/__init__.py.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/.flow/extensions/wall/icons/magick.py.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/.flow/packages/base.cmake.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/.flow/packages/config.cmake +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/.flow/packages/cpack.cmake +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/.flow/packages/wix/cpack.cmake.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/.flow/packages/wix/patches.in.wix +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/.flow/packages/wix.cmake.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/CMakeGraphVizOptions.cmake +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/CMakeLists.txt.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/CMakePresets.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/assets/appicon.ico +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/assets/appicon.png +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/assets/wix_banner.bmp +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/icons/.gitignore +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/icons/appicon-mask.svg +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/icons/appicon.svg +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/src/main.cc.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/src/version.hpp.in.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/tests/test.cc.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/conan/.flow/cmake/libcxx_toolchain.cmake +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/conan/.flow/cmake/output_dirs_setup.cmake +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/conan/conanfile.txt +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/conan.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_actions/.github/linters/.isort.cfg +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_actions/.github/linters/.mypy.ini +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_actions/.github/workflows/build.yml.auto-release +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_actions/.github/workflows/build.yml.basic +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_actions/.github/workflows/linter.yml +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_actions/CPPLINT.cfg +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_actions.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/bug_report.md.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_social/.github/ISSUE_TEMPLATE/feature_request.md.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_social/CODE_OF_CONDUCT.md.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_social/CONTRIBUTING.md +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_social.json +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/licenses/0BSD.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/licenses/MIT.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/licenses/Unlicense.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/licenses/WTFPL.mustache +0 -0
- {proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/licenses/Zlib.mustache +0 -0
|
@@ -4,6 +4,22 @@ Changelog
|
|
|
4
4
|
|
|
5
5
|
All notable changes to this project will be documented in this file.
|
|
6
6
|
|
|
7
|
+
`0.16.0 <https://github.com/mzdun/proj-flow/compare/v0.15.3...v0.16.0>`_ (2025-03-02)
|
|
8
|
+
=====================================================================================
|
|
9
|
+
|
|
10
|
+
New Features
|
|
11
|
+
------------
|
|
12
|
+
|
|
13
|
+
- add bootstrap action (`57cf99b <https://github.com/mzdun/proj-flow/commit/57cf99bad7c34aa22d357746824647499d70eb07>`_)
|
|
14
|
+
|
|
15
|
+
`0.15.3 <https://github.com/mzdun/proj-flow/compare/v0.15.2...v0.15.3>`_ (2025-02-24)
|
|
16
|
+
=====================================================================================
|
|
17
|
+
|
|
18
|
+
Bug Fixes
|
|
19
|
+
---------
|
|
20
|
+
|
|
21
|
+
- only use two most-recent minor versions in YAML (`24e4b05 <https://github.com/mzdun/proj-flow/commit/24e4b05c6bb6c3dc2a7db534e49f7ba542d396da>`_)
|
|
22
|
+
|
|
7
23
|
`0.15.2 <https://github.com/mzdun/proj-flow/compare/v0.15.1...v0.15.2>`_ (2025-02-24)
|
|
8
24
|
=====================================================================================
|
|
9
25
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: proj-flow
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.16.0
|
|
4
4
|
Summary: C++ project maintenance, automated
|
|
5
5
|
Project-URL: Changelog, https://github.com/mzdun/proj-flow/blob/main/CHANGELOG.rst
|
|
6
6
|
Project-URL: Documentation, https://proj-flow.readthedocs.io/en/latest/
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
name: Python + Project Flow bootstrap
|
|
2
|
+
author: Marcin Zdun
|
|
3
|
+
|
|
4
|
+
inputs:
|
|
5
|
+
python-version:
|
|
6
|
+
description: "Version range or exact version of Python or PyPy to use, using SemVer's version range syntax. Reads from .python-version if unset."
|
|
7
|
+
|
|
8
|
+
outputs:
|
|
9
|
+
version:
|
|
10
|
+
description: Version of the `proj-flow` this project expects
|
|
11
|
+
value: ${{ steps.version.outputs.version }}
|
|
12
|
+
|
|
13
|
+
is-flow-app:
|
|
14
|
+
description: Checks, if this project is a Flow project
|
|
15
|
+
value: ${{ steps.version.outputs.is-flow-app }}
|
|
16
|
+
|
|
17
|
+
runs:
|
|
18
|
+
using: composite
|
|
19
|
+
steps:
|
|
20
|
+
- name: python 3.10
|
|
21
|
+
uses: actions/setup-python@v5
|
|
22
|
+
with:
|
|
23
|
+
python-version: ${{ inputs.python-version }}
|
|
24
|
+
|
|
25
|
+
- name: check version
|
|
26
|
+
id: version
|
|
27
|
+
shell: python
|
|
28
|
+
run: |
|
|
29
|
+
import os
|
|
30
|
+
import sys
|
|
31
|
+
|
|
32
|
+
ACTION_PATH = r'${{ github.action_path }}'.replace('/', os.sep)
|
|
33
|
+
sys.path.insert(0, ACTION_PATH)
|
|
34
|
+
|
|
35
|
+
import version
|
|
36
|
+
env:
|
|
37
|
+
RUNNER_CONTEXT: ${{ toJson(runner) }}
|
|
38
|
+
|
|
39
|
+
- name: .flow/.venv cache
|
|
40
|
+
if: ${{ fromJson(steps.version.outputs.is-flow-app) }}
|
|
41
|
+
uses: actions/cache@v4
|
|
42
|
+
with:
|
|
43
|
+
path: .flow/.venv
|
|
44
|
+
key: ${{ steps.version.outputs.venv-cache-key }}
|
|
45
|
+
|
|
46
|
+
- name: bootstrap
|
|
47
|
+
if: ${{ fromJson(steps.version.outputs.is-flow-app) }}
|
|
48
|
+
run: python ./.flow/flow.py bootstrap
|
|
49
|
+
shell: bash
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import os
|
|
2
|
+
import json
|
|
3
|
+
from platform import machine
|
|
4
|
+
from typing import cast
|
|
5
|
+
|
|
6
|
+
VAR_NAME = "CXX_FLOW_VERSION"
|
|
7
|
+
VARIABLE = ""
|
|
8
|
+
IS_FLOW_APP = False
|
|
9
|
+
|
|
10
|
+
RUNNER = cast(dict, json.loads(os.environ["RUNNER_CONTEXT"]))
|
|
11
|
+
RUNNER_OS = RUNNER.get("os", os.name)
|
|
12
|
+
RUNNER_ARCH = RUNNER.get("arch", machine() or "unk-arch")
|
|
13
|
+
|
|
14
|
+
try:
|
|
15
|
+
with open(".flow/flow.py", encoding="UTF-8") as flow_py:
|
|
16
|
+
for line in flow_py:
|
|
17
|
+
if not line.startswith(VAR_NAME):
|
|
18
|
+
continue
|
|
19
|
+
|
|
20
|
+
var_list = line.split("=", 1)
|
|
21
|
+
if len(var_list) != 2:
|
|
22
|
+
continue
|
|
23
|
+
|
|
24
|
+
var = var_list[0].strip()
|
|
25
|
+
if var != VAR_NAME:
|
|
26
|
+
continue
|
|
27
|
+
|
|
28
|
+
val = var_list[1].strip()
|
|
29
|
+
start = val[:1]
|
|
30
|
+
if start not in "\"'":
|
|
31
|
+
continue
|
|
32
|
+
|
|
33
|
+
VARIABLE = val[1:].split(start, 1)[0].strip()
|
|
34
|
+
break
|
|
35
|
+
|
|
36
|
+
IS_FLOW_APP = True
|
|
37
|
+
|
|
38
|
+
except FileNotFoundError:
|
|
39
|
+
pass
|
|
40
|
+
|
|
41
|
+
VENV_CACHE_KEY = f"venv-{RUNNER_OS}-{RUNNER_ARCH}-{VARIABLE}"
|
|
42
|
+
|
|
43
|
+
with open(os.environ["GITHUB_OUTPUT"], "a", encoding="UTF-8") as out:
|
|
44
|
+
print(f"version={VARIABLE}", file=out)
|
|
45
|
+
print(f"venv-cache-key={VENV_CACHE_KEY}", file=out)
|
|
46
|
+
print(f"is-flow-app={json.dumps(IS_FLOW_APP)}", file=out)
|
|
@@ -139,7 +139,11 @@ def _get_commit(hash: str, short_hash: str, message: str) -> Optional[Commit]:
|
|
|
139
139
|
|
|
140
140
|
breaking_change = None
|
|
141
141
|
body = "\n".join(lines).strip().split("BREAKING CHANGE", 1)
|
|
142
|
-
if
|
|
142
|
+
if (
|
|
143
|
+
len(body) > 1
|
|
144
|
+
and (len(body[0]) == 0 or body[0][-1:] == "\n")
|
|
145
|
+
and (len(body[1]) == 1 or body[1][:1] == ":")
|
|
146
|
+
):
|
|
143
147
|
body = body[1].lstrip(":").strip()
|
|
144
148
|
breaking_change = [
|
|
145
149
|
re.sub(r"\s+", " ", para.strip()) for para in body.split("\n\n")
|
|
@@ -6,8 +6,7 @@ The **proj_flow.log.release** performs a relase on the hosting service.
|
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
8
|
import typing
|
|
9
|
-
from
|
|
10
|
-
from typing import Iterable, Union
|
|
9
|
+
from typing import Iterable, Optional, Union
|
|
11
10
|
|
|
12
11
|
from proj_flow import api
|
|
13
12
|
from proj_flow.api import env
|
|
@@ -18,9 +17,14 @@ from proj_flow.log.error import NoProjectError, VersionNotAdvancing
|
|
|
18
17
|
OneOrMoreStrings = Union[str, Iterable[str]]
|
|
19
18
|
|
|
20
19
|
|
|
21
|
-
class VersionUpdater
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
class VersionUpdater:
|
|
21
|
+
def on_version_change(self, new_version: str) -> Optional[OneOrMoreStrings]:
|
|
22
|
+
return None
|
|
23
|
+
|
|
24
|
+
def on_version_change_tags(
|
|
25
|
+
self, new_version: str, tags: list[str]
|
|
26
|
+
) -> Optional[OneOrMoreStrings]:
|
|
27
|
+
return self.on_version_change(new_version)
|
|
24
28
|
|
|
25
29
|
|
|
26
30
|
version_updaters = registry.Registry[VersionUpdater]("VersionUpdater")
|
|
@@ -114,8 +118,10 @@ def add_release(
|
|
|
114
118
|
files_to_commit.append(version_path)
|
|
115
119
|
|
|
116
120
|
for updater in version_updaters.get():
|
|
117
|
-
modified = updater.
|
|
118
|
-
if
|
|
121
|
+
modified = updater.on_version_change_tags(next_version, tags)
|
|
122
|
+
if modified is None:
|
|
123
|
+
continue
|
|
124
|
+
elif isinstance(modified, str):
|
|
119
125
|
files_to_commit.append(modified)
|
|
120
126
|
else:
|
|
121
127
|
files_to_commit.extend(modified)
|
|
@@ -12,6 +12,7 @@ from typing import List
|
|
|
12
12
|
from proj_flow import __version__, api
|
|
13
13
|
from proj_flow.flow import layer
|
|
14
14
|
|
|
15
|
+
|
|
15
16
|
class GitInit(api.init.InitStep):
|
|
16
17
|
layers: List[layer.LayerInfo] = []
|
|
17
18
|
|
|
@@ -27,7 +28,7 @@ class GitInit(api.init.InitStep):
|
|
|
27
28
|
|
|
28
29
|
git("init")
|
|
29
30
|
git("add", ".")
|
|
30
|
-
|
|
31
|
+
|
|
31
32
|
executables: List[str] = []
|
|
32
33
|
|
|
33
34
|
for fs_layer in GitInit.layers:
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Copyright (c) 2025 Marcin Zdun
|
|
2
|
+
# This code is licensed under MIT license (see LICENSE for details)
|
|
3
|
+
|
|
4
|
+
"""
|
|
5
|
+
The **proj_flow.minimal.ext.bug_report** adds next version to bug_report.yaml
|
|
6
|
+
next to CHANGELOG.rst.
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import re
|
|
10
|
+
import sys
|
|
11
|
+
from typing import List, Tuple
|
|
12
|
+
|
|
13
|
+
from proj_flow.log import release
|
|
14
|
+
|
|
15
|
+
YAML_PATH = ".github/ISSUE_TEMPLATE/bug_report.yaml"
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def _version(ver: str) -> Tuple[int, int, int, str]:
|
|
19
|
+
if ver[:1] == "v":
|
|
20
|
+
ver = ver[1:]
|
|
21
|
+
|
|
22
|
+
m = re.match(r"([0-9]+)\.([0-9]+)\.([0-9]+)(.*)", ver)
|
|
23
|
+
if m is None:
|
|
24
|
+
print(f"fatal error: cannot parse {ver}", file=sys.stderr)
|
|
25
|
+
raise SystemExit(1)
|
|
26
|
+
return (int(m.group(1)), int(m.group(2)), int(m.group(3)), ver)
|
|
27
|
+
|
|
28
|
+
def _prev_version(new_version: str, tags: List[str]):
|
|
29
|
+
current = _version(new_version)
|
|
30
|
+
versions = [_version(tag) for tag in reversed(tags)]
|
|
31
|
+
index = 0
|
|
32
|
+
while index < len(versions):
|
|
33
|
+
comp = versions[index]
|
|
34
|
+
if comp[0] != current[0] or comp[1] != current[1]:
|
|
35
|
+
break
|
|
36
|
+
|
|
37
|
+
index += 1
|
|
38
|
+
if index >= len(versions):
|
|
39
|
+
index = 0
|
|
40
|
+
|
|
41
|
+
return None if index > len(versions) else versions[index][-1]
|
|
42
|
+
|
|
43
|
+
@release.version_updaters.add
|
|
44
|
+
class VersionUpdater(release.VersionUpdater):
|
|
45
|
+
def on_version_change_tags(self, new_version: str, tags: List[str]):
|
|
46
|
+
old_version = _prev_version(new_version, tags)
|
|
47
|
+
|
|
48
|
+
range = [f" - Current (v{new_version})\n"]
|
|
49
|
+
if old_version:
|
|
50
|
+
range.extend(
|
|
51
|
+
[
|
|
52
|
+
f" - Previous (v{old_version})\n",
|
|
53
|
+
f" - Older, than v{old_version}\n",
|
|
54
|
+
]
|
|
55
|
+
)
|
|
56
|
+
|
|
57
|
+
with open(YAML_PATH, encoding="UTF-8") as inf:
|
|
58
|
+
lines = inf.readlines()
|
|
59
|
+
|
|
60
|
+
try:
|
|
61
|
+
id_index = lines.index(" id: version\n")
|
|
62
|
+
option_index = lines.index(" options:\n", id_index) + 1
|
|
63
|
+
option_index_end = option_index
|
|
64
|
+
while option_index_end < len(lines) and lines[option_index_end].startswith(
|
|
65
|
+
" - "
|
|
66
|
+
):
|
|
67
|
+
option_index_end += 1
|
|
68
|
+
lines[option_index:option_index_end] = range
|
|
69
|
+
except ValueError as e:
|
|
70
|
+
print(e, file=sys.stderr)
|
|
71
|
+
|
|
72
|
+
with open(YAML_PATH, "w", encoding="UTF-8") as outf:
|
|
73
|
+
outf.writelines(lines)
|
|
74
|
+
|
|
75
|
+
return YAML_PATH
|
|
@@ -1,33 +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.minimal.ext.bug_report** adds next version to bug_report.yaml
|
|
6
|
-
next to CHANGELOG.rst.
|
|
7
|
-
"""
|
|
8
|
-
|
|
9
|
-
import re
|
|
10
|
-
import sys
|
|
11
|
-
|
|
12
|
-
from proj_flow.log import release
|
|
13
|
-
|
|
14
|
-
YAML_PATH = ".github/ISSUE_TEMPLATE/bug_report.yaml"
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
@release.version_updaters.add
|
|
18
|
-
class VersionUpdater(release.VersionUpdater):
|
|
19
|
-
def on_version_change(self, new_version: str):
|
|
20
|
-
with open(YAML_PATH, encoding="UTF-8") as inf:
|
|
21
|
-
lines = inf.readlines()
|
|
22
|
-
|
|
23
|
-
try:
|
|
24
|
-
id_index = lines.index(" id: version\n")
|
|
25
|
-
option_index = lines.index(" options:\n", id_index) + 1
|
|
26
|
-
lines[option_index:option_index] = f" - v{new_version}\n"
|
|
27
|
-
except ValueError as e:
|
|
28
|
-
print(e, file=sys.stderr)
|
|
29
|
-
|
|
30
|
-
with open(YAML_PATH, "w", encoding="UTF-8") as outf:
|
|
31
|
-
outf.writelines(lines)
|
|
32
|
-
|
|
33
|
-
return YAML_PATH
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/base/.flow/flow.py.mustache
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/.flow/packages/cpack.cmake
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/CMakeGraphVizOptions.cmake
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/CMakeLists.txt.mustache
RENAMED
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/assets/appicon.ico
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/assets/appicon.png
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/assets/wix_banner.bmp
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/assets/wix_dialog.bmp
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/icons/.gitignore
RENAMED
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/data/icons/appicon.svg
RENAMED
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/src/main.cc.mustache
RENAMED
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/cmake/tests/test.cc.mustache
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_actions/CPPLINT.cfg
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{proj_flow-0.15.2 → proj_flow-0.16.0}/src/proj_flow/template/layers/github_social/CONTRIBUTING.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|