From 20d5a62768f97a997db5339b897763d2936d95ef Mon Sep 17 00:00:00 2001 From: Coding-Dev-Tools Date: Fri, 3 Jul 2026 01:48:33 -0400 Subject: [PATCH 1/2] feat: rename PyPI package from devforge to devforge-tools The name 'devforge' was squatted on PyPI. Rename to 'devforge-tools' across all URLs, badges, install instructions, and the changelog. Bump version to 0.4.0. --- CHANGELOG.md | 50 ++++++++++++++++++++++------------------ README.md | 38 +++++++++++++++--------------- pyproject.toml | 12 +++++----- src/devforge/__init__.py | 2 +- src/devforge/cli.py | 6 ++--- 5 files changed, 57 insertions(+), 51 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f32bcb..dbaad11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,26 +1,32 @@ -# Changelog - -All notable changes to Revenue Holdings CLI will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [0.2.0] - 2026-05-17 - -### Added -- Support for all 10 CLI tools (previously only 4) -- New tool subcommands: ghost, auth, envault, schema, mcp, deadcode -- CI/CD workflows for testing and PyPI publishing -- Comprehensive .gitignore +## [0.4.0] - 2026-06-30 ### Changed -- Updated tool registry to include all 10 tools -- Made revenueholdings-license an optional dependency -- Standardized pyproject.toml across all repos - -## [0.1.0] - 2026-05-14 +- Renamed PyPI package from `devforge` to `devforge-tools` (name `devforge` was squatted on PyPI) +- Updated all URLs, badges, and references to point to `devforge-tools` -### Added -- Initial release with 4 tools: guard, sql, deploy, drift -- Unified `rh` CLI entry point +# Changelog + +All notable changes to Revenue Holdings CLI will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [0.2.0] - 2026-05-17 + +### Added +- Support for all 10 CLI tools (previously only 4) +- New tool subcommands: ghost, auth, envault, schema, mcp, deadcode +- CI/CD workflows for testing and PyPI publishing +- Comprehensive .gitignore + +### Changed +- Updated tool registry to include all 10 tools +- Made revenueholdings-license an optional dependency +- Standardized pyproject.toml across all repos + +## [0.1.0] - 2026-05-14 + +### Added +- Initial release with 4 tools: guard, sql, deploy, drift +- Unified `rh` CLI entry point - Tool dispatching via subprocess \ No newline at end of file diff --git a/README.md b/README.md index 07d7178..cc2e2fc 100644 --- a/README.md +++ b/README.md @@ -1,24 +1,24 @@ -# DevForge CLI +# DevForge Tools CLI -[![GitHub stars](https://img.shields.io/github/stars/Coding-Dev-Tools/devforge?style=social)](https://github.com/Coding-Dev-Tools/devforge/stargazers) +[![GitHub stars](https://img.shields.io/github/stars/Coding-Dev-Tools/devforge-tools?style=social)](https://github.com/Coding-Dev-Tools/devforge-tools/stargazers) **The `devforge` command โ€” one install, ten developer CLI tools.** -[![PyPI](https://img.shields.io/pypi/v/devforge)](https://pypi.org/project/devforge/) -[![Python Versions](https://img.shields.io/pypi/pyversions/devforge)](https://pypi.org/project/devforge/) +[![PyPI](https://img.shields.io/pypi/v/devforge-tools)](https://pypi.org/project/devforge-tools/) +[![Python Versions](https://img.shields.io/pypi/pyversions/devforge-tools)](https://pypi.org/project/devforge-tools/) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) 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. --- -[๐Ÿ  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) +[๐Ÿ  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) --- ## Why the Suite? -Instead of installing ten separate tools and learning ten different CLIs, `pip install devforge[all]` gives you: +Instead of installing ten separate tools and learning ten different CLIs, `pip install devforge-tools[all]` gives you: - **Single CLI** (`devforge`) to invoke any tool โ€” no context switching - **Consistent flags, output formats, and help** across all tools @@ -28,19 +28,19 @@ Instead of installing ten separate tools and learning ten different CLIs, `pip i ```bash # Install everything (recommended) -pip install devforge[all] +pip install devforge-tools[all] # Or install individual tools -pip install devforge[guard] # API Contract Guardian -pip install devforge[sql] # json2sql -pip install devforge[deploy] # DeployDiff -pip install devforge[drift] # ConfigDrift -pip install devforge[ghost] # APIGhost -pip install devforge[auth] # APIAuth -pip install devforge[envault] # Envault -pip install devforge[schema] # SchemaForge -pip install devforge[mcp] # click-to-mcp -pip install devforge[deadcode] # DeadCode +pip install devforge-tools[guard] # API Contract Guardian +pip install devforge-tools[sql] # json2sql +pip install devforge-tools[deploy] # DeployDiff +pip install devforge-tools[drift] # ConfigDrift +pip install devforge-tools[ghost] # APIGhost +pip install devforge-tools[auth] # APIAuth +pip install devforge-tools[envault] # Envault +pip install devforge-tools[schema] # SchemaForge +pip install devforge-tools[mcp] # click-to-mcp +pip install devforge-tools[deadcode] # DeadCode ``` ## Usage @@ -103,9 +103,9 @@ devforge deadcode scan src/ ## Links -- [Landing Page](https://coding-dev-tools.github.io/devforge/) +- [Landing Page](https://coding-dev-tools.github.io/devforge-tools/) - [GitHub Organization](https://github.com/Coding-Dev-Tools) -- [Report an Issue](https://github.com/Coding-Dev-Tools/devforge/issues) +- [Report an Issue](https://github.com/Coding-Dev-Tools/devforge-tools/issues) ## License diff --git a/pyproject.toml b/pyproject.toml index c71d209..dec5c9a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,14 +3,14 @@ requires = ["setuptools>=68.0", "wheel"] build-backend = "setuptools.build_meta" [project] -name = "devforge" -version = "0.3.0" +name = "devforge-tools" +version = "0.4.0" 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" readme = "README.md" requires-python = ">=3.10" license = "MIT" authors = [{name = "DevForge"}] -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"] +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"] classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", @@ -52,9 +52,9 @@ all = [ dev = ["pytest>=7.0.0"] [project.urls] -Homepage = "https://github.com/Coding-Dev-Tools/devforge" -Repository = "https://github.com/Coding-Dev-Tools/devforge" -"Issue Tracker" = "https://github.com/Coding-Dev-Tools/devforge/issues" +Homepage = "https://github.com/Coding-Dev-Tools/devforge-tools" +Repository = "https://github.com/Coding-Dev-Tools/devforge-tools" +"Issue Tracker" = "https://github.com/Coding-Dev-Tools/devforge-tools/issues" [project.scripts] devforge = "devforge.cli:app" diff --git a/src/devforge/__init__.py b/src/devforge/__init__.py index 8015df1..f883320 100644 --- a/src/devforge/__init__.py +++ b/src/devforge/__init__.py @@ -1,6 +1,6 @@ """DevForge โ€” unified CLI for all developer tools.""" -__version__ = "0.3.0" +__version__ = "0.4.0" # Tool registry: name -> (package, description, icon, pricing) TOOLS = { diff --git a/src/devforge/cli.py b/src/devforge/cli.py index a999e16..65c2dc8 100644 --- a/src/devforge/cli.py +++ b/src/devforge/cli.py @@ -76,8 +76,8 @@ def list_tools( ) console.print(table) - console.print("\n[dim]Install individually:[/dim] [green]pip install devforge[guard][/green]") - console.print("[dim]Install all:[/dim] [green]pip install devforge[all][/green]") + console.print("\n[dim]Install individually:[/dim] [green]pip install devforge-tools[guard][/green]") + console.print("[dim]Install all:[/dim] [green]pip install devforge-tools[all][/green]") @app.command() @@ -168,7 +168,7 @@ def dispatch( except FileNotFoundError: console.print( f"[red]Tool '{tool_name}' not installed.[/red]\n" - f"Install with: [green]pip install devforge[{tool_name}][/green]" + f"Install with: [green]pip install devforge-tools[{tool_name}][/green]" ) raise typer.Exit(code=1) from None From ef9b86022c62a5a357558e3b79c579a07b586b6f Mon Sep 17 00:00:00 2001 From: Coding-Dev-Tools Date: Fri, 3 Jul 2026 11:39:17 -0400 Subject: [PATCH 2/2] fix: update remaining old devforge references to devforge-tools by reviewer-B --- AGENTS.md | 4 ++-- pyproject.toml | 2 +- src/devforge/cli.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 431d4f1..21b34e9 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -4,8 +4,8 @@ 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. ## Build & Test Commands -- Install: `pip install -e .[all]` or `pip install devforge` -- Install all tools: `pip install devforge[all]` +- Install: `pip install -e .[all]` or `pip install devforge-tools` +- Install all tools: `pip install devforge-tools[all]` - Test: `pytest tests/` (or `python -m pytest tests/ -v --tb=short`) - Lint: `ruff check .` - Build: `pip install build twine && python -m build && twine check dist/*` diff --git a/pyproject.toml b/pyproject.toml index 25803aa..6210959 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ dependencies = [ "rich>=13.0.0", ] -# Optional groups รขโ‚ฌโ€ install with: pip install devforge[all] +# Optional groups โ€” install with: pip install devforge-tools[all] [project.optional-dependencies] guard = ["api-contract-guardian>=0.1.0"] sql = ["json2sql>=0.1.0"] diff --git a/src/devforge/cli.py b/src/devforge/cli.py index fbaf86b..473e4da 100644 --- a/src/devforge/cli.py +++ b/src/devforge/cli.py @@ -96,7 +96,7 @@ def install( console.print(f"Available: {', '.join(TOOLS.keys())}, 'all'") raise typer.Exit(code=1) - pkg = f"devforge[{extras}]" + pkg = f"devforge-tools[{extras}]" console.print(f"[yellow]Installing {pkg}...[/yellow]") try: result = subprocess.run([sys.executable, "-m", "pip", "install", pkg], capture_output=True, text=True)