volta
volta copied to clipboard
Bump indicatif from 0.16.2 to 0.17.0
Bumps indicatif from 0.16.2 to 0.17.0.
Release notes
Sourced from indicatif's releases.
0.17.0
indicatif is one of the most popular terminal progress bar libraries in the Rust ecosystem. More than a year after the 0.16.0 release, we're happy to finally release 0.17. In the past year, the indicatif team has grown to two maintainers, since
@chris-laplantejoined@djcas a maintainer. We also now have a Discord channel.Apart from many small API additions and fixes, particular effort has gone into reducing the overhead for reporting progress. To this end, we've removed some of the explicit rate limiting APIs in favor of a single refresh rate in the
ProgressDrawTarget. We now set a rate limit by default (50ms) that should drastically reduce overhead for most applications while being more than enough for most terminal applications. Additionally, position updates are now synchronized by using atomic integer APIs instead of a mutex. In a basic test the simplest possible progress bar is about 95x faster on 0.17.0 compared to 0.16.2.We've made many changes to the way
MultiProgresscollections work. You no longer need to explicitlyjoin()theMultiProgress, there are more ways to insert new progress bars into the collection, and many correctness improvements have been made, in part to more effort having gone into testing the crate.Additionally, we've reduced our dependency footprint, removing lazy_static and regex from our required dependencies.
Additions
- Add ability to add custom template keys (#301, thanks to
@redzic)- Allow custom template keys to maintain state (#420, thanks to
@1Dragoon)- Add
HumanCountand template keys to print more humane position/length (#340, thanks to@dabreegster)- Remove extra new line after progress bar (#338 with fixes in #343, #350 and #356, thanks to
@sigmaSd)- Implement
ProgressBar::suspend()(#333, thanks to@ishitatsuyuki)- Add
ProgressIterator::progress_with_style()(#306, thanks to@LeCyberDucky)- Pass through
stream_position()inProgressBarIter(#309, thanks to@rlee287)- Add
AsyncRead/AsyncWritesupport forProgressBar(#308, thanks to@x0f5c3)- Add
AsyncBufReadimplementation forProgressBarIterator(#315, thanks to@x0f5c3)- Add builder methods for
ProgressBarIter(#337, thanks to@chubei-oppen)- Allow overriding
ProgressBarelapsed time (#325, thanks to@zhaofengli)- Add a space between numbers and their units (#345, thanks to
@firasuke)- Add
ProgressBar::style()to enable access to the current style (#396, thanks to@andrewchambers)- Account for alignment when truncating (#402)
Performance
- Use atomics to track the current position (#390 with follow up in #404, #406, #414)
- Faster template expansion (without the regex dependency; #319)
- Draw progress bars into draw states (#361, with follow up in #371)
- Remove draw limiting from the progress bar state (#380)
- Simplify
ProgressDrawTargetto reduce in-memory size (#277, thanks to@mibac138)
MultiProgresschanges
- Run
MultiProgressdrawing on the main thread (#231 and #284, thanks to@marienzand@aj-bagwell)- Enable inserting progress bars at the end in
MultiProgress(#326, thanks to@omjadas)- Add
insert_after()/insert_before()methods onMultiProgress(#331, with follow up in #424)MultiProgress: addprintln()andsuspend()methods (#351)MultiProgress: prune zombie progress bars (#438, with follow up in #446)- Make
is_hidden()work forMultiProgress(#430)- Allow vertical alignment in
MultiProgressbars (#295, thanks to@nlinker)Fixes
- Expand tabs to spaces to fix formatting (#150)
- Enable 256 color support in template strings (#283, thanks to
@MoSal)- Fix potential panic for hidden draw targets (#286, thanks to
@matthiasbeyer)ProgressFoldershouldn't finish progress bars on completion (#290, thanks to@mibac138)
... (truncated)
Commits
39ebd5fAdd a Discord badge to the README7c96dcdBump version to 0.17.01d47e1dstateful progress tracking4cbdcbfExpand tabs => configurable number of spaces to fix #150 (#423)88d87d4modify zombie handling code so it doesn't need to allocaf5d925add render tests for #4260f33289MultiProgress: prune 'zombie' progress bars; fixes #426f41eaa9add InMemoryTerm::reset()de9862bfix: first style of wide elements was ignored9cb25a7add sanity check to ensure tests using Ticker acquire the global test lock- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)