Skip to content

Commit ec3b4a6

Browse files
author
cowork-bot
committed
cowork-bot: merge main into improve/devforge-cli-20260630-v2; resolve conflicts (canonical base: README.md pyproject.toml)
2 parents cdb39a5 + a87618b commit ec3b4a6

6 files changed

Lines changed: 174 additions & 169 deletions

File tree

AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
DevForge CLI meta-package that installs all 11 developer tools in one command. Provides a unified `devforge` CLI entry point delegating to sub-tools: api-contract-guardian, json2sql, deploydiff, configdrift, apighost, apiauth, envault, schemaforge, click-to-mcp, and deadcode.
55

66
## Build & Test Commands
7-
- Install: `pip install -e .[all]` or `pip install devforge`
8-
- Install all tools: `pip install devforge[all]`
7+
- Install: `pip install -e .[all]` or `pip install devforge-tools`
8+
- Install all tools: `pip install devforge-tools[all]`
99
- Test: `pytest tests/` (or `python -m pytest tests/ -v --tb=short`)
1010
- Lint: `ruff check .`
1111
- Build: `pip install build twine && python -m build && twine check dist/*`

CHANGELOG.md

Lines changed: 42 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,42 @@
1-
# Changelog
2-
3-
All notable changes to Revenue Holdings CLI 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-06-30
9-
10-
### Added
11-
- Python 3.13 to CI test matrix
12-
- Formatting check step in CI workflow
13-
- `format-check` Makefile target
14-
15-
### Changed
16-
- Makefile lint/format targets scoped to `src/ tests/` instead of entire repo
17-
18-
## [0.2.0] - 2026-05-17
19-
20-
### Added
21-
- Support for all 10 CLI tools (previously only 4)
22-
- New tool subcommands: ghost, auth, envault, schema, mcp, deadcode
23-
- CI/CD workflows for testing and PyPI publishing
24-
- Comprehensive .gitignore
25-
26-
### Changed
27-
- Updated tool registry to include all 10 tools
28-
- Made revenueholdings-license an optional dependency
29-
- Standardized pyproject.toml across all repos
30-
31-
## [0.1.0] - 2026-05-14
32-
33-
### Added
34-
- Initial release with 4 tools: guard, sql, deploy, drift
35-
- Unified `rh` CLI entry point
36-
- Tool dispatching via subprocess
1+
# Changelog
2+
3+
All notable changes to Revenue Holdings CLI 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.4.0] - 2026-06-30
9+
10+
### Changed
11+
- Renamed PyPI package from `devforge` to `devforge-tools` (name `devforge` was squatted on PyPI)
12+
- Updated all URLs, badges, and references to point to `devforge-tools`
13+
14+
## [0.3.0] - 2026-06-30
15+
16+
### Added
17+
- Python 3.13 to CI test matrix
18+
- Formatting check step in CI workflow
19+
- `format-check` Makefile target
20+
21+
### Changed
22+
- Makefile lint/format targets scoped to `src/ tests/` instead of entire repo
23+
24+
## [0.2.0] - 2026-05-17
25+
26+
### Added
27+
- Support for all 10 CLI tools (previously only 4)
28+
- New tool subcommands: ghost, auth, envault, schema, mcp, deadcode
29+
- CI/CD workflows for testing and PyPI publishing
30+
- Comprehensive .gitignore
31+
32+
### Changed
33+
- Updated tool registry to include all 10 tools
34+
- Made revenueholdings-license an optional dependency
35+
- Standardized pyproject.toml across all repos
36+
37+
## [0.1.0] - 2026-05-14
38+
39+
### Added
40+
- Initial release with 4 tools: guard, sql, deploy, drift
41+
- Unified `rh` CLI entry point
42+
- Tool dispatching via subprocess

README.md

Lines changed: 118 additions & 118 deletions
Original file line numberDiff line numberDiff line change
@@ -1,118 +1,118 @@
1-
# DevForge CLI
2-
3-
[![GitHub stars](https://img.shields.io/github/stars/Coding-Dev-Tools/devforge?style=social)](https://github.com/Coding-Dev-Tools/devforge/stargazers)
4-
5-
**The `devforge` command — one install, ten developer CLI tools.**
6-
7-
[![PyPI](https://img.shields.io/pypi/v/devforge)](https://pypi.org/project/devforge/)
8-
[![Python Versions](https://img.shields.io/pypi/pyversions/devforge)](https://pypi.org/project/devforge/)
9-
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
10-
11-
Ten production-ready CLI tools for API contracts, SQL generation, infrastructure diffs, config drift, API mocking, key management, env syncing, schema conversion, MCP servers, and dead code removal — in a single package. Install one meta-package and get immediate access to all tools via the unified `devforge` command.
12-
13-
---
14-
15-
[🏠 Landing Page](https://coding-dev-tools.github.io/devforge/) · [📝 Blog](https://coding-dev-tools.github.io/devforge/blog.html) · [🐛 Report a Bug](https://github.com/Coding-Dev-Tools/devforge/issues)
16-
17-
---
18-
19-
## Why the Suite?
20-
21-
Instead of installing ten separate tools and learning ten different CLIs, `pip install devforge[all]` gives you:
22-
23-
- **Single CLI** (`devforge`) to invoke any tool — no context switching
24-
- **Consistent flags, output formats, and help** across all tools
25-
- **Shared configuration** — one install, all tools
26-
27-
## Installation
28-
29-
```bash
30-
# Install everything (recommended)
31-
pip install devforge[all]
32-
33-
# Or install individual tools
34-
pip install devforge[guard] # API Contract Guardian
35-
pip install devforge[sql] # json2sql
36-
pip install devforge[deploy] # DeployDiff
37-
pip install devforge[drift] # ConfigDrift
38-
pip install devforge[ghost] # APIGhost
39-
pip install devforge[auth] # APIAuth
40-
pip install devforge[envault] # Envault
41-
pip install devforge[schema] # SchemaForge
42-
pip install devforge[mcp] # click-to-mcp
43-
pip install devforge[deadcode] # DeadCode
44-
```
45-
46-
## Usage
47-
48-
```bash
49-
devforge --version # Show version info
50-
devforge tools # List all available tools
51-
devforge tools guard # Show details about a specific tool
52-
devforge versions # Show installed tool versions
53-
```
54-
55-
Run any tool directly through `devforge`:
56-
57-
```bash
58-
# API Contract Guardian — detect OpenAPI breaking changes
59-
devforge guard check spec-v1.yaml spec-v2.yaml
60-
61-
# json2sql — convert JSON to SQL INSERT statements
62-
devforge sql convert data.json --dialect postgres
63-
64-
# DeployDiff — preview infrastructure changes with cost estimates
65-
devforge deploy preview plan.json
66-
67-
# ConfigDrift — catch config drift between environments
68-
devforge drift check dev.yaml prod.yaml
69-
70-
# APIGhost — spawn mock API server from OpenAPI spec
71-
devforge ghost serve openapi.yaml
72-
73-
# APIAuth — generate API keys and JWTs
74-
devforge auth generate --type api-key
75-
76-
# Envault — sync .env files across environments
77-
devforge envault diff .env.dev .env.prod
78-
79-
# SchemaForge — convert between ORM formats
80-
devforge schema convert schema.prisma --to drizzle
81-
82-
# click-to-mcp — wrap CLI as MCP server
83-
devforge mcp wrap my-cli --transport http
84-
85-
# DeadCode — find unused exports in React/Next.js
86-
devforge deadcode scan src/
87-
```
88-
89-
## Tools
90-
91-
| Command | Package | Description |
92-
|---------|---------|-------------|
93-
| `guard` | api-contract-guardian | Detect breaking API changes, generate migration guides, gate CI pipelines on contract violations |
94-
| `sql` | json2sql | Convert JSON datasets to SQL with smart type inference across PostgreSQL, MySQL, and SQLite |
95-
| `deploy` | deploydiff | Preview infra changes with cost estimates and automatic rollback commands for Terraform, CloudFormation, and Pulumi |
96-
| `drift` | configdrift | Compare configs across environments, flag missing keys, deprecated values, and compliance violations |
97-
| `ghost` | apighost | Mock API server from OpenAPI specs with VCR cassette recording and realistic fake data |
98-
| `auth` | apiauth | API key and JWT lifecycle management with AES-256-GCM encrypted local store |
99-
| `envault` | envault | Env variable syncing, diffing, and secret rotation with Vault/AWS SSM/Doppler/1Password support |
100-
| `schema` | schemaforge | Bidirectional ORM schema converter — 11 formats with zero-loss roundtripping |
101-
| `mcp` | click-to-mcp | Auto-wrap any Click/typer CLI as an MCP server — zero code changes |
102-
| `deadcode` | deadcode | Detect unused exports, dead routes, orphaned CSS in TypeScript/React/Next.js projects |
103-
104-
## Links
105-
106-
- [Landing Page](https://coding-dev-tools.github.io/devforge/)
107-
- [GitHub Organization](https://github.com/Coding-Dev-Tools)
108-
- [Report an Issue](https://github.com/Coding-Dev-Tools/devforge/issues)
109-
110-
## License
111-
112-
MIT — see [LICENSE](LICENSE) for details.
113-
114-
## Test
115-
116-
```bash
117-
pytest -q
118-
```
1+
# DevForge Tools CLI
2+
3+
[![GitHub stars](https://img.shields.io/github/stars/Coding-Dev-Tools/devforge-tools?style=social)](https://github.com/Coding-Dev-Tools/devforge-tools/stargazers)
4+
5+
**The `devforge` command — one install, ten developer CLI tools.**
6+
7+
[![PyPI](https://img.shields.io/pypi/v/devforge-tools)](https://pypi.org/project/devforge-tools/)
8+
[![Python Versions](https://img.shields.io/pypi/pyversions/devforge-tools)](https://pypi.org/project/devforge-tools/)
9+
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
10+
11+
Ten production-ready CLI tools for API contracts, SQL generation, infrastructure diffs, config drift, API mocking, key management, env syncing, schema conversion, MCP servers, and dead code removal — in a single package. Install one meta-package and get immediate access to all tools via the unified `devforge` command.
12+
13+
---
14+
15+
[🏠 Landing Page](https://coding-dev-tools.github.io/devforge-tools/) · [📝 Blog](https://coding-dev-tools.github.io/devforge-tools/blog.html) · [🐛 Report a Bug](https://github.com/Coding-Dev-Tools/devforge-tools/issues)
16+
17+
---
18+
19+
## Why the Suite?
20+
21+
Instead of installing ten separate tools and learning ten different CLIs, `pip install devforge-tools[all]` gives you:
22+
23+
- **Single CLI** (`devforge`) to invoke any tool — no context switching
24+
- **Consistent flags, output formats, and help** across all tools
25+
- **Shared configuration** — one install, all tools
26+
27+
## Installation
28+
29+
```bash
30+
# Install everything (recommended)
31+
pip install devforge-tools[all]
32+
33+
# Or install individual tools
34+
pip install devforge-tools[guard] # API Contract Guardian
35+
pip install devforge-tools[sql] # json2sql
36+
pip install devforge-tools[deploy] # DeployDiff
37+
pip install devforge-tools[drift] # ConfigDrift
38+
pip install devforge-tools[ghost] # APIGhost
39+
pip install devforge-tools[auth] # APIAuth
40+
pip install devforge-tools[envault] # Envault
41+
pip install devforge-tools[schema] # SchemaForge
42+
pip install devforge-tools[mcp] # click-to-mcp
43+
pip install devforge-tools[deadcode] # DeadCode
44+
```
45+
46+
## Usage
47+
48+
```bash
49+
devforge --version # Show version info
50+
devforge tools # List all available tools
51+
devforge tools guard # Show details about a specific tool
52+
devforge versions # Show installed tool versions
53+
```
54+
55+
Run any tool directly through `devforge`:
56+
57+
```bash
58+
# API Contract Guardian — detect OpenAPI breaking changes
59+
devforge guard check spec-v1.yaml spec-v2.yaml
60+
61+
# json2sql — convert JSON to SQL INSERT statements
62+
devforge sql convert data.json --dialect postgres
63+
64+
# DeployDiff — preview infrastructure changes with cost estimates
65+
devforge deploy preview plan.json
66+
67+
# ConfigDrift — catch config drift between environments
68+
devforge drift check dev.yaml prod.yaml
69+
70+
# APIGhost — spawn mock API server from OpenAPI spec
71+
devforge ghost serve openapi.yaml
72+
73+
# APIAuth — generate API keys and JWTs
74+
devforge auth generate --type api-key
75+
76+
# Envault — sync .env files across environments
77+
devforge envault diff .env.dev .env.prod
78+
79+
# SchemaForge — convert between ORM formats
80+
devforge schema convert schema.prisma --to drizzle
81+
82+
# click-to-mcp — wrap CLI as MCP server
83+
devforge mcp wrap my-cli --transport http
84+
85+
# DeadCode — find unused exports in React/Next.js
86+
devforge deadcode scan src/
87+
```
88+
89+
## Tools
90+
91+
| Command | Package | Description |
92+
|---------|---------|-------------|
93+
| `guard` | api-contract-guardian | Detect breaking API changes, generate migration guides, gate CI pipelines on contract violations |
94+
| `sql` | json2sql | Convert JSON datasets to SQL with smart type inference across PostgreSQL, MySQL, and SQLite |
95+
| `deploy` | deploydiff | Preview infra changes with cost estimates and automatic rollback commands for Terraform, CloudFormation, and Pulumi |
96+
| `drift` | configdrift | Compare configs across environments, flag missing keys, deprecated values, and compliance violations |
97+
| `ghost` | apighost | Mock API server from OpenAPI specs with VCR cassette recording and realistic fake data |
98+
| `auth` | apiauth | API key and JWT lifecycle management with AES-256-GCM encrypted local store |
99+
| `envault` | envault | Env variable syncing, diffing, and secret rotation with Vault/AWS SSM/Doppler/1Password support |
100+
| `schema` | schemaforge | Bidirectional ORM schema converter — 11 formats with zero-loss roundtripping |
101+
| `mcp` | click-to-mcp | Auto-wrap any Click/typer CLI as an MCP server — zero code changes |
102+
| `deadcode` | deadcode | Detect unused exports, dead routes, orphaned CSS in TypeScript/React/Next.js projects |
103+
104+
## Links
105+
106+
- [Landing Page](https://coding-dev-tools.github.io/devforge-tools/)
107+
- [GitHub Organization](https://github.com/Coding-Dev-Tools)
108+
- [Report an Issue](https://github.com/Coding-Dev-Tools/devforge-tools/issues)
109+
110+
## License
111+
112+
MIT — see [LICENSE](LICENSE) for details.
113+
114+
## Test
115+
116+
```bash
117+
pytest -q
118+
```

pyproject.toml

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ requires = ["setuptools>=68.0", "wheel"]
33
build-backend = "setuptools.build_meta"
44

55
[project]
6-
name = "devforge"
7-
version = "0.3.0"
6+
name = "devforge-tools"
7+
version = "0.4.0"
88
description = "Unified CLI for 10 developer tools: API contracts, SQL generation, infra diffs, config drift, API mocking, key management, env syncing, schema conversion, MCP servers, and dead code removal"
99
readme = "README.md"
1010
requires-python = ">=3.10"
1111
license = "MIT"
1212
authors = [{name = "DevForge"}]
13-
keywords = ["devforge", "cli", "devops", "developer-tools", "api-contract", "openapi", "json-to-sql", "infrastructure", "terraform", "cloudformation", "config-drift", "devsecops", "mocking", "api-keys", "env", "schema", "mcp", "dead-code"]
13+
keywords = ["devforge-tools", "devforge", "cli", "devops", "developer-tools", "api-contract", "openapi", "json-to-sql", "infrastructure", "terraform", "cloudformation", "config-drift", "devsecops", "mocking", "api-keys", "env", "schema", "mcp", "dead-code"]
1414
classifiers = [
1515
"Development Status :: 4 - Beta",
1616
"Intended Audience :: Developers",
@@ -26,7 +26,7 @@ dependencies = [
2626
"rich>=13.0.0",
2727
]
2828

29-
# Optional groups — install with: pip install devforge[all]
29+
# Optional groups — install with: pip install devforge-tools[all]
3030
[project.optional-dependencies]
3131
guard = ["api-contract-guardian>=0.1.0"]
3232
sql = ["json2sql>=0.1.0"]
@@ -53,9 +53,9 @@ all = [
5353
dev = ["pytest>=7.0.0", "pyright>=1.1.300"]
5454

5555
[project.urls]
56-
Homepage = "https://github.com/Coding-Dev-Tools/devforge-cli"
57-
Repository = "https://github.com/Coding-Dev-Tools/devforge-cli"
58-
Issues = "https://github.com/Coding-Dev-Tools/devforge-cli/issues"
56+
Homepage = "https://github.com/Coding-Dev-Tools/devforge-tools"
57+
Repository = "https://github.com/Coding-Dev-Tools/devforge-tools"
58+
"Issue Tracker" = "https://github.com/Coding-Dev-Tools/devforge-tools/issues"
5959

6060
[project.scripts]
6161
devforge = "devforge.cli:app"
@@ -66,7 +66,6 @@ where = ["src"]
6666
[tool.pytest.ini_options]
6767
testpaths = ["tests"]
6868
addopts = "-v --tb=short"
69-
pythonpath = ["src"]
7069
[tool.ruff]
7170
target-version = "py310"
7271
line-length = 120

src/devforge/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
"""DevForge — unified CLI for all developer tools."""
22

3-
__version__ = "0.3.0"
3+
__version__ = "0.4.0"
44

55
# Tool registry: name -> (package, description, icon, pricing)
66
TOOLS = {

0 commit comments

Comments
 (0)