Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

uv run: List available scripts when a script is not specified #7687

Merged

Conversation

kakkoyun
Copy link
Contributor

@kakkoyun kakkoyun commented Sep 25, 2024

Signed-off-by: Kemal Akkoyun kakkoyun@gmail.com

Summary

This PR adds the ability to list available scripts in the environment
when uv run is invoked without any arguments.
It somewhat mimics the behavior of rye run command
(See https://rye.astral.sh/guide/commands/run).

This is an attempt to fix #4024.

Test Plan

I added test cases. The CI pipeline should pass.

Manuel Tests

❯ uv run
Provide a command or script to invoke with `uv run <command>` or `uv run script.py`.

The following scripts are available:

normalizer
python
python3
python3.12

See `uv run --help` for more information.

@kakkoyun kakkoyun force-pushed the list_available_scripts_and_executables branch from 3b07e17 to e95ee42 Compare September 25, 2024 15:48
crates/uv/src/lib.rs Outdated Show resolved Hide resolved
@kakkoyun kakkoyun force-pushed the list_available_scripts_and_executables branch 2 times, most recently from 26a3552 to 3c1be57 Compare September 25, 2024 17:44
@kakkoyun kakkoyun marked this pull request as ready for review September 25, 2024 17:44
@kakkoyun kakkoyun force-pushed the list_available_scripts_and_executables branch from acc79e2 to 1c3691e Compare September 25, 2024 19:45
@kakkoyun kakkoyun requested a review from zanieb September 25, 2024 19:55
crates/uv/tests/run.rs Outdated Show resolved Hide resolved
crates/uv/tests/run.rs Outdated Show resolved Hide resolved
crates/uv/tests/run.rs Outdated Show resolved Hide resolved
crates/uv/tests/run.rs Outdated Show resolved Hide resolved
crates/uv/tests/run.rs Outdated Show resolved Hide resolved
@konstin konstin added the enhancement New feature or improvement to existing functionality label Sep 26, 2024
@kakkoyun kakkoyun force-pushed the list_available_scripts_and_executables branch 7 times, most recently from 86892f6 to 4c7f9bd Compare September 26, 2024 14:05
Signed-off-by: Kemal Akkoyun <kakkoyun@gmail.com>
Signed-off-by: Kemal Akkoyun <kakkoyun@gmail.com>
Signed-off-by: Kemal Akkoyun <kakkoyun@gmail.com>
Signed-off-by: Kemal Akkoyun <kakkoyun@gmail.com>
Signed-off-by: Kemal Akkoyun <kakkoyun@gmail.com>
Copy link
Member

@zanieb zanieb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

Signed-off-by: Kemal Akkoyun <kakkoyun@gmail.com>
@kakkoyun kakkoyun force-pushed the list_available_scripts_and_executables branch from fa152ee to 1c89270 Compare September 27, 2024 16:55
@kakkoyun kakkoyun marked this pull request as ready for review September 27, 2024 16:56
@kakkoyun kakkoyun force-pushed the list_available_scripts_and_executables branch from 1c89270 to a07be21 Compare September 27, 2024 17:04
Signed-off-by: Kemal Akkoyun <kakkoyun@gmail.com>
@kakkoyun kakkoyun force-pushed the list_available_scripts_and_executables branch from a07be21 to 30885bc Compare September 27, 2024 17:15
zanieb added 3 commits October 8, 2024 14:12
Commands can be used from outside the environment so we should be careful not to hint these are the only ones available
@zanieb zanieb enabled auto-merge (squash) October 8, 2024 19:27
@zanieb zanieb merged commit 1a39ffe into astral-sh:main Oct 8, 2024
60 checks passed
@zanieb
Copy link
Member

zanieb commented Oct 8, 2024

Thanks @kakkoyun!

tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Oct 11, 2024
This MR contains the following updates:

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

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.4.20`](https://github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#0420)

[Compare Source](astral-sh/uv@0.4.19...0.4.20)

##### Enhancements

-   Add managed downloads for CPython 3.13.0 (final) ([#&#8203;8010](astral-sh/uv#8010))
-   Python 3.13 is the default version for `uv python install` ([#&#8203;8010](astral-sh/uv#8010))
-   Hint at wrong endpoint in `uv publish` failures ([#&#8203;7872](astral-sh/uv#7872))
-   List available scripts when a command is not specified for `uv run` ([#&#8203;7687](astral-sh/uv#7687))
-   Fill in `authors` field during `uv init` ([#&#8203;7756](astral-sh/uv#7756))

##### Documentation

-   Add snapshot testing to contribution guide ([#&#8203;7882](astral-sh/uv#7882))
-   Fix and improve GitLab integration docs ([#&#8203;8000](astral-sh/uv#8000))

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

[Compare Source](astral-sh/uv@0.4.18...0.4.19)

##### Enhancements

-   Add managed downloads for CPython 3.13.0rc3 and 3.12.7 ([#&#8203;7880](astral-sh/uv#7880))
-   Display the target virtual environment path if non-default ([#&#8203;7850](astral-sh/uv#7850))
-   Preserve case-insensitive sorts in `uv add` ([#&#8203;7864](astral-sh/uv#7864))
-   Respect project upper bounds when filtering wheels on `requires-python` ([#&#8203;7904](astral-sh/uv#7904))
-   Add `--script` to `uv run` to treat an input as PEP 723 regardless of extension ([#&#8203;7739](astral-sh/uv#7739))
-   Improve legibility of build failure errors ([#&#8203;7854](astral-sh/uv#7854))
-   Show interpreter source during Python discovery query errors ([#&#8203;7928](astral-sh/uv#7928))

##### Configuration

-   Add `UV_FIND_LINKS` environment variable for `--find-links` ([#&#8203;7912](astral-sh/uv#7912))
-   Ignore empty string values for `UV_PYTHON` environment variable ([#&#8203;7878](astral-sh/uv#7878))

##### Bug fixes

-   Allow `py3x-none` tags in newer than Python 3.x ([#&#8203;7867](astral-sh/uv#7867))
-   Allow self-dependencies in the `dev` section ([#&#8203;7943](astral-sh/uv#7943))
-   Always ignore `cp2` wheels in resolution ([#&#8203;7902](astral-sh/uv#7902))
-   Clear the publish progress bar on retry ([#&#8203;7921](astral-sh/uv#7921))
-   Fix parsing of `gnueabi` libc variants in Python version requests ([#&#8203;7975](astral-sh/uv#7975))
-   Simplify supported environments when comparing to lockfile ([#&#8203;7894](astral-sh/uv#7894))
-   Trim commits when reading from Git refs ([#&#8203;7922](astral-sh/uv#7922))
-   Use a higher HTTP read timeout when publishing packages ([#&#8203;7923](astral-sh/uv#7923))
-   Remove the first empty line for `uv tree --package foo` ([#&#8203;7885](astral-sh/uv#7885))

##### Documentation

-   Add 3.13 support to the platform reference ([#&#8203;7971](astral-sh/uv#7971))
-   Clarify project environment creation ([#&#8203;7941](astral-sh/uv#7941))
-   Fix code block title in Gitlab integration docs ([#&#8203;7861](astral-sh/uv#7861))
-   Fix project guide section on adding a Git dependency ([#&#8203;7916](astral-sh/uv#7916))
-   Fix uninstallation command for Windows ([#&#8203;7944](astral-sh/uv#7944))
-   Clearly specify the minimum supported Windows Server version ([#&#8203;7946](astral-sh/uv#7946))

##### Rust API

-   Remove unused `Sha256Reader` ([#&#8203;7929](astral-sh/uv#7929))
-   Remove unnecessary `Deserialize` derives on settings ([#&#8203;7856](astral-sh/uv#7856))

</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:eyJjcmVhdGVkSW5WZXIiOiIzNy40NDAuNyIsInVwZGF0ZWRJblZlciI6IjM3LjQ0MC43IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or improvement to existing functionality
Projects
None yet
Development

Successfully merging this pull request may close these issues.

uv run and uv tool run should list available scripts and executables
3 participants