30 KiB
Changelog
This project follows semantic versioning.
Possible log types:
[added]for new features.[changed]for changes in existing functionality.[deprecated]for once-stable features removed in upcoming releases.[removed]for deprecated features removed in this release.[fixed]for any bug fixes.[security]to invite users to upgrade in case of vulnerabilities.[docs]for documentation changes.[chore]for maintenance work.
v1.5.1, v1.6.2, v1.7.3 (2026-01-25)
Today I am releasing three patch updates for outdated versions of tealdeer. They are minimal patches for Linux distributions that ship old versions of tealdeer which recently broke due to an upstream change. If you can choose freely which version of tealdeer to use, I recommend using the latest version of tealdeer, 1.8.1. For more details, see the "Notes to package maintainers" section below.
All three updates contain only a single change compared to their respective
previous versions which changes the ARCHIVE_URL constant used for updating the
page cache. The reason for this change is that the upstream tldr-pages
repository shut down the domain that clients were previously required to use.
Note that this issue is already fixed in tealdeer 1.8.0 where we introduced a config file option for changing the URL used at runtime. The versions 1.8.0 and 1.8.1 also use the new domain of the tldr-pages archive by default, so no action is needed for users of those versions.
Changes
- [fixed] Update
ARCHIVE_URL
Notes to package maintainers
I have not updated the lockfile for any of these releases, so the locked
dependency versions are still the same as they were for the previous release in
the respective v1.x series. Updating the lockfile for tealdeer 1.5.0 to remove
any cargo audit warnings while also maintaining compatibility with Rust 1.54
also brings larger changes through transitive dependencies, which contradicts my
plan to make this update easy to plug into existing build pipelines.
If you want to build / distribute tealdeer v1.5.1, v1.6.2, or v1.7.3, please use an up to date Rust toolchain to permit updates to newer versions of (transitive) dependencies. Do not use the lockfile, instead update to the newest available dependency versions.
For the same reason, there are no artifacts attached to the GitHub releases of these versions.
v1.8.1 (2025-11-11)
This patch release tweaks the enabled features for ureq, the library we use to perform HTTP requests when updating the cache. In particular, support for socks proxies is now enabled.
Changes:
- [added] Enable ureq's socks-proxy feature (#451)
v1.8.0 (2025-10-03)
One year and one day have passed since tealdeer version 1.7.0 was released, so it's time for an update! Tealdeer 1.8 comes with a complete rewrite of the page cache and contains many long awaited improvements around it.
Firstly, tealdeer now supports language-specific downloads. This means that only the pages matching the configured languages are downloaded when updating the cache. The languages used for searching pages can be configured separately to the ones used for updating, so it is possible to download pages in languages that are not usually queried.
Next to configuring which languages are used for searching, it is now also possible to specify which platforms are used in the config file. Importantly, the default behavior for page search has changed so that all platforms are searched if no page is found for the platform that tealdeer is running on. To restore the behavior of tealdeer 1.7, users should set
[search]
platforms = ["current", "common"]
in their config file.
Coming back to updating, the default build configuration of tealdeer now includes multiple TLS backends. This means that tealdeer does not have to be rebuilt to try out a different TLS backend. The used backend can be chosen in the config file. By default, tealdeer comes with support for rustls using webpki certificates or system certificates. Native TLS is supported, but not enabled by default to avoid build troubles with OpenSSL and musl.
For details, please refer to the user documentation.
Changes:
- [added] Resolve paths in config
[directories]relative to the config directory (#306) - [added] Add
commonplatform to CLI (#401) - [added] Add configuration option for
archive_source(#337) - [added] Allows configuring TLS backend (#386)
- [added] Add args:
--edit-pageand--edit-patch(#388) - [added] Add an option to specify a custom config file to be used (#422)
- [added] Upload binaries from build step as artifact (#423)
- [added] Add
search.languagesandupdates.download_languagessettings (#430) - [added] Add
search.platformsconfig option and search all platforms by default (#435) - [added] Add
display.show_titleoption to display command titles in output (#439) - [chore] Various test improvements (#399)
- [chore] Add tests for osx/macos alias (#407)
- [chore] Move most of
maintotry_main(#400) - [chore] Only create a single temporary directory in integration tests (#411)
- [chore] Replace reqwest with ureq (#417)
- [chore] Introduce Language struct (#425)
- [chore] Cache rewrite (#416)
- [chore] Allow references in
Config(#429) - [docs] Highlight code examples in user docs (#440)
- [removed] Remove native-tls from default feature set (#436)
Contributors to this version:
Thanks!
Notes to package maintainers
- The MSRV has been bumped to 1.85.
- Consider whether you want to include the
native-tlsfeature in your build of tealdeer. The feature is disabled for the binaries in the GitHub release because we target musl, but it might work out of the box for your distribution. - We have added the
ignore-online-testsfeature to automatically mark all tests that require an internet connection as skipped, so you can use this feature instead of maintaining a list of these tests yourself.
v1.7.2 (2025-03-18)
This patch release updates the zip dependency to mitigate a potential security
vulnerability. A successful attack against tealdeer users would require
manipulation of the tldr pages archive downloaded during an update. As the
archive is downloaded from a trusted source (the tldr-pages organization), it
seems very unlikely that running a version of tealdeer prior to 1.7.2 poses a
security risk. Nevertheless, it cannot hurt to rule out any chance of an attack
by updating tealdeer to version 1.7.2.
For more details, please see https://github.com/advisories/GHSA-94vh-gphv-8pm8.
- [security] Require
zip >= 2.3.0 - [chore] Run CI on backport branches and on dispatch
v1.7.1 (2024-11-14)
This patch release updates the yansi dependency to version 1, so that the
previous versions of yansi can be removed from the package sets of Linux
distributions. This change should not impact the behavior of tealdeer.
Changes:
- [chore] Upgrade yansi: 0.5.1 -> 1.0.1 (#389)
Contributors to this version:
Thanks!
v1.7.0 (2024-10-02)
It's been 24 months since the last release, time for tealdeer 1.7.0! Thanks to 16 individual contributors, a few nice changes and features are included in this release.
One change is that you can query multiple platforms at once. For example:
tldr --platform openbsd --platform linux df
This will show the df page for OpenBSD (if available), followed by Linux (if
available), with fallback to the current platform on which tealdeer runs.
What's that openbsd thing up there? Yes, there's now support for the BSD
platforms freebsd, netbsd and openbsd.
And since we're already talking about platform support: Our binary releases
now include builds for ARM64 (aka aarch64) on macOS (Apple Silicon, M1/M2/M3)
and Linux. (Keep in mind that binary releases are generated in CI and are
unsigned. For a trusted build, please compile from source.)
There's also a breaking change for the folks using custom pages and
patches: These
files now use a .md extension. Old files will continue to work, but will
result a deprecation warning being printed when used.
On a personal note, this will be the last release from me (Danilo) as primary maintainer of tealdeer. For details, see #376.
Changes:
- [added] Allow querying multiple platforms (#300)
- [added] Add BSD platform support (#354)
- [added] Allow building with native-tls in addition to rustls (#303)
- [changed] Change custom page files to use a
.mdfile extension (#322) - [changed] Update to clap v4 for doing command line parsing (#298)
- [changed] Performance optimization in LineIterator (#314)
- [changed] Performance optimizations by tweaking Cargo flags (#355)
- [changed] Include completions in published crate (#333)
- [changed] Minimal supported Rust version is now 1.75 (#298)
- [fixed] Fix bash/zsh/fish completions when cache is empty (#327, #331)
- [docs] Publish docs only when tagging a release (#362)
- [docs] List Scoop and Debian packages (#305, #315)
- [docs] Add "Tips and Tricks" chapter to user manual (#342)
- [docs] Various docs improvements (#293)
- [chore] Improvements to CI workflows (#324)
- [chore] Update Cargo.toml license field following SPDX 2.1 (#336)
- [chore] Dependency updates
Contributors to this version:
- Adam Henley
- Andrea Frigido
- Blair Noctis
- Danilo Bargen
- Felix Yan
- Iliia Maleki
- JJ Style
- K.B.Dharun Krishna
- Linus Walker
- Mohit Raj
- Nicolai Fröhlich
- Niklas Mohrin
- @qknogxxb
- @tveness
- Y.D.X.
- Zacchary Dempsey-Plante
Thanks!
v1.6.1 (2022-10-24)
Changes:
Contributors to this version:
Thanks!
v1.6.0 (2022-10-02)
It's been 9 months since the last release already! This is not a huge update
feature-wise, but it still contains a few nice new improvements and a few
bugfixes, contributed by 11 different people. The most important new feature is
probably the option to override the cache directory through the config file.
The TEALDEER_CACHE_DIR env variable is now deprecated.
A note to packagers: Shell completions have been moved to the completion/
subdirectory! Packaging scripts might need to be updated.
Changes:
- [added] Allow overriding cache directory through config (#276)
- [added] Add
--no-auto-updateCLI flag (#257) - [added] Show note about auto-updates when cache is missing (#254)
- [added] Add support for android platform (#274)
- [added] Add custom pages to list output (#285)
- [fixed] Cache: Return error if HTTP client cannot be created (#247)
- [fixed] Handle cache download errors (#253)
- [fixed] Do not page output of
tldr --update(#231) - [fixed] Create macOS release builds with bundled root certificates (#272)
- [fixed] Clean up and fix shell completions (#262)
- [deprecated] The
TEALDEER_CACHE_DIRenv variable is now deprecated (#276) - [removed] The
--config-pathcommand was removed, use--show-pathsinstead (#290) - [removed] The
-o/--oscommand was removed, use-p/--platforminstead (#290) - [removed] The
-m/--markdowncommand was removed, use-r/--rawinstead (#290) - [chore] Move shell completion scripts to their own directory (#259)
- [chore] Update dependencies (#271, #287, #291)
- [chore] Use anyhow for error handling (#249)
- [chore] Switch to Rust 2021 edition (#284)
Contributors to this version:
- @bagohart
- @cyqsimon
- Danilo Bargen
- Danny Mösch
- Evan Lloyd New-Schmidt
- Hans Gaiser
- Kian-Meng Ang
- Marcin Puc
- Niklas Mohrin
- Olav de Haas
- Simon Perdrisat
Thanks!
v1.5.0 (2021-12-31)
This is quite a big release with many new features. In the 15 months since the last release, 59 pull requests from 16 different contributors were merged!
The highlights:
- Custom pages and patches: You can now create your own local-only tldr pages. But not just that, you can also extend existing upstream pages with your own examples. For more details, see the docs.
- Change argument parsing from docopt to clap: We replaced docopt.rs as argument parsing library with clap v3, resulting in almost 1 MiB smaller binaries and a 22% speed increase when rendering a tldr page.
- Multi-language support: You can now override the language with
-L/--language. - A new
--show-pathscommand: By runningtldr --show-paths, you can list the currently used config dir, cache dir, upstream pages dir and custom pages dir. - Compliance with the tldr client spec v1.5: We renamed
-o/--osto-p/--platformand implemented transparent lowercasing of the page names. - Docs: The README based documentation has reached its limits. There are now new mdbook based docs over at tealdeer-rs.github.io/tealdeer/, we hope these make using tealdeer easier. Of course, documentation improvements are welcome! Also, if you're confused about how to use a certain feature, feel free to open an issue, this way we can improve the docs.
Note that the MSRV (Minimal Supported Rust Version) of the project changed:
When publishing a tealdeer release, the Rust version required to build it should be stable for at least a month.
Changes:
- [added] Support custom pages and patches (#142)
- [added] Multi-language support (#125, #161)
- [added] Add support for ANSI code and RGB colors (#148)
- [added] Implement new
--show-pathscommand (#162) - [added] Support for italic text styling (#197)
- [added] Allow SunOS platform override (#176)
- [added] Automatically lowercase page names before lookup (#227)
- [added] Add "macos" alias for "osx" (#215)
- [fixed] Consider only standalone command names for styling (#157)
- [fixed] Fixed and improved zsh completions (#168)
- [fixed] Create cache directory path if it does not exist (#174)
- [fixed] Use default style if user-defined style is missing (#210)
- [changed] Switch from docopt to clap for argument parsing (#108)
- [changed] Switch from OpenSSL to Rustls (#187)
- [changed] Performance improvements (#187)
- [changed] Send all progress logging messages to stderr (#171)
- [changed] Rename
-o/--osto-p/--platform(#217) - [changed] Rename
-m/--markdownto-r/--raw(#108) - [deprecated] The
--config-pathcommand is deprecated, use--show-pathsinstead (#162) - [deprecated] The
-o/--oscommand is deprecated, use-p/--platforminstead (#217) - [deprecated] The
-m/--markdowncommand is deprecated, use-r/--rawinstead (#108) - [docs] New docs at tealdeer-rs.github.io/tealdeer/
- [docs] Add comparative benchmarks with hyperfine (#163, README)
- [chore] Download tldr pages archive from their website, not from GitHub (#213)
- [chore] Bump MSRV to 1.54 and change MSRV policy (#190)
- [chore] The
masterbranch was renamed tomain - [chore] All release binaries are now generated in CI. Binaries for macOS and Windows are also provided. (#240)
- [chore] Update all dependencies
Contributors to this version:
- @bl-ue
- Cameron Tod
- Dalton
- Danilo Bargen
- Danny Mösch
- Marcin Puc
- Michael Cho
- MS_Y
- Niklas Mohrin
- Rithvik Vibhu
- rnd
- Sondre Nilsen
- Tomás Farías Santana
- Tsvetomir Bonev
- @tveness
- ギャラ
Thanks!
Last but not least, Niklas Mohrin has joined the project as co-maintainer. Thank you for your help!
v1.4.1 (2020-09-04)
- [fixed] Syntax error in zsh completion file (#138)
Contributors to this version:
Thanks!
v1.4.0 (2020-09-03)
- [added] Configurable automatic cache updates (#115)
- [added] Improved color detection and support for
--colorargument andNO_COLORenv variable (#111) - [changed] Make
--listoption comply with official spec (#112) - [changed] Move cache age warning to stderr (#113)
Contributors to this version:
- Atul Bhosale
- Danilo Bargen
- Danny Mösch
- Ilaï Deutel
- Kornel
- @LovecraftianHorror
- @michaeldel
- Niklas Mohrin
Thanks!
v1.3.0 (2020-02-28)
- [added] New config option for compact output mode (#89)
- [added] New -m/--markdown parameter for raw rendering (#95)
- [added] Provide zsh autocompletion (#86)
- [changed] Require at least Rust 1.39 to build (previous: 1.32)
- [changed] Switch to GitHub actions, CI testing now covers Windows as well (#99)
- [changed] Tweak the "outdated cache" warning message (#97)
- [changed] General maintenance: Upgrade dependencies, fix linter warnings
- [fixed] Fix Fish autocompletion on macOS (#87)
- [fixed] Fix compilation on Windows by disabling pager (#99)
Contributors to this version:
- Bruno Heridet
- Danilo Bargen
- Hugo Locurcio
- Isak Johansson
- James Doyle
- Jesús Trinidad Díaz Ramírez
- @korrat
- Marc-André Renaud
Thanks!
v1.2.0 (2019-08-10)
- [added] Add Windows support (#77)
- [added] Add support for spaces in commands (#75)
- [added] Add support for Fish-based autocompletion (#71)
- [added] Add pager support (#44)
- [added] Print detected OS with
-v/--version(#57) - [changed] OS detection: Treat BSDs as "osx" (#58)
- [changed] Move from curl to reqwest (#61)
- [changed] Move to Rust 2018, require Rust 1.32 (#69 / #84)
- [fixed] Add (back) support for proxies (#68)
Contributors to this version:
- Bar Hatsor
- Danilo Bargen
- Gabriel Martinez
- Ivan Smirnov
- Jan Christian Grünhage
- Jonathan Dahan
- Juan D. Vega
- Natalie Pendragon
- Raphael Das Gupta
Thanks!
v1.1.0 (2018-10-22)
- [added] Configuration file support (#43)
- [added] Allow configuration of colors/style (#43)
- [added] New
--quiet/-qoption to suppress most non-error messages (#48) - [changed] Require at least Rust 1.28 to build (previous: 1.19)
- [fixed] Fix building on systems with openssl 1.1.1 (#47)
Contributors to this version:
Thanks!
v1.0.0 (2018-02-11)
- [added] Include bash completions (#34)
- [changed] Update all dependencies
- [changed] Require at least Rust 1.19 to build (previous: 1.9)
- [changed] Improved unit/integration testing
v0.4.0 (2016-11-25)
- [added] Support for new page format
- [changed] Update all dependencies
v0.3.0 (2016-08-01)
- [changed] Update curl dependency
v0.2.0 (2016-04-16)
- First crates.io release