Skip to content

Commit a1068a0

Browse files
committed
Use uv in contrib cli
1 parent 4ec18b7 commit a1068a0

File tree

1 file changed

+10
-46
lines changed
  • plain-dev/plain/dev/contribute

1 file changed

+10
-46
lines changed

plain-dev/plain/dev/contribute/cli.py

Lines changed: 10 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
from pathlib import Path
44

55
import click
6-
import tomllib
76

87

98
@click.command("contribute")
@@ -13,22 +12,16 @@ def cli(package, repo):
1312
"""Contribute to plain by linking a package locally."""
1413

1514
if package == "reset":
16-
click.secho("Undoing any changes to pyproject.toml and poetry.lock", bold=True)
17-
result = subprocess.run(["git", "checkout", "pyproject.toml", "poetry.lock"])
15+
click.secho("Undoing any changes to pyproject.toml and uv.lock", bold=True)
16+
result = subprocess.run(["git", "checkout", "pyproject.toml", "uv.lock"])
1817
if result.returncode:
19-
click.secho("Failed to checkout pyproject.toml and poetry.lock", fg="red")
18+
click.secho("Failed to checkout pyproject.toml and uv.lock", fg="red")
2019
sys.exit(result.returncode)
2120

22-
click.secho("Removing current .venv", bold=True)
23-
result = subprocess.run(["rm", "-rf", ".venv"])
21+
click.secho("Running uv sync", bold=True)
22+
result = subprocess.run(["uv", "sync"])
2423
if result.returncode:
25-
click.secho("Failed to remove .venv", fg="red")
26-
sys.exit(result.returncode)
27-
28-
click.secho("Running poetry install", bold=True)
29-
result = subprocess.run(["poetry", "install"])
30-
if result.returncode:
31-
click.secho("Failed to install", fg="red")
24+
click.secho("Failed to sync", fg="red")
3225
sys.exit(result.returncode)
3326

3427
return
@@ -53,42 +46,14 @@ def cli(package, repo):
5346
)
5447
click.secho(f"Using repo at {repo} ({repo_branch} branch)", bold=True)
5548

56-
pyproject = Path("pyproject.toml")
57-
if not pyproject.exists():
58-
click.secho("pyproject.toml not found", fg="red")
59-
return
60-
61-
poetry_group = "main"
62-
63-
with pyproject.open("rb") as f:
64-
pyproject_data = tomllib.load(f)
65-
poetry_dependencies = (
66-
pyproject_data.get("tool", {}).get("poetry", {}).get("dependencies", {})
67-
)
68-
69-
for group_name, group_data in (
70-
pyproject_data.get("tool", {}).get("poetry", {}).get("group", {}).items()
71-
):
72-
if package in group_data.get("dependencies", {}).keys():
73-
poetry_group = group_name
74-
break
75-
76-
if not poetry_group and package not in poetry_dependencies.keys():
77-
click.secho(
78-
f"{package} not found in pyproject.toml (only poetry is supported)",
79-
fg="red",
80-
)
81-
return
82-
8349
click.secho(f"Linking {package} to {repo}", bold=True)
8450
if package == "plain" or package.startswith("plain-"):
8551
result = subprocess.run(
8652
[
87-
"poetry",
53+
"uv",
8854
"add",
8955
"--editable",
90-
"--group",
91-
poetry_group,
56+
"--dev",
9257
str(repo / package), # Link a subdirectory
9358
]
9459
)
@@ -98,11 +63,10 @@ def cli(package, repo):
9863
elif package.startswith("plainx-"):
9964
result = subprocess.run(
10065
[
101-
"poetry",
66+
"uv",
10267
"add",
10368
"--editable",
104-
"--group",
105-
poetry_group,
69+
"--dev",
10670
str(repo),
10771
]
10872
)

0 commit comments

Comments
 (0)