Skip to content

Commit 0404527

Browse files
committed
Migrate development workflow from Poetry to uv
1 parent e0b9666 commit 0404527

7 files changed

Lines changed: 872 additions & 609 deletions

File tree

.github/workflows/ci.yml

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,43 +14,39 @@ jobs:
1414

1515
steps:
1616
- name: Checkout
17-
uses: actions/checkout@v4
17+
uses: actions/checkout@v7
1818

19-
- name: Set up Python
20-
uses: actions/setup-python@v5
19+
- name: Install uv
20+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
2121
with:
22+
version: "0.11.32"
23+
enable-cache: true
2224
python-version: ${{ matrix.python-version }}
2325

2426
- name: Install dependencies
25-
run: |
26-
python -m pip install --upgrade pip
27-
pip install -e .
28-
pip install -e ".[test]" || true
29-
pip install -e ".[dev]" || true
30-
pip install pytest ruff mypy build twine types-PyYAML
27+
run: uv sync --locked
3128

3229
- name: Ruff
3330
run: |
3431
if grep -q "^\[tool.ruff" pyproject.toml; then
35-
ruff check src tests
32+
uv run ruff check src tests
3633
else
3734
echo "No Ruff config; skipping."
3835
fi
3936
4037
- name: Mypy
4138
run: |
4239
if grep -q "^\[tool.mypy" pyproject.toml; then
43-
mypy src
40+
uv run mypy src
4441
else
4542
echo "No mypy config; skipping."
4643
fi
4744
4845
- name: Pytest
49-
run: pytest -q
46+
run: uv run pytest -q
5047

5148
- name: Build and check distributions
5249
if: matrix.python-version == '3.11'
5350
run: |
54-
rm -rf build dist
55-
python -m build
56-
python -m twine check dist/*
51+
uv build
52+
uv run twine check dist/*

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,3 @@ artifacts/
2525
.artifacts/
2626

2727
.DS_Store
28-
poetry.toml

GUIDEBOOK.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ The fastest path is a single machine deployment, then moving to Kubernetes when
2020

2121
- Python `3.11`-`3.13`
2222
- `pip`
23-
- `poetry`
23+
- `uv`
2424
- OpenClaw endpoint and token
2525

2626
Optional:
@@ -31,21 +31,21 @@ Optional:
3131

3232
```bash
3333
cd refua-deploy
34-
poetry install
34+
uv sync
3535
```
3636

3737
You can also install ecosystem packages directly from PyPI:
3838

3939
```bash
40-
poetry run refua-deploy install-ecosystem
40+
uv run refua-deploy install-ecosystem
4141
```
4242

4343
## 4. Recommended: Single-Machine Deployment
4444

4545
### 4.1 Generate config
4646

4747
```bash
48-
poetry run refua-deploy init \
48+
uv run refua-deploy init \
4949
--output deploy/single-machine.yaml \
5050
--name refua-local \
5151
--visibility private \
@@ -56,7 +56,7 @@ poetry run refua-deploy init \
5656
### 4.2 Render artifacts
5757

5858
```bash
59-
poetry run refua-deploy render \
59+
uv run refua-deploy render \
6060
--config deploy/single-machine.yaml \
6161
--output-dir dist
6262
```
@@ -119,7 +119,7 @@ Use this when you need multi-node scheduling, stronger isolation, and cluster in
119119
### 5.1 Generate config
120120

121121
```bash
122-
poetry run refua-deploy init \
122+
uv run refua-deploy init \
123123
--output deploy/public.yaml \
124124
--name refua-prod \
125125
--visibility public \
@@ -130,8 +130,8 @@ poetry run refua-deploy init \
130130
### 5.2 Render and review
131131

132132
```bash
133-
poetry run refua-deploy plan --config deploy/public.yaml --output deploy/plan.json
134-
poetry run refua-deploy render --config deploy/public.yaml --output-dir dist/public
133+
uv run refua-deploy plan --config deploy/public.yaml --output deploy/plan.json
134+
uv run refua-deploy render --config deploy/public.yaml --output-dir dist/public
135135
```
136136

137137
### 5.3 Bootstrap/apply

README.md

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ If you just want it working with sensible defaults:
3030

3131
```bash
3232
cd refua-deploy
33-
poetry install
34-
poetry run refua-deploy install-ecosystem
35-
poetry run refua-deploy init --output deploy.yaml --name refua-prod --visibility public --provider aws
36-
poetry run refua-deploy render --config deploy.yaml --output-dir dist
33+
uv sync
34+
uv run refua-deploy install-ecosystem
35+
uv run refua-deploy init --output deploy.yaml --name refua-prod --visibility public --provider aws
36+
uv run refua-deploy render --config deploy.yaml --output-dir dist
3737
bash dist/bootstrap/cluster-bootstrap.sh
3838
```
3939

@@ -105,21 +105,21 @@ What this does automatically:
105105

106106
```bash
107107
cd refua-deploy
108-
poetry install
108+
uv sync
109109
```
110110

111111
Install the full Refua ecosystem (including Studio):
112112

113113
```bash
114-
poetry run refua-deploy install-ecosystem
114+
uv run refua-deploy install-ecosystem
115115
```
116116

117117
## Quick Start
118118

119119
Generate a starter config with maximum automation:
120120

121121
```bash
122-
poetry run refua-deploy init \
122+
uv run refua-deploy init \
123123
--output deploy/public.yaml \
124124
--name refua-oncology-prod \
125125
--visibility public \
@@ -133,39 +133,39 @@ poetry run refua-deploy init \
133133
Validate and preview plan:
134134

135135
```bash
136-
poetry run refua-deploy plan \
136+
uv run refua-deploy plan \
137137
--config deploy/public.yaml \
138138
--output deploy/plan.json
139139
```
140140

141141
Render artifacts:
142142

143143
```bash
144-
poetry run refua-deploy render \
144+
uv run refua-deploy render \
145145
--config deploy/public.yaml \
146146
--output-dir dist/public
147147
```
148148

149149
Apply rendered runtime:
150150

151151
```bash
152-
poetry run refua-deploy apply \
152+
uv run refua-deploy apply \
153153
--config deploy/public.yaml \
154154
--output-dir dist/public
155155
```
156156

157157
Check runtime status:
158158

159159
```bash
160-
poetry run refua-deploy status \
160+
uv run refua-deploy status \
161161
--config deploy/public.yaml \
162162
--output-dir dist/public
163163
```
164164

165165
Run deployment diagnostics:
166166

167167
```bash
168-
poetry run refua-deploy doctor \
168+
uv run refua-deploy doctor \
169169
--config deploy/public.yaml \
170170
--output-dir dist/public
171171
```
@@ -179,7 +179,7 @@ bash dist/public/bootstrap/cluster-bootstrap.sh
179179
Private cloud with compose:
180180

181181
```bash
182-
poetry run refua-deploy init \
182+
uv run refua-deploy init \
183183
--output deploy/private.yaml \
184184
--visibility private \
185185
--provider onprem \
@@ -189,7 +189,7 @@ poetry run refua-deploy init \
189189
Private cloud with Kubernetes (for example k3s/rke2):
190190

191191
```bash
192-
poetry run refua-deploy init \
192+
uv run refua-deploy init \
193193
--output deploy/private-k8s.yaml \
194194
--visibility private \
195195
--provider vmware \
@@ -199,12 +199,12 @@ poetry run refua-deploy init \
199199
Single-machine lightweight bundle:
200200

201201
```bash
202-
poetry run refua-deploy init \
202+
uv run refua-deploy init \
203203
--output deploy/single-machine.yaml \
204204
--visibility private \
205205
--provider onprem \
206206
--orchestrator single-machine
207-
poetry run refua-deploy render \
207+
uv run refua-deploy render \
208208
--config deploy/single-machine.yaml \
209209
--output-dir dist/single-machine
210210
```
@@ -312,13 +312,13 @@ Generated artifacts follow existing Refua runtime contracts:
312312
Run checks:
313313

314314
```bash
315-
poetry run ruff check src tests
316-
poetry run mypy src
317-
poetry run pytest
315+
uv run ruff check src tests
316+
uv run mypy src
317+
uv run pytest
318318
```
319319

320320
Build package:
321321

322322
```bash
323-
poetry build
323+
uv build
324324
```

0 commit comments

Comments
 (0)