Skip to content

Avoid panics for cannot-be-a-base URLs#13406

Merged
charliermarsh merged 1 commit intomainfrom
konsti/dont-unwrap-path-segments
May 13, 2025
Merged

Avoid panics for cannot-be-a-base URLs#13406
charliermarsh merged 1 commit intomainfrom
konsti/dont-unwrap-path-segments

Conversation

@konstin
Copy link
Member

@konstin konstin commented May 12, 2025

Following #13376, avoid .unwrap() on Url::path_segments().

I also added some unwrap-safety comments.

Comment on lines +69 to +70
#[error("Invalid download URL: {0}")]
InvalidUrlFormat(Url),
Copy link
Member Author

Choose a reason for hiding this comment

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

I'm not sure what caused this in #13376, a data URL maybe? The url crate docs say (cannot_be_a_base):

This is the case if the scheme and : delimiter are not followed by a / slash,
as is typically the case of data: and mailto: URLs.

@charliermarsh
Copy link
Member

Hmm, but we already check if url.cannot_be_a_base() on line 26?

Following #13376, avoid `.unwrap()` on `Url::path_segments()`.

The code has a lot of indirection due to the limited APIs in the URL crate.
@konstin konstin force-pushed the konsti/dont-unwrap-path-segments branch from 3399303 to 22a5477 Compare May 12, 2025 14:22
@konstin
Copy link
Member Author

konstin commented May 12, 2025

Good point, I switched to unwrap safety comments instead.

@konstin konstin added the bug Something isn't working label May 12, 2025
@charliermarsh charliermarsh merged commit 3b125db into main May 13, 2025
85 of 86 checks passed
@charliermarsh charliermarsh deleted the konsti/dont-unwrap-path-segments branch May 13, 2025 02:29
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request May 18, 2025
## 0.7.5

### Bug fixes

- Support case-sensitive module discovery in the build backend ([#13468](astral-sh/uv#13468))
- Bump Simple cache bucket to v16 ([#13498](astral-sh/uv#13498))
- Don't error when the script is too short for the buffer ([#13488](astral-sh/uv#13488))
- Add missing word in "script not supported" error ([#13483](astral-sh/uv#13483))

## 0.7.4

### Enhancements

- Add more context to external errors ([#13351](astral-sh/uv#13351))
- Align indentation of long arguments ([#13394](astral-sh/uv#13394))
- Preserve order of dependencies which are sorted naively ([#13334](astral-sh/uv#13334))
- Align progress bars by largest name length ([#13266](astral-sh/uv#13266))
- Reinstall local packages in `uv add` ([#13462](astral-sh/uv#13462))
- Rename `--raw-sources` to `--raw` ([#13348](astral-sh/uv#13348))
- Show 'Downgraded' when `self update` is used to install an older version ([#13340](astral-sh/uv#13340))
- Suggest `uv self update` if required uv version is newer ([#13305](astral-sh/uv#13305))
- Add 3.14 beta images to uv Docker images ([#13390](astral-sh/uv#13390))
- Add comma after "i.e." in Conda environment error ([#13423](astral-sh/uv#13423))
- Be more precise in unpinned packages warning ([#13426](astral-sh/uv#13426))
- Fix detection of sorted dependencies when include-group is used ([#13354](astral-sh/uv#13354))
- Fix display of HTTP responses in trace logs for retry of errors ([#13339](astral-sh/uv#13339))
- Log skip reasons during Python installation key interpreter match checks ([#13472](astral-sh/uv#13472))
- Redact credentials when displaying URLs ([#13333](astral-sh/uv#13333))

### Bug fixes

- Avoid erroring on `pylock.toml` dependency entries ([#13384](astral-sh/uv#13384))
- Avoid panics for cannot-be-a-base URLs ([#13406](astral-sh/uv#13406))
- Ensure cached realm credentials are applied if no password is found for index URL ([#13463](astral-sh/uv#13463))
- Fix `.tgz` parsing to respect true extension ([#13382](astral-sh/uv#13382))
- Fix double self-dependency ([#13366](astral-sh/uv#13366))
- Reject `pylock.toml` in `uv add -r` ([#13421](astral-sh/uv#13421))
- Retain dot-separated wheel tags during cache prune ([#13379](astral-sh/uv#13379))
- Retain trailing comments after PEP 723 metadata block ([#13460](astral-sh/uv#13460))

### Documentation

- Use "export" instead of "install" in `uv export` arguments ([#13430](astral-sh/uv#13430))
- Remove extra newline ([#13461](astral-sh/uv#13461))

### Preview features

- Build backend: Normalize glob paths ([#13465](astral-sh/uv#13465))
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request May 19, 2025
This MR contains the following updates:

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

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

[Compare Source](astral-sh/uv@0.7.4...0.7.5)

##### Bug fixes

-   Support case-sensitive module discovery in the build backend ([#&#8203;13468](astral-sh/uv#13468))
-   Bump Simple cache bucket to v16 ([#&#8203;13498](astral-sh/uv#13498))
-   Don't error when the script is too short for the buffer ([#&#8203;13488](astral-sh/uv#13488))
-   Add missing word in "script not supported" error ([#&#8203;13483](astral-sh/uv#13483))

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

[Compare Source](astral-sh/uv@0.7.3...0.7.4)

##### Enhancements

-   Add more context to external errors ([#&#8203;13351](astral-sh/uv#13351))
-   Align indentation of long arguments ([#&#8203;13394](astral-sh/uv#13394))
-   Preserve order of dependencies which are sorted naively ([#&#8203;13334](astral-sh/uv#13334))
-   Align progress bars by largest name length ([#&#8203;13266](astral-sh/uv#13266))
-   Reinstall local packages in `uv add` ([#&#8203;13462](astral-sh/uv#13462))
-   Rename `--raw-sources` to `--raw` ([#&#8203;13348](astral-sh/uv#13348))
-   Show 'Downgraded' when `self update` is used to install an older version ([#&#8203;13340](astral-sh/uv#13340))
-   Suggest `uv self update` if required uv version is newer ([#&#8203;13305](astral-sh/uv#13305))
-   Add 3.14 beta images to uv Docker images ([#&#8203;13390](astral-sh/uv#13390))
-   Add comma after "i.e." in Conda environment error ([#&#8203;13423](astral-sh/uv#13423))
-   Be more precise in unpinned packages warning ([#&#8203;13426](astral-sh/uv#13426))
-   Fix detection of sorted dependencies when include-group is used ([#&#8203;13354](astral-sh/uv#13354))
-   Fix display of HTTP responses in trace logs for retry of errors ([#&#8203;13339](astral-sh/uv#13339))
-   Log skip reasons during Python installation key interpreter match checks ([#&#8203;13472](astral-sh/uv#13472))
-   Redact credentials when displaying URLs ([#&#8203;13333](astral-sh/uv#13333))

##### Bug fixes

-   Avoid erroring on `pylock.toml` dependency entries ([#&#8203;13384](astral-sh/uv#13384))
-   Avoid panics for cannot-be-a-base URLs ([#&#8203;13406](astral-sh/uv#13406))
-   Ensure cached realm credentials are applied if no password is found for index URL ([#&#8203;13463](astral-sh/uv#13463))
-   Fix `.tgz` parsing to respect true extension ([#&#8203;13382](astral-sh/uv#13382))
-   Fix double self-dependency ([#&#8203;13366](astral-sh/uv#13366))
-   Reject `pylock.toml` in `uv add -r` ([#&#8203;13421](astral-sh/uv#13421))
-   Retain dot-separated wheel tags during cache prune ([#&#8203;13379](astral-sh/uv#13379))
-   Retain trailing comments after PEP 723 metadata block ([#&#8203;13460](astral-sh/uv#13460))

##### Documentation

-   Use "export" instead of "install" in `uv export` arguments ([#&#8203;13430](astral-sh/uv#13430))
-   Remove extra newline ([#&#8203;13461](astral-sh/uv#13461))

##### Preview features

-   Build backend: Normalize glob paths ([#&#8203;13465](astral-sh/uv#13465))

</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:eyJjcmVhdGVkSW5WZXIiOiI0MC4xMS4xOSIsInVwZGF0ZWRJblZlciI6IjQwLjEzLjAiLCJ0YXJnZXRCcmFuY2giOiJtYWluIiwibGFiZWxzIjpbIlJlbm92YXRlIEJvdCJdfQ==-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants