nextest
nextest 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-laplante
joined@djc
as 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
MultiProgress
collections 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
HumanCount
and 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
/AsyncWrite
support forProgressBar
(#308, thanks to@x0f5c3
)- Add
AsyncBufRead
implementation forProgressBarIterator
(#315, thanks to@x0f5c3
)- Add builder methods for
ProgressBarIter
(#337, thanks to@chubei-oppen
)- Allow overriding
ProgressBar
elapsed 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
ProgressDrawTarget
to reduce in-memory size (#277, thanks to@mibac138
)
MultiProgress
changes
- Run
MultiProgress
drawing on the main thread (#231 and #284, thanks to@marienz
and@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
MultiProgress
bars (#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
)ProgressFolder
shouldn't finish progress bars on completion (#290, thanks to@mibac138
)
... (truncated)
Commits
39ebd5f
Add a Discord badge to the README7c96dcd
Bump version to 0.17.01d47e1d
stateful progress tracking4cbdcbf
Expand tabs => configurable number of spaces to fix #150 (#423)88d87d4
modify zombie handling code so it doesn't need to allocaf5d925
add render tests for #4260f33289
MultiProgress: prune 'zombie' progress bars; fixes #426f41eaa9
add InMemoryTerm::reset()de9862b
fix: first style of wide elements was ignored9cb25a7
add 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 rebase
will rebase this PR -
@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it -
@dependabot merge
will merge this PR after your CI passes on it -
@dependabot squash and merge
will squash and merge this PR after your CI passes on it -
@dependabot cancel merge
will cancel a previously requested merge and block automerging -
@dependabot reopen
will reopen this PR if it is closed -
@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually -
@dependabot ignore this major version
will 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 version
will 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 dependency
will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)