development-engine-vector 0.3.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.
Files changed (51) hide show
  1. development_engine_vector-0.3.0/.flake8 +5 -0
  2. development_engine_vector-0.3.0/.gitignore +6 -0
  3. development_engine_vector-0.3.0/PKG-INFO +252 -0
  4. development_engine_vector-0.3.0/changelog.md +65 -0
  5. development_engine_vector-0.3.0/contributing.md +174 -0
  6. development_engine_vector-0.3.0/dev/__init__.py +3 -0
  7. development_engine_vector-0.3.0/dev/__main__.py +5 -0
  8. development_engine_vector-0.3.0/dev/cli/__init__.py +0 -0
  9. development_engine_vector-0.3.0/dev/cli/cli.py +674 -0
  10. development_engine_vector-0.3.0/dev/kernel/__init__.py +0 -0
  11. development_engine_vector-0.3.0/dev/kernel/config.py +46 -0
  12. development_engine_vector-0.3.0/dev/kernel/db.py +129 -0
  13. development_engine_vector-0.3.0/dev/kernel/paths.py +85 -0
  14. development_engine_vector-0.3.0/dev/kernel/pmf_kernel.py +432 -0
  15. development_engine_vector-0.3.0/dev/kernel/selfcheck.py +137 -0
  16. development_engine_vector-0.3.0/dev/ui/__init__.py +0 -0
  17. development_engine_vector-0.3.0/dev/ui/actions.py +47 -0
  18. development_engine_vector-0.3.0/dev/ui/db/__init__.py +26 -0
  19. development_engine_vector-0.3.0/dev/ui/db/base.py +75 -0
  20. development_engine_vector-0.3.0/dev/ui/db/checks.py +16 -0
  21. development_engine_vector-0.3.0/dev/ui/db/events.py +18 -0
  22. development_engine_vector-0.3.0/dev/ui/db/health.py +34 -0
  23. development_engine_vector-0.3.0/dev/ui/db/identity.py +12 -0
  24. development_engine_vector-0.3.0/dev/ui/db/manifest.py +35 -0
  25. development_engine_vector-0.3.0/dev/ui/db/overview.py +47 -0
  26. development_engine_vector-0.3.0/dev/ui/db/runs.py +47 -0
  27. development_engine_vector-0.3.0/dev/ui/routes.py +114 -0
  28. development_engine_vector-0.3.0/dev/ui/static/__init__.py +0 -0
  29. development_engine_vector-0.3.0/dev/ui/static/web.css +722 -0
  30. development_engine_vector-0.3.0/dev/ui/static/web.js +528 -0
  31. development_engine_vector-0.3.0/dev/ui/templates.py +231 -0
  32. development_engine_vector-0.3.0/dev/ui/web.py +28 -0
  33. development_engine_vector-0.3.0/dev/utils.py +93 -0
  34. development_engine_vector-0.3.0/dev/vcs/__init__.py +0 -0
  35. development_engine_vector-0.3.0/dev/vcs/git.py +107 -0
  36. development_engine_vector-0.3.0/dev/vcs/github.py +77 -0
  37. development_engine_vector-0.3.0/dev/workflow/__init__.py +0 -0
  38. development_engine_vector-0.3.0/dev/workflow/cda.py +143 -0
  39. development_engine_vector-0.3.0/dev/workflow/changelog.py +102 -0
  40. development_engine_vector-0.3.0/dev/workflow/preflight.py +307 -0
  41. development_engine_vector-0.3.0/dev/workflow/release.py +217 -0
  42. development_engine_vector-0.3.0/dev/workflow/versioning.py +87 -0
  43. development_engine_vector-0.3.0/dev-cli.toml.example +19 -0
  44. development_engine_vector-0.3.0/docs/architecture.md +192 -0
  45. development_engine_vector-0.3.0/license +21 -0
  46. development_engine_vector-0.3.0/pyproject.toml +22 -0
  47. development_engine_vector-0.3.0/readme.md +241 -0
  48. development_engine_vector-0.3.0/tests/__init__.py +0 -0
  49. development_engine_vector-0.3.0/tests/test_cda_preflight.py +231 -0
  50. development_engine_vector-0.3.0/tests/test_dev_cli.py +125 -0
  51. development_engine_vector-0.3.0/version +1 -0
@@ -0,0 +1,5 @@
1
+ [flake8]
2
+ max-line-length = 150
3
+ extend-ignore = E203
4
+ per-file-ignores =
5
+ dev/ui/templates.py: E501
@@ -0,0 +1,6 @@
1
+ .DS_Store
2
+ dist/
3
+ *.egg-info/
4
+ __pycache__/
5
+ *.pyc
6
+ build/
@@ -0,0 +1,252 @@
1
+ Metadata-Version: 2.4
2
+ Name: development-engine-vector
3
+ Version: 0.3.0
4
+ Summary: Development Engine Vector — internal developer workflow CLI.
5
+ Author-email: Ernie Butcher <ernie@fiosii.com>
6
+ License-Expression: MIT
7
+ Requires-Python: >=3.8
8
+ Requires-Dist: click>=8.1
9
+ Requires-Dist: tomli>=2.0
10
+ Description-Content-Type: text/markdown
11
+
12
+ # Development Engine Vector
13
+
14
+ [![Python Version](https://img.shields.io/badge/python-3.9%2B-blue.svg)](https://www.python.org/downloads/)
15
+ [![PyPI](https://img.shields.io/pypi/v/dev-cli.svg)](https://pypi.org/project/dev-cli)
16
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
17
+
18
+ **Development Engine Vector** (`dev`) is the developer workflow coordination CLI for goCosmix systems. It provides a consistent, scriptable interface for preflight checks, version management, changelog automation, release orchestration, and git/GitHub operations — usable across every system in the federation.
19
+
20
+ `dev` is designed to be pointed at any goCosmix project directory and immediately useful: it reads project config, validates state, manages versions, and drives releases — without knowing anything specific about what the project does.
21
+
22
+ ## ✨ Key Capabilities
23
+
24
+ - **Preflight checks**: version file, changelog entry, git state, dirty tree, sensitive files, pyproject sync
25
+ - **CDA-aware preflight**: extended checks for vscode-ark-specific pipeline and daemon health
26
+ - **Version management**: read, bump (major/minor/patch), sync to `pyproject.toml` and all tracked files
27
+ - **Changelog automation**: structured CHANGELOG management with version section creation and entry validation
28
+ - **Release orchestration**: full release workflow — preflight → version sync → build → git tag → publish
29
+ - **Project bootstrap**: install editable package, requirements, and dev dependencies in one command
30
+ - **Git/GitHub ops**: ensure remotes, create GitHub repos via API, push branches
31
+ - **Self-check**: engine health validation — install path, DB state, tool dependencies, version consistency
32
+ - **Config-driven**: per-project `.dev-cli.toml` for default bump level, skip flags, dry-run mode
33
+
34
+ ## 📋 Table of Contents
35
+
36
+ - [Installation](#installation)
37
+ - [Quick Start](#quick-start)
38
+ - [CLI Reference](#cli-reference)
39
+ - [Configuration](#configuration)
40
+ - [Architecture](#architecture)
41
+ - [Development](#development)
42
+ - [Contributing](#contributing)
43
+ - [License](#license)
44
+
45
+ ## 🚀 Installation
46
+
47
+ ### Prerequisites
48
+
49
+ - Python 3.9+
50
+
51
+ ### Install from PyPI
52
+
53
+ ```bash
54
+ pip install dev-cli
55
+ ```
56
+
57
+ > **macOS / system Python note**: pip installs the `dev` binary to `~/Library/Python/3.x/bin/` which may not be on `PATH` by default.
58
+ >
59
+ > ```bash
60
+ > export PATH="$HOME/Library/Python/3.9/bin:$PATH"
61
+ > ```
62
+ >
63
+ > Add this line to `~/.zprofile` for persistence.
64
+
65
+ ### Install from source
66
+
67
+ ```bash
68
+ git clone https://github.com/goCosmix/dev.git
69
+ cd dev/source
70
+ pip install -e .
71
+ ```
72
+
73
+ ### Install development dependencies
74
+
75
+ ```bash
76
+ pip install -e ".[dev]"
77
+ ```
78
+
79
+ ## ⚡ Quick Start
80
+
81
+ ```bash
82
+ pip install dev-cli
83
+ export PATH="$HOME/Library/Python/3.9/bin:$PATH"
84
+
85
+ # Point at any goCosmix project
86
+ dev pf --project /Volumes/intel/systems/cda/source # preflight check
87
+ dev version show --project /Volumes/intel/systems/cda/source
88
+ dev release --project /Volumes/intel/systems/cda/source --dry-run
89
+ ```
90
+
91
+ ## 🔧 CLI Reference
92
+
93
+ ### `dev pf` / `dev preflight`
94
+
95
+ Run pre-release preflight checks for a project.
96
+
97
+ ```bash
98
+ dev pf --project <path> # standard checks
99
+ dev pf --project <path> --full # full check set (includes CDA-specific)
100
+ dev pf --project <path> --report report.json
101
+ ```
102
+
103
+ Checks run: version file, changelog entry, git state (clean tree, committed), sensitive file exposure, pyproject.toml version sync.
104
+
105
+ ### `dev version`
106
+
107
+ ```bash
108
+ dev version show --project <path> # print current version
109
+ dev version bump --project <path> --level patch # bump major/minor/patch
110
+ dev version sync --project <path> # sync version → pyproject.toml
111
+ ```
112
+
113
+ ### `dev release`
114
+
115
+ Full release workflow: preflight → version bump → sync → build → git tag → publish.
116
+
117
+ ```bash
118
+ dev release --project <path>
119
+ dev release --project <path> --bump minor
120
+ dev release --project <path> --version 2.1.0
121
+ dev release --project <path> --skip-publish # build + tag, don't push to PyPI
122
+ dev release --project <path> --dry-run # simulate, no writes
123
+ ```
124
+
125
+ ### `dev build`
126
+
127
+ Build source and wheel distributions.
128
+
129
+ ```bash
130
+ dev build --project <path>
131
+ ```
132
+
133
+ ### `dev sync`
134
+
135
+ Bootstrap or re-sync project dependencies.
136
+
137
+ ```bash
138
+ dev sync --project <path>
139
+ dev sync --project <path> --install-dev # also install dev dependencies
140
+ dev sync --project <path> --no-install-editable # skip editable install
141
+ ```
142
+
143
+ ### `dev check`
144
+
145
+ Project health checks: compile validation, lint, optional pytest.
146
+
147
+ ```bash
148
+ dev check --project <path>
149
+ dev check --project <path> --tests # include pytest
150
+ dev check --project <path> --lint # include flake8
151
+ dev check --project <path> --compile # Python compile check
152
+ ```
153
+
154
+ ### `dev selfcheck`
155
+
156
+ Engine self-diagnostics — validates the `dev` installation itself.
157
+
158
+ ```bash
159
+ dev selfcheck
160
+ ```
161
+
162
+ Checks: version consistency, install path, DB state, required tools on PATH, Python dependencies.
163
+
164
+ ### `dev config`
165
+
166
+ ```bash
167
+ dev config show --project <path> # display active config and resolved settings
168
+ ```
169
+
170
+ ## ⚙️ Configuration
171
+
172
+ Add a `.dev-cli.toml` or `dev-cli.toml` at any project root:
173
+
174
+ ```toml
175
+ [release]
176
+ default_bump = "minor"
177
+ skip_build = false
178
+ skip_publish = false
179
+ dry_run = false
180
+
181
+ [bootstrap]
182
+ install_editable = true
183
+ install_dependencies = true
184
+ install_dev_dependencies = false
185
+
186
+ [check]
187
+ compile = true
188
+ tests = false
189
+ lint = false
190
+ ```
191
+
192
+ Override the config file path at runtime:
193
+
194
+ ```bash
195
+ dev --config ./custom.dev-cli.toml release --project /Volumes/intel/systems/cda/source
196
+ ```
197
+
198
+ ## 🏗 Architecture
199
+
200
+ `dev` is organized into four layers:
201
+
202
+ ```
203
+ dev/
204
+ ├── kernel/ — runtime foundation (paths, DB, config, self-check)
205
+ ├── workflow/ — business logic (versioning, changelog, preflight, release)
206
+ ├── vcs/ — version control ops (git, GitHub API)
207
+ └── cli/ — thin click wrappers
208
+ ```
209
+
210
+ See [docs/architecture.md](docs/architecture.md) for the full design.
211
+
212
+ ## 🛠 Development
213
+
214
+ ```bash
215
+ cd /Volumes/intel/systems/dev/source
216
+ pip install -e .
217
+ export PATH="$HOME/Library/Python/3.9/bin:$PATH"
218
+
219
+ # Run checks
220
+ python3 -m flake8 dev/
221
+ python3 -m mypy dev/
222
+ python3 -m pytest tests/ -q
223
+
224
+ # Or via the control plane
225
+ python3 ../control/scripts/vet.py
226
+ python3 ../control/cli.py health
227
+ ```
228
+
229
+ ### Control plane
230
+
231
+ ```bash
232
+ python3 control/cli.py --help
233
+
234
+ dev-control status # version, paths, DB state
235
+ dev-control vet # run lint + typecheck + tests, write history to DB
236
+ dev-control health # show vet run history
237
+ dev-control health --checks # list defined check definitions
238
+ dev-control push # build + publish to PyPI
239
+ dev-control seed # re-seed control.db
240
+ dev-control selfcheck # engine self-diagnostics
241
+ dev-control runs # show run history from dev.db
242
+ dev-control projects # show registered projects
243
+ dev-control manifest # query file manifest from control.db
244
+ ```
245
+
246
+ ## 🤝 Contributing
247
+
248
+ See [contributing.md](contributing.md).
249
+
250
+ ## 📄 License
251
+
252
+ MIT — see [license](license).
@@ -0,0 +1,65 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.3.0] - 2026-05-12
9
+
10
+ ### Added
11
+ - **Embedded web UI** — full WSGI dashboard on port 9001 (`dev ui start/stop/status/restart`)
12
+ - Pages: dashboard, runs, health, checks, manifest, identity, events, query
13
+ - Sidebar navigation with indigo accent theme; run detail drawer with 3 tabs (Overview, Output, Raw)
14
+ - Pure Python — zero npm, zero build step; CSS + JS bundled as Python string constants
15
+ - **PMF kernel** (`dev/kernel/pmf_kernel.py`) — embedded process manager for background services
16
+ - `PMFKernel` class: start/stop/restart/status/tail_log with PID file tracking
17
+ - launchd integration: `install_launchd()` / `uninstall_launchd()` write `com.gocosmix.dev.plist` to `~/Library/LaunchAgents/`
18
+ - `wait_for_port_and_open_browser()` — polls server before opening browser
19
+ - **`dev pmf` command group** — `services`, `status`, `start`, `stop`, `restart`, `logs`, `up`, `install`, `uninstall`
20
+ - **`dev setup`** — full onboarding: init dirs → pmf install → ui up → open browser
21
+ - **Self-provisioning** — `ensure_dirs()` fires on any real CLI command; no manual dir creation needed
22
+ - **`tools/dev` home** — DEV_HOME moved to `~/Library/goCosmix/tools/dev` (tools tier, not apps)
23
+ - **New runtime paths** in `paths.py`: `RUN_DIR`, `PMF_DIR`, `PMF_LOG_DIR`, `RUNTIME_FILE`, `UI_PID_FILE`, `DEFAULT_PORT`
24
+
25
+ ### Changed
26
+ - Port changed from 10002 → **9001** (tools namespace; 9000 reserved for future tool orchestrator)
27
+ - `--version` now reads from package metadata dynamically
28
+ - `.flake8`: added `per-file-ignores` to allow long lines in `dev/ui/templates.py`
29
+
30
+ ## [0.2.1] - 2026-05-11
31
+
32
+ ### Fixed
33
+ - **`check_sensitive_files`** — now uses `git check-ignore` to verify `.env` is gitignored rather than failing on existence alone; eliminates false-positive preflight failures on projects that correctly ignore `.env`
34
+
35
+ ## [0.2.0] - 2026-05-11
36
+
37
+ ### Added
38
+ - **`create_github_repo()`** — GitHub API repo creation via personal access token loaded from `audit-engine/.env`
39
+ - **`GitOps.ensure_remote()`** — creates GitHub repo and adds `origin` remote if not already configured
40
+ - **`GitOps.push_main()`** — `set_upstream` flag enables `-u origin main` on first push
41
+ - **`_load_github_token()` / `_github_api()`** — shared GitHub API primitives with token-from-env loading
42
+ - **Updated `push_repos.py`** — full 10-repo list with auto-create-remote logic and CLI arg filtering
43
+
44
+ ## [0.1.0] - 2026-05-10
45
+
46
+ ### Added
47
+ - Initial release of the Development Engine Vector (`dev-cli`)
48
+ - **4-layer engine architecture**: `kernel/` (paths, DB, config, selfcheck) + `workflow/` (versioning, changelog, preflight, release) + `vcs/` (git, github) + `cli/` (click interface)
49
+ - **`dev pf`** / **`dev preflight`** — pre-release preflight checks: version file, changelog entry, git state, sensitive file exposure, pyproject.toml version sync
50
+ - **`dev version show/bump/sync`** — version management with sync to `pyproject.toml` and tracked files
51
+ - **`dev release`** — full release orchestration: preflight → version sync → build → tag → publish; supports `--bump`, `--version`, `--skip-build`, `--skip-publish`, `--dry-run`
52
+ - **`dev build`** — source and wheel distribution build via `python -m build`
53
+ - **`dev sync`** — project bootstrap: editable install, requirements, dev dependencies
54
+ - **`dev check`** — project health: compile validation, optional lint and pytest
55
+ - **`dev selfcheck`** — engine self-diagnostics: version, install path, DB state, tool dependencies
56
+ - **`dev config show`** — display active config and resolved settings
57
+ - **`CdaPreflightModule`** — extended preflight checks for vscode-ark: pipeline stage validation, watcher state, daemon health, queue depth
58
+ - **`DevConfig`** — TOML-based per-project config (`.dev-cli.toml` / `dev-cli.toml`); falls back gracefully if absent
59
+ - **`VersionManager`** — reads/writes `version` file; bumps semver; syncs to `pyproject.toml`
60
+ - **`ChangelogManager`** — reads, adds version sections, validates changelog entries
61
+ - **`ReleaseOrchestrator`** — coordinates all release steps; records runs to `dev.db`
62
+ - **`GitOps`** — git status, dirty check, tag, push, remote management
63
+ - **`kernel.db`** — WAL-mode SQLite runtime DB: `runs` and `projects` tables
64
+ - **`kernel.paths`** — `DEV_HOME` = `~/Library/goCosmix/apps/dev`; canonical path constants
65
+ - **3-layer repo layout**: `source/` (tracked code) + `local/` (runtime state) + `control/` (management artifacts)
@@ -0,0 +1,174 @@
1
+ # Contributing to Development Engine Vector
2
+
3
+ We welcome contributions. This document provides guidelines for working on `dev-cli`.
4
+
5
+ ## Code of Conduct
6
+
7
+ - Be respectful and constructive
8
+ - Focus on ideas, not personal criticism
9
+ - Support others in the community
10
+
11
+ ## Getting Started
12
+
13
+ ### Clone and setup
14
+
15
+ ```bash
16
+ git clone https://github.com/goCosmix/dev.git
17
+ cd dev/source
18
+ ```
19
+
20
+ ### Setup development environment
21
+
22
+ ```bash
23
+ pip install -e ".[dev]"
24
+ export PATH="$HOME/Library/Python/3.9/bin:$PATH"
25
+ ```
26
+
27
+ ### Create a feature branch
28
+
29
+ ```bash
30
+ git checkout -b feature/your-feature-name
31
+ ```
32
+
33
+ ## Development Workflow
34
+
35
+ ### Making changes
36
+
37
+ 1. Make changes in your feature branch
38
+ 2. Add or update tests for new functionality
39
+ 3. Ensure all checks pass: `python3 ../control/scripts/vet.py`
40
+ 4. Run lint: `python3 -m flake8 dev/`
41
+ 5. Run type check: `python3 -m mypy dev/`
42
+
43
+ ### Writing tests
44
+
45
+ - Place tests in `tests/` directory
46
+ - Use descriptive names: `test_<feature>_<scenario>()`
47
+ - Mock external dependencies (subprocess, filesystem)
48
+
49
+ Example:
50
+
51
+ ```python
52
+ def test_version_bump_increments_patch():
53
+ """Test that patch bump increments the third semver segment."""
54
+ vm = VersionManager(tmp_project_dir)
55
+ vm.write("1.2.3")
56
+ new_version = vm.bump("patch")
57
+ assert new_version == "1.2.4"
58
+ ```
59
+
60
+ ### Code style
61
+
62
+ - Follow PEP 8; max line length 150 (see `.flake8`)
63
+ - Use `Optional[X]` from `typing` — project targets Python 3.9
64
+ - Use meaningful variable names
65
+ - No docstrings required on private helpers
66
+
67
+ ## Commit guidelines
68
+
69
+ - Use present tense: "Add feature" not "Added feature"
70
+ - Keep commits focused and atomic
71
+ - Reference issues when relevant: "Fix #42"
72
+
73
+ ## Pull request process
74
+
75
+ 1. **Update CHANGELOG** — add entry under the new version section
76
+ 2. **Add tests** — new functionality needs test coverage
77
+ 3. **Run vet** — `python3 control/scripts/vet.py` must exit 0
78
+ 4. **Create PR** — clear description of what changed and why
79
+ 5. **Respond to reviews** — address feedback promptly
80
+
81
+ ## Project structure
82
+
83
+ ```
84
+ dev/
85
+ ├── .gitignore
86
+ ├── source/ # all tracked code lives here
87
+ │ ├── dev/ # Python package
88
+ │ │ ├── kernel/ # runtime foundation
89
+ │ │ │ ├── paths.py # DEV_HOME, path constants
90
+ │ │ │ ├── db.py # WAL SQLite — runs + projects
91
+ │ │ │ ├── config.py # DevConfig — reads .dev-cli.toml
92
+ │ │ │ └── selfcheck.py # engine self-diagnostics
93
+ │ │ ├── workflow/ # business logic
94
+ │ │ │ ├── versioning.py
95
+ │ │ │ ├── changelog.py
96
+ │ │ │ ├── preflight.py
97
+ │ │ │ ├── cda.py # CDA-specific preflight module
98
+ │ │ │ └── release.py
99
+ │ │ ├── vcs/ # version control
100
+ │ │ │ ├── git.py
101
+ │ │ │ └── github.py
102
+ │ │ └── cli/
103
+ │ │ └── cli.py # click entry point
104
+ │ ├── tests/
105
+ │ ├── docs/
106
+ │ ├── pyproject.toml
107
+ │ ├── changelog.md
108
+ │ ├── readme.md
109
+ │ └── version
110
+ ├── local/ # runtime state (gitignored)
111
+ │ ├── data/ # dev.db lives at ~/Library/goCosmix/apps/dev/
112
+ │ └── logs/
113
+ └── control/ # management artifacts (gitignored)
114
+ ├── cli.py # dev-control CLI
115
+ ├── ops.py # reusable status helpers
116
+ ├── data/ # control.db
117
+ ├── scripts/ # seed.py, vet.py, push.py
118
+ ├── audit/ # audit engine output JSONs
119
+ └── docs/ # control system documentation
120
+ ```
121
+
122
+ ## Key components
123
+
124
+ ### CLI (`dev/cli/cli.py`)
125
+ Thin click wrappers. All logic delegates to `workflow/` and `vcs/` modules.
126
+
127
+ ### Kernel (`dev/kernel/`)
128
+ - `paths.py` — canonical path constants; `DEV_HOME = ~/Library/goCosmix/apps/dev`
129
+ - `db.py` — WAL SQLite; `record_run`, `finish_run`, `upsert_project`, `get_recent_runs`
130
+ - `config.py` — loads `.dev-cli.toml` / `dev-cli.toml` from project root
131
+ - `selfcheck.py` — five checks: version, install path, DB, tools, dependencies
132
+
133
+ ### Workflow (`dev/workflow/`)
134
+ - `versioning.py` — `VersionManager`: read, write, bump semver, sync to files
135
+ - `changelog.py` — `ChangelogManager`: add version section, verify entry exists
136
+ - `preflight.py` — `PreflightChecks`: runs all checks, generates optional JSON report
137
+ - `cda.py` — `CdaPreflightModule`: CDA pipeline and daemon-specific checks
138
+ - `release.py` — `ReleaseOrchestrator`: full release workflow, records runs to DB
139
+
140
+ ### VCS (`dev/vcs/`)
141
+ - `git.py` — `GitOps`: status, dirty check, commit, tag, push, ensure remote
142
+ - `github.py` — token-based GitHub API: create repo, manage remotes
143
+
144
+ ## Testing strategy
145
+
146
+ ```bash
147
+ # Run all tests
148
+ python3 -m pytest tests/ -q
149
+
150
+ # Run with coverage
151
+ python3 -m pytest tests/ --cov=dev
152
+
153
+ # Run specific test
154
+ python3 -m pytest tests/test_dev_cli.py::test_version_bump -v
155
+ ```
156
+
157
+ ## Release process
158
+
159
+ 1. Set version: `dev version bump --level patch --project .`
160
+ 2. Update `changelog.md` with release notes
161
+ 3. Run vet: `python3 control/scripts/vet.py`
162
+ 4. Release: `dev release --project . --dry-run` → then without `--dry-run`
163
+ 5. Or via control plane: `python3 control/scripts/push.py`
164
+
165
+ ## Additional resources
166
+
167
+ - [Python Style Guide (PEP 8)](https://www.python.org/dev/peps/pep-0008/)
168
+ - [Click Documentation](https://click.palletsprojects.com/)
169
+ - [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
170
+ - [Semantic Versioning](https://semver.org/)
171
+
172
+ ---
173
+
174
+ Thank you for contributing to the Development Engine Vector.
@@ -0,0 +1,3 @@
1
+ """dev — Development Engine Vector."""
2
+
3
+ __version__ = "0.3.0"
@@ -0,0 +1,5 @@
1
+ """Allow `python -m dev` execution."""
2
+ from dev.cli.cli import cli
3
+
4
+ if __name__ == "__main__":
5
+ cli()
File without changes