dyro 0.1.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.
- dyro-0.1.0/LICENSE +21 -0
- dyro-0.1.0/PKG-INFO +116 -0
- dyro-0.1.0/README.md +95 -0
- dyro-0.1.0/pyproject.toml +39 -0
- dyro-0.1.0/setup.cfg +4 -0
- dyro-0.1.0/src/dyro/__init__.py +3 -0
- dyro-0.1.0/src/dyro/__main__.py +5 -0
- dyro-0.1.0/src/dyro/cli.py +529 -0
- dyro-0.1.0/src/dyro/config.py +179 -0
- dyro-0.1.0/src/dyro/errors.py +6 -0
- dyro-0.1.0/src/dyro/onboarding.py +106 -0
- dyro-0.1.0/src/dyro/process.py +62 -0
- dyro-0.1.0/src/dyro/tasks.py +498 -0
- dyro-0.1.0/src/dyro/workspace.py +227 -0
- dyro-0.1.0/src/dyro.egg-info/PKG-INFO +116 -0
- dyro-0.1.0/src/dyro.egg-info/SOURCES.txt +22 -0
- dyro-0.1.0/src/dyro.egg-info/dependency_links.txt +1 -0
- dyro-0.1.0/src/dyro.egg-info/entry_points.txt +2 -0
- dyro-0.1.0/src/dyro.egg-info/top_level.txt +1 -0
- dyro-0.1.0/tests/test_cli.py +26 -0
- dyro-0.1.0/tests/test_config.py +20 -0
- dyro-0.1.0/tests/test_onboarding.py +24 -0
- dyro-0.1.0/tests/test_tasks.py +40 -0
- dyro-0.1.0/tests/test_workspace.py +15 -0
dyro-0.1.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 DandreYang
|
|
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.
|
dyro-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dyro
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: DyroEngineeringFlow: local-first automation and delivery control for multi-repository teams
|
|
5
|
+
Author: DandreYang
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/DandreYang/DyroEngineeringFlow
|
|
8
|
+
Project-URL: Repository, https://github.com/DandreYang/DyroEngineeringFlow
|
|
9
|
+
Project-URL: Issues, https://github.com/DandreYang/DyroEngineeringFlow/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/DandreYang/DyroEngineeringFlow/blob/main/CHANGELOG.md
|
|
11
|
+
Keywords: agent,automation,delivery,git-worktree,multi-repository
|
|
12
|
+
Classifier: Development Status :: 2 - Pre-Alpha
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Requires-Python: >=3.11
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
License-File: LICENSE
|
|
20
|
+
Dynamic: license-file
|
|
21
|
+
|
|
22
|
+
# DyroEngineeringFlow
|
|
23
|
+
|
|
24
|
+
[English](README.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [Español](README.es.md)
|
|
25
|
+
|
|
26
|
+
**DyroEngineeringFlow · `dyro` CLI** is a local-first engineering automation and delivery control platform for multi-repository teams. It brings development lines, Git worktrees, agent launchers, task gates, independent review, and merge audit into versioned workspace configuration.
|
|
27
|
+
|
|
28
|
+
**Keep engineering moving from task to delivery.**
|
|
29
|
+
|
|
30
|
+
DyroEngineeringFlow is not coupled to Codex, Claude, or any business domain. Each team supplies a `dyro.toml` Profile for repositories, layouts, agent adapters, and delivery policy; business rules, model cost, and release practices stay in that Profile.
|
|
31
|
+
|
|
32
|
+
## What it enforces
|
|
33
|
+
|
|
34
|
+
- A task belongs to exactly one development line—never a mixed feature or hotfix workspace.
|
|
35
|
+
- Each task runs in its own `git worktree` on a `task/<id>` branch.
|
|
36
|
+
- Gates are executed by the orchestrator; an agent's self-report is not evidence of success.
|
|
37
|
+
- A task needs independent review before it becomes `done`; merge and push require explicit confirmation by default.
|
|
38
|
+
- Executable configuration is represented as argv arrays. The core never runs TOML-provided shell strings.
|
|
39
|
+
|
|
40
|
+
## Quick start
|
|
41
|
+
|
|
42
|
+
This is currently a local development release and requires Python 3.11 or later:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
cd /path/to/DyroEngineeringFlow
|
|
46
|
+
python3 -m pip install -e .
|
|
47
|
+
|
|
48
|
+
mkdir my-workspace && cd my-workspace
|
|
49
|
+
dyro init . --wizard --name my-workspace
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
The wizard records repository paths, their positions in a development line, and optional Git remotes. If a Profile contains remotes, missing repository anchors can be created safely:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
dyro --dry-run bootstrap
|
|
56
|
+
dyro bootstrap --yes
|
|
57
|
+
dyro doctor
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
For a new teammate, the normal entry point is one command. It checks the workspace, then selects a development line and local agent:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
dyro start
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Delivery workflow
|
|
67
|
+
|
|
68
|
+
Use explicit commands when scripting or leading a release:
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
dyro doctor
|
|
72
|
+
dyro line create release-2026-10 --base origin/main --yes
|
|
73
|
+
dyro open release-2026-10 --agent codex
|
|
74
|
+
dyro task create API-101 --title "Implement API contract" --line release-2026-10 --repository api
|
|
75
|
+
dyro task next
|
|
76
|
+
dyro task next --run --yes
|
|
77
|
+
dyro task review API-101
|
|
78
|
+
dyro task merge API-101 --yes
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
A production hotfix must state its verified production base; it never inherits a default branch implicitly:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
dyro hotfix create incident-123 --base v2026.09.7 --repos api,web --yes
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
Every write-capable operation has a planning mode:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
dyro --dry-run line create release-2026-10 --base origin/main
|
|
91
|
+
dyro --dry-run task run API-101
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
## Command map
|
|
95
|
+
|
|
96
|
+
| Command | Purpose |
|
|
97
|
+
| --- | --- |
|
|
98
|
+
| `init --wizard` / `bootstrap` / `start` | Onboard a teammate, restore missing repository anchors, and choose a line and agent. |
|
|
99
|
+
| `doctor` / `status` | Validate and display control-plane state. |
|
|
100
|
+
| `line create/list` | Create, register, and inspect feature development lines. |
|
|
101
|
+
| `hotfix create` | Create a hotfix line from an explicit production base. |
|
|
102
|
+
| `agent list` / `open` | Inspect adapters or open an agent in the correct development line. |
|
|
103
|
+
| `task create/list/board/status/next` | Manage task manifests, the state machine, and the next actionable task. |
|
|
104
|
+
| `task run/answer/gates/review` | Run tasks, resolve questions, execute gates, and request independent review. |
|
|
105
|
+
| `task merge` | Merge a reviewed task branch into its owning development line. |
|
|
106
|
+
| `task loop/daemon/stats/decisions` | Run controlled batches, scheduling, ledger reporting, and decision gates. |
|
|
107
|
+
|
|
108
|
+
See the [architecture and Profile contract](docs/architecture.md) and the [Huiyichu migration guide](docs/migration-huiyichu.md) for implementation detail.
|
|
109
|
+
|
|
110
|
+
## Languages and documentation
|
|
111
|
+
|
|
112
|
+
This README is maintained in English, Simplified Chinese, Japanese, Korean, and Spanish. Commands, configuration keys, directory names, and safety rules are deliberately identical across translations. The current CLI messages and extended technical guides are primarily Chinese; multilingual README support does not claim that the runtime has language switching yet.
|
|
113
|
+
|
|
114
|
+
## Current boundaries
|
|
115
|
+
|
|
116
|
+
DyroEngineeringFlow provides a complete local workflow loop. It does not create remote repositories, ship SaaS credentials, or enable automatic push. Automatic merge requires permission in both the task manifest and local policy. It is available under the [MIT License](LICENSE). PyPI Trusted Publishing is prepared, but `dyro` is not published to PyPI yet; the PyPI pending publisher, GitHub `pypi` Environment, and first GitHub Release must still be configured. Package-name, trademark, cross-platform adapter, and real external-project pilot validation remain required before public release.
|
dyro-0.1.0/README.md
ADDED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# DyroEngineeringFlow
|
|
2
|
+
|
|
3
|
+
[English](README.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [Español](README.es.md)
|
|
4
|
+
|
|
5
|
+
**DyroEngineeringFlow · `dyro` CLI** is a local-first engineering automation and delivery control platform for multi-repository teams. It brings development lines, Git worktrees, agent launchers, task gates, independent review, and merge audit into versioned workspace configuration.
|
|
6
|
+
|
|
7
|
+
**Keep engineering moving from task to delivery.**
|
|
8
|
+
|
|
9
|
+
DyroEngineeringFlow is not coupled to Codex, Claude, or any business domain. Each team supplies a `dyro.toml` Profile for repositories, layouts, agent adapters, and delivery policy; business rules, model cost, and release practices stay in that Profile.
|
|
10
|
+
|
|
11
|
+
## What it enforces
|
|
12
|
+
|
|
13
|
+
- A task belongs to exactly one development line—never a mixed feature or hotfix workspace.
|
|
14
|
+
- Each task runs in its own `git worktree` on a `task/<id>` branch.
|
|
15
|
+
- Gates are executed by the orchestrator; an agent's self-report is not evidence of success.
|
|
16
|
+
- A task needs independent review before it becomes `done`; merge and push require explicit confirmation by default.
|
|
17
|
+
- Executable configuration is represented as argv arrays. The core never runs TOML-provided shell strings.
|
|
18
|
+
|
|
19
|
+
## Quick start
|
|
20
|
+
|
|
21
|
+
This is currently a local development release and requires Python 3.11 or later:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
cd /path/to/DyroEngineeringFlow
|
|
25
|
+
python3 -m pip install -e .
|
|
26
|
+
|
|
27
|
+
mkdir my-workspace && cd my-workspace
|
|
28
|
+
dyro init . --wizard --name my-workspace
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
The wizard records repository paths, their positions in a development line, and optional Git remotes. If a Profile contains remotes, missing repository anchors can be created safely:
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
dyro --dry-run bootstrap
|
|
35
|
+
dyro bootstrap --yes
|
|
36
|
+
dyro doctor
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
For a new teammate, the normal entry point is one command. It checks the workspace, then selects a development line and local agent:
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
dyro start
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Delivery workflow
|
|
46
|
+
|
|
47
|
+
Use explicit commands when scripting or leading a release:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
dyro doctor
|
|
51
|
+
dyro line create release-2026-10 --base origin/main --yes
|
|
52
|
+
dyro open release-2026-10 --agent codex
|
|
53
|
+
dyro task create API-101 --title "Implement API contract" --line release-2026-10 --repository api
|
|
54
|
+
dyro task next
|
|
55
|
+
dyro task next --run --yes
|
|
56
|
+
dyro task review API-101
|
|
57
|
+
dyro task merge API-101 --yes
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
A production hotfix must state its verified production base; it never inherits a default branch implicitly:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
dyro hotfix create incident-123 --base v2026.09.7 --repos api,web --yes
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Every write-capable operation has a planning mode:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
dyro --dry-run line create release-2026-10 --base origin/main
|
|
70
|
+
dyro --dry-run task run API-101
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Command map
|
|
74
|
+
|
|
75
|
+
| Command | Purpose |
|
|
76
|
+
| --- | --- |
|
|
77
|
+
| `init --wizard` / `bootstrap` / `start` | Onboard a teammate, restore missing repository anchors, and choose a line and agent. |
|
|
78
|
+
| `doctor` / `status` | Validate and display control-plane state. |
|
|
79
|
+
| `line create/list` | Create, register, and inspect feature development lines. |
|
|
80
|
+
| `hotfix create` | Create a hotfix line from an explicit production base. |
|
|
81
|
+
| `agent list` / `open` | Inspect adapters or open an agent in the correct development line. |
|
|
82
|
+
| `task create/list/board/status/next` | Manage task manifests, the state machine, and the next actionable task. |
|
|
83
|
+
| `task run/answer/gates/review` | Run tasks, resolve questions, execute gates, and request independent review. |
|
|
84
|
+
| `task merge` | Merge a reviewed task branch into its owning development line. |
|
|
85
|
+
| `task loop/daemon/stats/decisions` | Run controlled batches, scheduling, ledger reporting, and decision gates. |
|
|
86
|
+
|
|
87
|
+
See the [architecture and Profile contract](docs/architecture.md) and the [Huiyichu migration guide](docs/migration-huiyichu.md) for implementation detail.
|
|
88
|
+
|
|
89
|
+
## Languages and documentation
|
|
90
|
+
|
|
91
|
+
This README is maintained in English, Simplified Chinese, Japanese, Korean, and Spanish. Commands, configuration keys, directory names, and safety rules are deliberately identical across translations. The current CLI messages and extended technical guides are primarily Chinese; multilingual README support does not claim that the runtime has language switching yet.
|
|
92
|
+
|
|
93
|
+
## Current boundaries
|
|
94
|
+
|
|
95
|
+
DyroEngineeringFlow provides a complete local workflow loop. It does not create remote repositories, ship SaaS credentials, or enable automatic push. Automatic merge requires permission in both the task manifest and local policy. It is available under the [MIT License](LICENSE). PyPI Trusted Publishing is prepared, but `dyro` is not published to PyPI yet; the PyPI pending publisher, GitHub `pypi` Environment, and first GitHub Release must still be configured. Package-name, trademark, cross-platform adapter, and real external-project pilot validation remain required before public release.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77.0.3"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "dyro"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "DyroEngineeringFlow: local-first automation and delivery control for multi-repository teams"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.11"
|
|
11
|
+
authors = [{ name = "DandreYang" }]
|
|
12
|
+
license = "MIT"
|
|
13
|
+
license-files = ["LICENSE"]
|
|
14
|
+
keywords = ["agent", "automation", "delivery", "git-worktree", "multi-repository"]
|
|
15
|
+
classifiers = [
|
|
16
|
+
"Development Status :: 2 - Pre-Alpha",
|
|
17
|
+
"Environment :: Console",
|
|
18
|
+
"Programming Language :: Python :: 3",
|
|
19
|
+
"Programming Language :: Python :: 3.11",
|
|
20
|
+
"Programming Language :: Python :: 3.12",
|
|
21
|
+
]
|
|
22
|
+
|
|
23
|
+
[project.urls]
|
|
24
|
+
Homepage = "https://github.com/DandreYang/DyroEngineeringFlow"
|
|
25
|
+
Repository = "https://github.com/DandreYang/DyroEngineeringFlow"
|
|
26
|
+
Issues = "https://github.com/DandreYang/DyroEngineeringFlow/issues"
|
|
27
|
+
Changelog = "https://github.com/DandreYang/DyroEngineeringFlow/blob/main/CHANGELOG.md"
|
|
28
|
+
|
|
29
|
+
[project.scripts]
|
|
30
|
+
dyro = "dyro.cli:main"
|
|
31
|
+
|
|
32
|
+
[tool.setuptools]
|
|
33
|
+
package-dir = { "" = "src" }
|
|
34
|
+
|
|
35
|
+
[tool.setuptools.packages.find]
|
|
36
|
+
where = ["src"]
|
|
37
|
+
|
|
38
|
+
[tool.unittest]
|
|
39
|
+
start-directory = "tests"
|
dyro-0.1.0/setup.cfg
ADDED