Improving SwiftPM progress bars

Hi SwiftPM users!

I've been a bit frustrated by the current swift build progress animation and have been prototyping a more modern replacement. Heres a short demo video of it in action:

The implementation is not yet 100% complete, but a WIP PR can be found here: WIP: New and user selectable progress bars.

I've gotten early feedback from the SwiftPM team and Apple engineers who are excited to see the updated output come to life.

I'd love community feedback and contributions to help fully land this feature!

35 Likes

That looks awesome, even as-is it would be a great improvement. :tada:

wow pretty nice!

Looks great, but what kind of contributions are you looking for?

I built the earlier version of your pull with build-script a couple days ago, had to add those new files to the CMake config and a bunch of import _Concurrency everywhere because the official build turns that off. You might want to add those and run it through the CI, which will make it easier to try for those of us who build the whole toolchain.

Other than that, it works well when built and used natively on Android, looking forward to trying the latest toned-down version. :wink:

Looks great, but what kind of contributions are you looking for?

Good question! Everything helps as im doing this as one of (very) many side projects at work.

Concretely:

  • Implementation reviews, specifically focusing on the ANSI layer to start
  • Trying it out, finding bug, and ideally helping fix them!
  • Design feedback (though this is less interesting right now because its easy to change)
  • I'm also happy to setup a working session on webex/discord if anyone is really eager to dive in.
1 Like

Barring errors of some kind, or a verbose flag, I think all of the checkout preamble should also be part of the progress system. Additionally, some way to see the parallel work in the compact progress system would also be appreciated. These sorts of system tend to either be too simplistic (single progress for multiple parallel activities) or two complex (not everything in the progress system).

2 Likes

Looks great! It’s awesome to see work like this happening for SwiftPM.