Skip to content

Comments

Display the built file name instead of the canonicalized name in uv build#11593

Merged
jtfmumm merged 3 commits intomainfrom
jtfm/display-real-filename
Feb 20, 2025
Merged

Display the built file name instead of the canonicalized name in uv build#11593
jtfmumm merged 3 commits intomainfrom
jtfm/display-real-filename

Conversation

@jtfmumm
Copy link
Contributor

@jtfmumm jtfmumm commented Feb 18, 2025

We keep the raw filename (prior to parsing/normalization) on the BuildMessage so we can display it.

Closes #11103.

Closes #11635.

@jtfmumm jtfmumm force-pushed the jtfm/display-real-filename branch from 3235f50 to 3496e94 Compare February 18, 2025 11:05
@jtfmumm jtfmumm force-pushed the jtfm/display-real-filename branch from 3496e94 to 45e7cf9 Compare February 18, 2025 11:06
@@ -1140,13 +1148,17 @@ enum BuildMessage {
Build {
/// The name of the built distribution.
filename: DistFilename,
Copy link
Member

@konstin konstin Feb 18, 2025

Choose a reason for hiding this comment

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

Do we still need the filename field now that we have the raw name?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There are a couple places that grab the .version() and there's this line:

            let path = output_dir.join(sdist_build.filename().to_string());

I wasn't sure if it would be safe to replace it for that path.

Copy link
Member

Choose a reason for hiding this comment

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

I would expect that let path = output_dir.join(sdist_build.filename().to_string needs to use the raw filename since we're trying to read from that path. Can we check why that isn't failing today?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I added a test to build.rs that fails because of this line. The test passes after updating to use the raw filename.

}

/// The filename of the wheel or source distribution before normalization.
fn raw_filename(&self) -> &String {
Copy link
Member

Choose a reason for hiding this comment

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

I'd suggest returning &str here? I think it's somewhat uncommon to return &String since it's strictly less flexible (you can always get an &str from an &String, but you can't go the other way around).

match self {
BuildMessage::Build {
filename,
raw_filename: raw_name,
Copy link
Member

Choose a reason for hiding this comment

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

Nit: this seems like a potentially unnecessary assignment since they're so similar (but not blocking obviously, up to you).

Copy link
Contributor Author

@jtfmumm jtfmumm Feb 20, 2025

Choose a reason for hiding this comment

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

Yeah that was just an oversight

@charliermarsh
Copy link
Member

I linked the other issue here too, to close it out on merge.

@jtfmumm jtfmumm force-pushed the jtfm/display-real-filename branch from 7155ea3 to 714bf48 Compare February 20, 2025 07:57
@jtfmumm jtfmumm merged commit ab551ea into main Feb 20, 2025
73 checks passed
@jtfmumm jtfmumm deleted the jtfm/display-real-filename branch February 20, 2025 08:11
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Feb 25, 2025
This MR contains the following updates:

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

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

[Compare Source](astral-sh/uv@0.6.2...0.6.3)

##### Enhancements

-   Allow quotes around command-line options in `requirement.txt files` ([#&#8203;11644](astral-sh/uv#11644))
-   Initialize PEP 723 script in `uv lock --script` ([#&#8203;11717](astral-sh/uv#11717))

##### Configuration

-   Accept multiple `.env` files in `UV_ENV_FILE` ([#&#8203;11665](astral-sh/uv#11665))

##### Performance

-   Reduce overhead in converting resolutions ([#&#8203;11660](astral-sh/uv#11660))
-   Use `SmallString` on `Hashes` ([#&#8203;11756](astral-sh/uv#11756))
-   Use a `Box` for `Yanked` on `File` ([#&#8203;11755](astral-sh/uv#11755))
-   Use a `SmallString` for the `Yanked` enum ([#&#8203;11715](astral-sh/uv#11715))
-   Use boxed slices for hash vector ([#&#8203;11714](astral-sh/uv#11714))
-   Use install concurrency for bytecode compilation too ([#&#8203;11615](astral-sh/uv#11615))

##### Bug fixes

-   Avoid installing duplicate dependencies across conflicting groups ([#&#8203;11653](astral-sh/uv#11653))
-   Check subdirectory existence after cache heal ([#&#8203;11719](astral-sh/uv#11719))
-   Include uppercase platforms for Windows wheels ([#&#8203;11681](astral-sh/uv#11681))
-   Respect existing PEP 723 script settings in `uv add` ([#&#8203;11716](astral-sh/uv#11716))
-   Reuse refined interpreter to create tool environment ([#&#8203;11680](astral-sh/uv#11680))
-   Skip removed directories during bytecode compilation ([#&#8203;11633](astral-sh/uv#11633))
-   Support conflict markers in `uv export` ([#&#8203;11643](astral-sh/uv#11643))
-   Treat lockfile as outdated if (empty) extras are added ([#&#8203;11702](astral-sh/uv#11702))
-   Display path separators as backslashes on Windows ([#&#8203;11667](astral-sh/uv#11667))
-   Display the built file name instead of the canonicalized name in `uv build` ([#&#8203;11593](astral-sh/uv#11593))
-   Fix message when there are no buildable packages ([#&#8203;11722](astral-sh/uv#11722))
-   Re-allow HTTP schemes for Git dependencies ([#&#8203;11687](astral-sh/uv#11687))

##### Documentation

-   Add anchor links to arguments and options in the CLI reference ([#&#8203;11754](astral-sh/uv#11754))
-   Add link to environment marker specification ([#&#8203;11748](astral-sh/uv#11748))
-   Fix missing a closing bracket in the `cache-keys` setting ([#&#8203;11669](astral-sh/uv#11669))
-   Remove the last edited date from documentation pages ([#&#8203;11753](astral-sh/uv#11753))
-   Fix readme typo ([#&#8203;11742](astral-sh/uv#11742))

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

[Compare Source](astral-sh/uv@0.6.1...0.6.2)

##### Enhancements

-   Add support for constraining build dependencies with `tool.uv.build-constraint-dependencies` ([#&#8203;11585](astral-sh/uv#11585))
-   Sort dependency group keys when adding new group ([#&#8203;11591](astral-sh/uv#11591))

##### Performance

-   Use an `Arc` for index URLs ([#&#8203;11586](astral-sh/uv#11586))

##### Bug fixes

-   Allow use of x86-64 Python on ARM Windows ([#&#8203;11625](astral-sh/uv#11625))
-   Fix an issue where conflict markers could instigate a very large lock file ([#&#8203;11293](astral-sh/uv#11293))
-   Fix duplicate packages with multiple conflicting extras declared ([#&#8203;11513](astral-sh/uv#11513))
-   Respect color settings for log messages ([#&#8203;11604](astral-sh/uv#11604))
-   Eagerly reject unsupported Git schemes ([#&#8203;11514](astral-sh/uv#11514))

##### Documentation

-   Add documentation for specifying Python versions in tool commands ([#&#8203;11598](astral-sh/uv#11598))

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

[Compare Source](astral-sh/uv@0.6.0...0.6.1)

##### Enhancements

-   Allow users to mark platforms as "required" for wheel coverage ([#&#8203;10067](astral-sh/uv#10067))
-   Warn for builds in non-build and workspace root pyproject.toml ([#&#8203;11394](astral-sh/uv#11394))

##### Bug fixes

-   Add `--all` to `uvx --reinstall` message ([#&#8203;11535](astral-sh/uv#11535))
-   Fallback to `GET` on HTTP 400 when attempting to use range requests for wheel download ([#&#8203;11539](astral-sh/uv#11539))
-   Prefer local variants in preference selection ([#&#8203;11546](astral-sh/uv#11546))
-   Respect verbatim executable name in `uvx` ([#&#8203;11524](astral-sh/uv#11524))

##### Documentation

-   Add documentation for required environments ([#&#8203;11542](astral-sh/uv#11542))
-   Note that `main.py` used to be `hello.py` ([#&#8203;11519](astral-sh/uv#11519))

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xNzEuMiIsInVwZGF0ZWRJblZlciI6IjM5LjE3OS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
loic-lescoat pushed a commit to loic-lescoat/uv that referenced this pull request Mar 2, 2025
…build` (astral-sh#11593)

We keep the raw filename (prior to parsing/normalization) on the
`BuildMessage` so we can display it.

Closes astral-sh#11103.
Closes astral-sh#11635.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

uv build is looking for the wrong sdist file Display the built file name instead of the canonicalized name in uv build

3 participants