uv
uv copied to clipboard
Performance: uv {add|remove|sync} on private registry slower and finding "stale response"
Doing any uv
command results in significantly slower times then just using pypi index url. Only change is using this private index url (pyproject.toml) like this:
[tool.uv]
index-url = "https://my-private-registry/repository/pypi/simple"
Using pypi (used curlify as an example public package but applies to any, requests, pandas etc):
(data_sci) billy@sa ~/data_sci % uv remove curlify
Resolved 217 packages in 482ms
Built data-sci @ file:///Users/billy/data_sci
Prepared 1 package in 489ms
Uninstalled 2 packages in 4ms
Installed 1 package in 3ms
- curlify==2.2.1
~ data-sci==0.0.0 (from file:///Users/billy/data_sci)
Using private registry (sonatype nexus if it matters):
(data_sci) billy@sa ~/data_sci % uv remove curlify
Resolved 217 packages in 4.62s
Built data-sci @ file:///Users/billy/data_sci
Prepared 1 package in 2.50s
Uninstalled 2 packages in 6ms
Installed 1 package in 2ms
- curlify==2.2.1
~ data-sci==0.0.0 (from file:///Users/billy/data_sci)
Debug logs with -vvv
for a package, here confluent-kafka
as an example. Seeing a lot of these Found stale response
logs.
0.457895s 6ms DEBUG uv_client::cached_client Found stale response for: https://my-private-registry/repository/pypi/simple/confluent-kafka/
0.457901s 6ms DEBUG uv_client::cached_client Sending revalidation request for: https://my-private-registry/repository/pypi/simple/confluent-kafka/
uv_client::cached_client::revalidation_request url="https://my-private-registry/repository/pypi/simple/confluent-kafka/"
...
0.963099s 511ms DEBUG uv_client::cached_client Found not-modified response for: https://my-private-registry/repository/pypi/simple/confluent-kafka/
uv_client::cached_client::refresh_cache file=/Users/billy/Library/Caches/uv/simple-v12/index/4dd2fc1dc4fa3d1d/confluent-kafka.rkyv
uv_resolver::version_map::from_metadata
uv_distribution::distribution_database::get_or_build_wheel_metadata dist=confluent-kafka==2.5.0
uv_client::registry_client::wheel_metadata built_dist=confluent-kafka==2.5.0
uv_client::cached_client::get_serde
uv_client::cached_client::get_cacheable
uv_client::cached_client::read_and_parse_cache file=/Users/billy/Library/Caches/uv/wheels-v1/index/4dd2fc1dc4fa3d1d/confluent-kafka/confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.msgpack
uv_client::cached_client::from_path_sync path="/Users/billy/Library/Caches/uv/wheels-v1/index/4dd2fc1dc4fa3d1d/confluent-kafka/confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.msgpack"
0.964585s 0ms DEBUG uv_client::cached_client Found stale response for: https://my-private-registry/repository/pypi/packages/confluent-kafka/2.5.0/confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.whl#sha256=db987d8953d0d58a28a455e43a1da74a0e9dec7a12a74f5abd85a7cb308aefd4
0.964598s 0ms DEBUG uv_client::cached_client Sending revalidation request for: https://my-private-registry/repository/pypi/packages/confluent-kafka/2.5.0/confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.whl#sha256=db987d8953d0d58a28a455e43a1da74a0e9dec7a12a74f5abd85a7cb308aefd4
uv_client::cached_client::revalidation_request url="https://my-private-registry/repository/pypi/packages/confluent-kafka/2.5.0/confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.whl#sha256=db987d8953d0d58a28a455e43a1da74a0e9dec7a12a74f5abd85a7cb308aefd4"
...
uv_resolver::resolver::choose_version package=confluent-kafka
1.104862s 0ms DEBUG uv_resolver::resolver Searching for a compatible version of confluent-kafka (>=2.3.0, <3.0.0)
1.104876s 0ms DEBUG uv_resolver::resolver Selecting: confluent-kafka==2.5.0 [preference] (confluent_kafka-2.5.0-cp312-cp312-macosx_10_9_x86_64.whl)
uv_resolver::resolver::get_dependencies_forking package=confluent-kafka, version=2.5.0
uv_resolver::resolver::get_dependencies package=confluent-kafka, version=2.5.0