Skip to content

Comments

Make interpreter caching robust to OS upgrades#11875

Merged
charliermarsh merged 1 commit intomainfrom
charlie/c
Mar 2, 2025
Merged

Make interpreter caching robust to OS upgrades#11875
charliermarsh merged 1 commit intomainfrom
charlie/c

Conversation

@charliermarsh
Copy link
Member

@charliermarsh charliermarsh commented Mar 1, 2025

Summary

In. #11857, we had a case of a user that was seeing incorrect resolution results after upgrading to a newer version of macOS, since we retained cache information about the interpreter. This PR adds the OS name and version to the cache key for the interpreter. This seems to be extremely cheap, and it's nice to make this robust so that users don't run into the same confusion in the future.

Closes #11857.

@charliermarsh charliermarsh requested review from konstin and zanieb March 1, 2025 03:40
@charliermarsh charliermarsh added the bug Something isn't working label Mar 1, 2025
@charliermarsh charliermarsh marked this pull request as ready for review March 1, 2025 03:40
ARCH,
Path::new(ARCH)
.join(sys_info::os_type().unwrap_or_default())
.join(sys_info::os_release().unwrap_or_default()),
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 could also use a SHA of these things; either way. This looks like:

Screenshot 2025-02-28 at 10 41 20 PM

Copy link
Member

Choose a reason for hiding this comment

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

Do we need to update the comment above this too?

schemars = { workspace = true, optional = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
sys-info = { workspace = true }
Copy link
Member Author

Choose a reason for hiding this comment

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

(We already depend on this.)

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.

Into it. A hash might make sense — but I don't feel strongly.

@charliermarsh charliermarsh enabled auto-merge (squash) March 2, 2025 01:32
@charliermarsh charliermarsh merged commit 461f4d9 into main Mar 2, 2025
92 checks passed
@charliermarsh charliermarsh deleted the charlie/c branch March 2, 2025 01:36
loic-lescoat pushed a commit to loic-lescoat/uv that referenced this pull request Mar 2, 2025
## Summary

In. astral-sh#11857, we had a case of a
user that was seeing incorrect resolution results after upgrading to a
newer version of macOS, since we retained cache information about the
interpreter. This PR adds the OS name and version to the cache key for
the interpreter. This seems to be extremely cheap, and it's nice to make
this robust so that users don't run into the same confusion in the
future.

Closes astral-sh#11857.
tmeijn pushed a commit to tmeijn/dotfiles that referenced this pull request Mar 6, 2025
This MR contains the following updates:

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

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

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

##### Enhancements

-   Upgrade pypy3.10 to v7.3.19 ([#&#8203;11814](astral-sh/uv#11814))
-   Allow configuring log verbosity from the CLI (i.e., `-vvv`) ([#&#8203;11758](astral-sh/uv#11758))
-   Warn when duplicate index names found in single file ([#&#8203;11824](astral-sh/uv#11824))

##### Bug fixes

-   Always store registry index on resolution packages ([#&#8203;11815](astral-sh/uv#11815))
-   Avoid error on relative paths in `uv tool uninstall` ([#&#8203;11889](astral-sh/uv#11889))
-   Avoid silently dropping errors in directory enumeration ([#&#8203;11890](astral-sh/uv#11890))
-   Disable interactive git terminal prompts during fetches ([#&#8203;11744](astral-sh/uv#11744))
-   Discover Windows registry (PEP 514) Python versions across 32/64-bit ([#&#8203;11801](astral-sh/uv#11801))
-   Don't panic on Ctrl-C in confirm prompt ([#&#8203;11706](astral-sh/uv#11706))
-   Fix non-directory in workspace on Windows ([#&#8203;11833](astral-sh/uv#11833))
-   Make interpreter caching robust to OS upgrades ([#&#8203;11875](astral-sh/uv#11875))
-   Respect `include-system-site-packages` in layered environments ([#&#8203;11873](astral-sh/uv#11873))
-   Suggest `uv tool update-shell` in PowerShell ([#&#8203;11846](astral-sh/uv#11846))
-   Update code page to `65001` before setting environment variables in virtual environments ([#&#8203;11831](astral-sh/uv#11831))
-   Use hash instead of full wheel name in wheels bucket ([#&#8203;11738](astral-sh/uv#11738))
-   Fix version string truncation while generating cache_key ([#&#8203;11830](astral-sh/uv#11830))
-   Explicitly handle ctrl-c in confirmation prompt instead of using a signal handler ([#&#8203;11897](astral-sh/uv#11897))

##### Performance

-   Avoid cloning to string when creating cache path ([#&#8203;11772](astral-sh/uv#11772))
-   Avoid redundant clones in version containment check ([#&#8203;11767](astral-sh/uv#11767))
-   Avoid string allocation when enumerating tool names ([#&#8203;11910](astral-sh/uv#11910))
-   Avoid using owned `String` for package name constructors ([#&#8203;11768](astral-sh/uv#11768))
-   Avoid using owned `String` in deserializers ([#&#8203;11764](astral-sh/uv#11764))
-   Migrate to `zlib-rs` (again) ([#&#8203;11894](astral-sh/uv#11894))
-   Remove unnecessary clones when adding package names ([#&#8203;11771](astral-sh/uv#11771))
-   Skip unquote allocation for non-quoted strings ([#&#8203;11813](astral-sh/uv#11813))
-   Use `SmallString` for filenames and URLs ([#&#8203;11765](astral-sh/uv#11765))
-   Use a Boxed slice for version specifiers ([#&#8203;11766](astral-sh/uv#11766))
-   Use matches over contains for extra value parsing ([#&#8203;11770](astral-sh/uv#11770))

##### Documentation

-   Avoid fallback to PyPI in mixed CPU/CUDA example ([#&#8203;11115](astral-sh/uv#11115))
-   Docs: Clarify that setting cache-keys overrides defaults ([#&#8203;11895](astral-sh/uv#11895))
-   Document our MSRV policy ([#&#8203;11898](astral-sh/uv#11898))
-   Fix reference to macOS cache path ([#&#8203;11845](astral-sh/uv#11845))
-   Fix typo in `no_default_groups` documentation and changelog ([#&#8203;11928](astral-sh/uv#11928))
-   Update the "Locking and syncing" page ([#&#8203;11647](astral-sh/uv#11647))
-   Update alternative indexes documentation to use new interface ([#&#8203;10826](astral-sh/uv#10826))

</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:eyJjcmVhdGVkSW5WZXIiOiIzOS4xODUuMCIsInVwZGF0ZWRJblZlciI6IjM5LjE4NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJSZW5vdmF0ZSBCb3QiXX0=-->
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.

unable use uv install onnxruntime package on intel64 macos

2 participants