Skip to content

Commit 54f09f4

Browse files
feat!: drop the unstract console script
The CLI that owns the name depends on this package, so the two always share an environment and the entry point collides on every install. `python -m unstract.clone` is unchanged, and the CLI offers the same command. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014f9oEEYspPH4fmPULTnLkJ
1 parent 19a5644 commit 54f09f4

5 files changed

Lines changed: 9 additions & 93 deletions

File tree

‎README.md‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,16 @@ client = APIDeploymentsClient(
100100
The retry logic uses exponential backoff with full jitter and respects the `Retry-After` header on 429 responses.
101101

102102

103-
## Unstract CLI
103+
## Cloning an organization
104104

105-
Installing `unstract-client` also provides the `unstract` command:
105+
Installing `unstract-client` also provides a clone command:
106106

107107
```bash
108108
pip install unstract-client
109-
unstract --help
109+
python -m unstract.clone --help
110110
```
111111

112-
### `unstract clone`
112+
### `python -m unstract.clone`
113113

114114
Clones an organization's resources to another org, on the same or a different
115115
deployment (e.g. promote **dev** → **QA** → **prod**). Covers adapters,
@@ -124,7 +124,7 @@ so keys never land in shell history:
124124
export UNSTRACT_SRC_PLATFORM_KEY="<source platform key>"
125125
export UNSTRACT_TGT_PLATFORM_KEY="<target platform key>"
126126

127-
unstract clone \
127+
python -m unstract.clone \
128128
--source-url https://dev.example.com --source-org org_dev123 \
129129
--target-url https://qa.example.com --target-org org_qa456 \
130130
--dry-run
@@ -152,14 +152,14 @@ failed run can be resumed by re-running the same command.
152152

153153
#### Compatibility
154154

155-
`unstract clone` is capability-probed: each phase checks for its endpoint on the
155+
Cloning is capability-probed: each phase checks for its endpoint on the
156156
source and target, and clones only what both orgs support. A capability missing on
157157
either side is reported and skipped — the run never fails because of a version
158158
difference. Cloning a newer source into an older target therefore drops the entity
159159
types the target lacks (listed in the end-of-run report).
160160

161161
- Run the source and target on the same (or a newer-target) Unstract build.
162-
- Use `unstract-client >= 1.4.0`, the first release that ships `unstract clone`.
162+
- Use `unstract-client >= 1.4.0`, the first release that ships the clone command.
163163

164164
## Questions and Feedback
165165

‎pyproject.toml‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ classifiers = [
3333
"Topic :: Software Development :: Libraries :: Python Modules",
3434
]
3535

36-
[project.scripts]
37-
unstract = "unstract.cli:main"
38-
3936
[build-system]
4037
requires = ["hatchling"]
4138
build-backend = "hatchling.build"

‎src/unstract/cli.py‎

Lines changed: 0 additions & 30 deletions
This file was deleted.

‎src/unstract/clone/cli.py‎

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
"""Click-based CLI for ``unstract.clone``.
22
3-
Single ``clone`` command, registered on the top-level ``unstract`` group
4-
(``unstract.cli``) — the canonical invocation is ``unstract clone``. The
5-
local group here only backs ``python -m unstract.clone``.
3+
Single ``clone`` command, invoked as ``python -m unstract.clone``. The
4+
``unstract`` CLI wraps the orchestrator directly rather than this module.
65
76
Platform keys can be passed via flags (``--source-key`` / ``--target-key``)
87
or env vars (``UNSTRACT_SRC_PLATFORM_KEY`` / ``UNSTRACT_TGT_PLATFORM_KEY``)

‎tests/test_cli_top_level.py‎

Lines changed: 0 additions & 50 deletions
This file was deleted.

0 commit comments

Comments
 (0)