ripgrep v0.8.0 Release Notes
Release Date: 2018-02-11 // about 6 years ago-
๐ This is a new minor version release of ripgrep that satisfies several popular ๐ feature requests (config files, search compressed files, true colors), fixes many bugs and improves the quality of life for ripgrep maintainers. This ๐ release also includes greatly improved documentation in the form of a ๐ [User Guide](GUIDE.md) and a [FAQ](FAQ.md).
๐ This release increases the minimum supported Rust version from 1.17 to 1.20.
๐ฅ BREAKING CHANGES:
Note that these are all very minor and unlikely to impact most users.
- ๐ง In order to support configuration files, flag overrides needed to be
rethought. In some cases, this changed ripgrep's behavior. For example,
in ripgrep 0.7.1,
rg foo -s -i
will perform a case sensitive search since the-s/--case-sensitive
flag was defined to always take precedence over the-i/--ignore-case
flag, regardless of position. In ripgrep 0.8.0 however, the override rule for all flags has changed to "the most recent flag wins among competing flags." That is,rg foo -s -i
now performs a case insensitive search. - The
-M/--max-columns
flag was tweaked so that specifying a value of0
now makes ripgrep behave as if the flag was absent. This makes it possible to set a default value in a configuration file and then override it. The previous ripgrep behavior was to suppress all matching non-empty lines. - In all globs,
[^...]
is now equivalent to[!...]
(indicating class negation). Previously,^
had no special significance in a character class. - ๐ฆ For downstream packagers, the directory hierarchy in ripgrep's archive
releases has changed. The root directory now only contains the executable,
README and license. There is now a new directory called
doc
which contains the man page (previously in the root), a user guide (new), a FAQ (new) and the CHANGELOG (previously not included in release). Thecomplete
directory remains the same.
๐ Feature enhancements:
- โ Added or improved file type filtering for Apache Avro, C++, GN, Google Closure Templates, Jupyter notebooks, man pages, Protocol Buffers, Smarty and Web IDL.
- FEATURE #196: Support a configuration file. See [the new user guide](GUIDE.md#configuration-file) for details.
- FEATURE #261: Add extended or "true" color support. Works in Windows 10! [See the FAQ for details.](FAQ.md#colors)
- FEATURE #539:
Search gzip, bzip2, lzma or xz files when given
-z/--search-zip
flag. - FEATURE #544:
Add support for line number alignment via a new
--line-number-width
flag. - FEATURE #654: Support linuxbrew in ripgrep's Brew tap.
- FEATURE #673:
Bring back
.rgignore
files. (A higher precedent, application specific version of.ignore
.) - FEATURE #676: Provide ARM binaries. WARNING: This will be provided on a best effort basis.
- FEATURE #709:
Suggest
-F/--fixed-strings
flag on a regex syntax error. - FEATURE #740:
Add a
--passthru
flag that causes ripgrep to print every line it reads. - FEATURE #785: Overhaul documentation. Cleaned up README, added user guide and FAQ.
- FEATURE 7f5c07:
Add hidden flags for convenient overrides (e.g.,
--no-text
).
๐ Bug fixes:
- BUG #553: Permit flags to be repeated.
- BUG #633: Fix a bug where ripgrep would panic on Windows while following symlinks.
- BUG #649:
Fix handling of
!**/
in.gitignore
. - BUG #663:
BREAKING CHANGE: Support
[^...]
glob syntax (as identical to[!...]
). - BUG #693: Don't display context separators when not printing matches.
- BUG #705: Fix a bug that prevented ripgrep from searching OneDrive directories.
- BUG #717:
Improve
--smart-case
uppercase character detection. - BUG #725: Clarify that globs do not override explicitly given paths to search.
- BUG #742:
Write ANSI reset code as
\x1B[0m
instead of\x1B[m
. - BUG #747:
Remove
yarn.lock
from YAML file type. - BUG #760:
ripgrep can now search
/sys/devices/system/cpu/vulnerabilities/*
files. - BUG #761:
Fix handling of gitignore patterns that contain a
/
. - BUG #776:
BREAKING CHANGE:
--max-columns=0
now disables the limit. - BUG #779:
Clarify documentation for
--files-without-match
. - BUG #780, BUG #781: Fix bug where ripgrep missed some matching lines.
๐ง Maintenance fixes:
- MAINT #772:
Drop
env_logger
in favor of simpler logger to avoid many new dependencies. - MAINT #772: Add git revision hash to ripgrep's version string.
- MAINT #772: (Seemingly) improve compile times.
- MAINT #776: Automatically generate man page during build.
- MAINT #786:
Remove use of
unsafe
inglobset
. :tada: - MAINT e9d448: Add an issue template (has already drastically improved bug reports).
- MAINT ae2d03:
Remove the
compile
script.
Friends of ripgrep:
I'd like to extend my gratitude to @balajisivaraman for their recent hard work in a number of areas, and in particular, for implementing the "search compressed files" feature. Their work in sketching out a specification for that and other work has been exemplary.
Thanks @balajisivaraman!
- ๐ง In order to support configuration files, flag overrides needed to be
rethought. In some cases, this changed ripgrep's behavior. For example,
in ripgrep 0.7.1,