Skip to content

Commit a87618b

Browse files
feat: rename PyPI package from devforge to devforge-tools (#10)
* 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. * fix: update remaining old devforge references to devforge-tools by reviewer-B
1 parent d2e13af commit a87618b

6 files changed

Lines changed: 75 additions & 69 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: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
# DevForge CLI
1+
# DevForge Tools CLI
22

3-
[![GitHub stars](https://img.shields.io/github/stars/Coding-Dev-Tools/devforge?style=social)](https://github.com/Coding-Dev-Tools/devforge/stargazers)
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)
44

55
**The `devforge` command — one install, ten developer CLI tools.**
66

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/)
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/)
99
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
1010

1111
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.
1212

1313
---
1414

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)
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)
1616

1717
---
1818

1919
## Why the Suite?
2020

21-
Instead of installing ten separate tools and learning ten different CLIs, `pip install devforge[all]` gives you:
21+
Instead of installing ten separate tools and learning ten different CLIs, `pip install devforge-tools[all]` gives you:
2222

2323
- **Single CLI** (`devforge`) to invoke any tool — no context switching
2424
- **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
2828

2929
```bash
3030
# Install everything (recommended)
31-
pip install devforge[all]
31+
pip install devforge-tools[all]
3232

3333
# 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
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
4444
```
4545

4646
## Usage
@@ -103,9 +103,9 @@ devforge deadcode scan src/
103103

104104
## Links
105105

106-
- [Landing Page](https://coding-dev-tools.github.io/devforge/)
106+
- [Landing Page](https://coding-dev-tools.github.io/devforge-tools/)
107107
- [GitHub Organization](https://github.com/Coding-Dev-Tools)
108-
- [Report an Issue](https://github.com/Coding-Dev-Tools/devforge/issues)
108+
- [Report an Issue](https://github.com/Coding-Dev-Tools/devforge-tools/issues)
109109

110110
## License
111111

pyproject.toml

Lines changed: 7 additions & 7 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"
57-
Repository = "https://github.com/Coding-Dev-Tools/devforge"
58-
Issues = "https://github.com/Coding-Dev-Tools/devforge/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"

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 = {

src/devforge/cli.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,8 @@ def list_tools(
7676
)
7777

7878
console.print(table)
79-
console.print("\n[dim]Install individually:[/dim] [green]pip install devforge[guard][/green]")
80-
console.print("[dim]Install all:[/dim] [green]pip install devforge[all][/green]")
79+
console.print("\n[dim]Install individually:[/dim] [green]pip install devforge-tools[guard][/green]")
80+
console.print("[dim]Install all:[/dim] [green]pip install devforge-tools[all][/green]")
8181

8282

8383
@app.command()
@@ -96,7 +96,7 @@ def install(
9696
console.print(f"Available: {', '.join(TOOLS.keys())}, 'all'")
9797
raise typer.Exit(code=1)
9898

99-
pkg = f"devforge[{extras}]"
99+
pkg = f"devforge-tools[{extras}]"
100100
console.print(f"[yellow]Installing {pkg}...[/yellow]")
101101
try:
102102
result = subprocess.run([sys.executable, "-m", "pip", "install", pkg], capture_output=True, text=True)
@@ -162,7 +162,7 @@ def dispatch(
162162
except FileNotFoundError:
163163
console.print(
164164
f"[red]Tool '{tool_name}' not installed.[/red]\n"
165-
f"Install with: [green]pip install devforge[{tool_name}][/green]"
165+
f"Install with: [green]pip install devforge-tools[{tool_name}][/green]"
166166
)
167167
raise typer.Exit(code=1) from None
168168

0 commit comments

Comments
 (0)