Skip to content

Comments

Add uv workspace list to list workspace members#16691

Merged
zanieb merged 3 commits intomainfrom
zb/workspace-list
Nov 17, 2025
Merged

Add uv workspace list to list workspace members#16691
zanieb merged 3 commits intomainfrom
zb/workspace-list

Conversation

@zanieb
Copy link
Member

@zanieb zanieb commented Nov 11, 2025

I'm a little wary here, in the sense that it might be silly to have a command that does something so simple that's covered by uv workspace metadata? but I think this could be stabilized much faster than uv workspace metadata and makes it easier to write scripts against workspace members.

@zanieb zanieb temporarily deployed to uv-test-registries November 11, 2025 20:20 — with GitHub Actions Inactive
@zanieb zanieb temporarily deployed to uv-test-registries November 11, 2025 20:29 — with GitHub Actions Inactive
@zanieb zanieb temporarily deployed to uv-test-registries November 11, 2025 20:37 — with GitHub Actions Inactive
@zanieb zanieb marked this pull request as ready for review November 11, 2025 20:56
@terror
Copy link
Contributor

terror commented Nov 11, 2025

Also, should we add an entry to the preview docs?

@zanieb
Copy link
Member Author

zanieb commented Nov 11, 2025

Thanks!

@zanieb zanieb added the preview Experimental behavior label Nov 11, 2025
@zanieb zanieb temporarily deployed to uv-test-registries November 11, 2025 22:54 — with GitHub Actions Inactive
@konstin
Copy link
Member

konstin commented Nov 12, 2025

I'd go for a single API for machine-readable workspace metadata, I'd have expected this to print something more like a uv pip list table with names and paths.

If we're worried about stabilizing uv workspace metadata, we can stabilize a v1.0 with only workspace member information, and have a v1.1 that populates more fields behind --preview.

@zanieb
Copy link
Member Author

zanieb commented Nov 12, 2025

I'd have expected this to print something more like a uv pip list table with names and paths.

I'm not really into displaying tables. I think I'd expect you to pass items from here to uv workspace dir --package <name> if you want to do this simple composition.

@zanieb
Copy link
Member Author

zanieb commented Nov 12, 2025

Here I'm mostly thinking of the trivial case where you want to loop over workspace members. I don't want to make people use jq for that?

@konstin
Copy link
Member

konstin commented Nov 12, 2025

When do you need to iterate over workspace members?

@zanieb
Copy link
Member Author

zanieb commented Nov 12, 2025

e.g., I need to run pytest / pyright / deptry in each workspace member

@konstin
Copy link
Member

konstin commented Nov 13, 2025

Does that mean uv workspace will be entirely a primarily machine-readable interface, and human readable output will go into uv tree(?) or another interface?

@zanieb
Copy link
Member Author

zanieb commented Nov 13, 2025

I'm not sure yet. I just don't think showing the paths in this specific command is worth the added complexity, since they're usually just a bunch of directories next to each other and it breaks composability.

@konstin
Copy link
Member

konstin commented Nov 13, 2025

We should pin down whether we want this interface to be specifically machine readable (with a specific format) or not, otherwise it will be hard to change it later. If we want it to be shell-iterable, we should commit to printing a single name per line and document that format.

@zanieb
Copy link
Member Author

zanieb commented Nov 13, 2025

If we want it to be shell-iterable, we should commit to printing a single name per line and document that format.

That's what I want to do here, I'm not sure why we need to document that explicitly? but I can do so. The command is just in preview though, I'm looking for concrete use-cases and feedback to guide the interface of this and the entire workspace namespace.

@konstin
Copy link
Member

konstin commented Nov 14, 2025

I really mean just something simple in the docs:

The output is one package name per line.

And maybe an even more explicit:

This interface is machine readable.

As long as it's in preview we can change it again anyway.

@zanieb zanieb temporarily deployed to uv-test-registries November 15, 2025 13:42 — with GitHub Actions Inactive
@zanieb zanieb merged commit 07e03ee into main Nov 17, 2025
100 checks passed
@zanieb zanieb deleted the zb/workspace-list branch November 17, 2025 15:35
konstin added a commit that referenced this pull request Nov 17, 2025
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Nov 18, 2025
This MR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [astral-sh/uv](https://github.com/astral-sh/uv) | patch | `0.9.9` -> `0.9.10` |

MR created with the help of [el-capitano/tools/renovate-bot](https://gitlab.com/el-capitano/tools/renovate-bot).

**Proposed changes to behavior should be submitted there as MRs.**

---

### Release Notes

<details>
<summary>astral-sh/uv (astral-sh/uv)</summary>

### [`v0.9.10`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0910)

[Compare Source](astral-sh/uv@0.9.9...0.9.10)

Released on 2025-11-17.

##### Enhancements

- Add support for `SSL_CERT_DIR` ([#&#8203;16473](astral-sh/uv#16473))
- Enforce UTF‑8-encoded license files during `uv build` ([#&#8203;16699](astral-sh/uv#16699))
- Error when a `project.license-files` glob matches nothing ([#&#8203;16697](astral-sh/uv#16697))
- `pip install --target` (and `sync`) install Python if necessary ([#&#8203;16694](astral-sh/uv#16694))
- Account for `python_downloads_json_url` in pre-release Python version warnings ([#&#8203;16737](astral-sh/uv#16737))
- Support HTTP/HTTPS URLs in `uv python --python-downloads-json-url` ([#&#8203;16542](astral-sh/uv#16542))

##### Preview features

- Add support for `--upgrade` in `uv python install` ([#&#8203;16676](astral-sh/uv#16676))
- Fix handling of `python install --default` for pre-release Python versions ([#&#8203;16706](astral-sh/uv#16706))
- Add `uv workspace list` to list workspace members ([#&#8203;16691](astral-sh/uv#16691))

##### Bug fixes

- Don't check file URLs for ambiguously parsed credentials ([#&#8203;16759](astral-sh/uv#16759))

##### Documentation

- Add a "storage" reference document ([#&#8203;15954](astral-sh/uv#15954))

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever MR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this MR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this MR, check this box

---

This MR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MS4xNzMuMSIsInVwZGF0ZWRJblZlciI6IjQxLjE3My4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

preview Experimental behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants