# Project Flow
[](https://github.com/mzdun/proj-flow/actions)
[](https://pypi.python.org/pypi/proj-flow)
[](https://pypi.python.org/pypi/proj-flow)
**Project Flow** aims at being a one-stop tool for C++ projects, from creating new
project, though building and verifying, all the way to publishing releases to
the repository. It will run a set of known steps and will happily consult your
project what do you want to call any subset of those steps.
Currently, it will make use of Conan for external dependencies, CMake presets
for config and build and GitHub CLI for releases.
## Installation
To create a new project with _Project Flow_, first install it using pip:
```sh
(.venv) $ pip install proj-flow
```
Every project created with _Project Flow_ has a self-bootstrapping helper script,
which will install `proj-flow` if it is needed, using either current virtual
environment or switching to a private virtual environment (created inside
`.flow/.venv` directory). This is used by the GitHub workflow in the generated
projects through the `bootstrap` command.
On any platform, this command (and any other) may be called from the root of the
project with:
```sh
python .flow/flow.py bootstrap
```
From Bash with:
```sh
./flow bootstrap
```
From PowerShell with:
```sh
.\flow bootstrap
```
## Creating a project
A fresh C++ project can be created with a
```sh
proj-flow init cxx
```
This command will ask multiple questions to build Mustache context for the
project template. For more information, see [the documentation](https://proj-flow.readthedocs.io/en/latest/).
Raw data
{
"_id": null,
"home_page": null,
"name": "proj-flow",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "C/C++, build-tool, c++, ci-cd, continuous-integration, cpp, dependencies, dependency-manager, developer, developer-tools, development, meta-build-tool, pipeline, tools-and-automation",
"author": null,
"author_email": "Marcin Zdun <marcin.zdun@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/49/fd/8fcdc659b194c68d3a2c9fc2a4fa19d46c6c16a104ef6703578ff9ca26b9/proj_flow-0.15.1.tar.gz",
"platform": null,
"description": "# Project Flow\n\n[](https://github.com/mzdun/proj-flow/actions)\n[](https://pypi.python.org/pypi/proj-flow)\n[](https://pypi.python.org/pypi/proj-flow)\n\n**Project Flow** aims at being a one-stop tool for C++ projects, from creating new\nproject, though building and verifying, all the way to publishing releases to\nthe repository. It will run a set of known steps and will happily consult your\nproject what do you want to call any subset of those steps.\n\nCurrently, it will make use of Conan for external dependencies, CMake presets\nfor config and build and GitHub CLI for releases.\n\n## Installation\n\nTo create a new project with _Project Flow_, first install it using pip:\n\n```sh\n(.venv) $ pip install proj-flow\n```\n\nEvery project created with _Project Flow_ has a self-bootstrapping helper script,\nwhich will install `proj-flow` if it is needed, using either current virtual\nenvironment or switching to a private virtual environment (created inside\n`.flow/.venv` directory). This is used by the GitHub workflow in the generated\nprojects through the `bootstrap` command.\n\nOn any platform, this command (and any other) may be called from the root of the\nproject with:\n\n```sh\npython .flow/flow.py bootstrap\n```\n\nFrom Bash with:\n\n```sh\n./flow bootstrap\n```\n\nFrom PowerShell with:\n\n```sh\n.\\flow bootstrap\n```\n\n## Creating a project\n\nA fresh C++ project can be created with a\n\n```sh\nproj-flow init cxx\n```\n\nThis command will ask multiple questions to build Mustache context for the\nproject template. For more information, see [the documentation](https://proj-flow.readthedocs.io/en/latest/).\n",
"bugtrack_url": null,
"license": null,
"summary": "C++ project maintenance, automated",
"version": "0.15.1",
"project_urls": {
"Changelog": "https://github.com/mzdun/proj-flow/blob/main/CHANGELOG.rst",
"Documentation": "https://proj-flow.readthedocs.io/en/latest/",
"Homepage": "https://pypi.org/project/proj-flow/",
"Source Code": "https://github.com/mzdun/proj-flow"
},
"split_keywords": [
"c/c++",
" build-tool",
" c++",
" ci-cd",
" continuous-integration",
" cpp",
" dependencies",
" dependency-manager",
" developer",
" developer-tools",
" development",
" meta-build-tool",
" pipeline",
" tools-and-automation"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "cd8a45e7f10f3a9ae075ea77e8dd6d462f419233b3528a160e74132ef5a5e5e4",
"md5": "319cf9f722a4a389ea0530e4cea7bb3b",
"sha256": "de5b12b32b1bd5eed5ae654f68119f3f5fba0918d248ca58e1167c1eb7ec32f4"
},
"downloads": -1,
"filename": "proj_flow-0.15.1-py3-none-any.whl",
"has_sig": false,
"md5_digest": "319cf9f722a4a389ea0530e4cea7bb3b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 167878,
"upload_time": "2025-02-23T15:12:25",
"upload_time_iso_8601": "2025-02-23T15:12:25.331982Z",
"url": "https://files.pythonhosted.org/packages/cd/8a/45e7f10f3a9ae075ea77e8dd6d462f419233b3528a160e74132ef5a5e5e4/proj_flow-0.15.1-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "49fd8fcdc659b194c68d3a2c9fc2a4fa19d46c6c16a104ef6703578ff9ca26b9",
"md5": "3000e86e82886226059aac806a3e432c",
"sha256": "d6b4af8e86df7ba380261981347d3b6c9b81d80e389423a62c9e9744a1794100"
},
"downloads": -1,
"filename": "proj_flow-0.15.1.tar.gz",
"has_sig": false,
"md5_digest": "3000e86e82886226059aac806a3e432c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 123116,
"upload_time": "2025-02-23T15:12:27",
"upload_time_iso_8601": "2025-02-23T15:12:27.479964Z",
"url": "https://files.pythonhosted.org/packages/49/fd/8fcdc659b194c68d3a2c9fc2a4fa19d46c6c16a104ef6703578ff9ca26b9/proj_flow-0.15.1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-23 15:12:27",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "mzdun",
"github_project": "proj-flow",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "proj-flow"
}