astral-sh / uv

An extremely fast Python package installer and resolver, written in Rust.
https://astral.sh/
Apache License 2.0
11.72k stars 321 forks source link

Concurrent progress bars #3252

Open ibraheemdev opened 2 weeks ago

ibraheemdev commented 2 weeks ago

Summary

Implements concurrent progress bars. Resolves https://github.com/astral-sh/uv/issues/1209.

Test Plan

https://github.com/astral-sh/uv/assets/34988408/b21bdfbb-8817-4873-a65c-16c9e8c7c460

T-256 commented 2 weeks ago

could it be sorted (the largest at top)?

ibraheemdev commented 2 weeks ago

@T-256 I put the largest at the bottom which looks more natural, in my opinion.

https://github.com/astral-sh/uv/assets/34988408/52915706-5349-48b4-82e4-a72f8b1c9846

charliermarsh commented 2 weeks ago

The code generally looks good (well done) but need to find a bit of time to play with this myself to see if I have any feedback on the UX.

ibraheemdev commented 1 week ago

Just tested this on a large requirements file, I think any downloads <250kb shouldn't be displayed. The output changes too fast for it to be useful.

codspeed-hq[bot] commented 1 week ago

CodSpeed Performance Report

Merging #3252 will not alter performance

Comparing ibraheemdev:concurrent-progress-bar (1f035b4) with main (630d3fd)

Summary

✅ 12 untouched benchmarks

ibraheemdev commented 1 week ago

We should also probably provide a way to disable this output.

charliermarsh commented 1 week ago

We could consider making it opt-in. (That would also make it less risky to ship.)

zanieb commented 1 week ago

What's the risk, specifically? It seems improbable that this will break people's workflows right?

zanieb commented 1 week ago

We do have a preview option now though, if you really want to gate it. A dedicated setting might make sense too? but opt-in seems wrong for that.

charliermarsh commented 1 week ago

I think the risk is just that it’s overly verbose for most package installs and may require tuning. I would be fine shipping it under preview so we can get feedback on the UI/UX. I haven’t had a chance to play with it myself yet though.

zanieb commented 1 week ago

I don't mind iterating on display ux without opt-in, it feels much safer than other changes we make and we release very often.

zanieb commented 1 week ago

Is this waiting on any feedback?

charliermarsh commented 1 week ago

Yes, from me at least - not sure if others are planning to review.