nextest-filtering
Filtering DSL for cargo-nextest
0.22.0
6.9M downloads/mo
#3826 most downloaded on crates.io
nextest-rs/nextest
What this package is like to depend on
Last release 19 days ago
04 Aug 2026
Release timing varies
gaps range from 2 weeks to 5 months
Nearly every release is documented
notes for 29 of 29 stable releases
Nothing withdrawn
no release was ever pulled
4 years old
29 releases · first in 2022
9 releases in the last 12 months
see the full history below
Release timeline
29 releases · Apr 2022 to Aug 2026Releases
latest 29-
0.22.004 Aug 2026 -
0.21.305 Jul 2026 -
0.21.205 Jul 2026Release notes
Open source →Added
A top-level
FILTERSET_REFERENCE_MDconstant contains a filterset reference in Markdown format.Release notes
Open source →Added
A top-level
FILTERSET_REFERENCE_MDconstant contains a filterset reference in Markdown format. -
0.21.126 May 2026Release notes
Open source →Fixed
- Filterset expressions like
not(test(foo)),all()and(test(foo)), andall()or(test(foo)), wherenot,and, ororis immediately followed by an opening parenthesis, now parse correctly. Previously, a separating space was required. (#3367)
- Filterset expressions like
-
0.21.014 Apr 2026Release notes
Open source →Added
- A new
group()filterset predicate for CLI filter expressions. This allows filtering tests by their assigned test group. For example,group(my-group)matches tests in themy-groupgroup, andnot group(@global)matches tests in any non-global group. - A new
KnownGroupstype for validating group names during filterset compilation.
Changed
nextest-metadataupdated to 0.14.1.
- A new
-
0.20.020 Mar 2026 -
0.19.017 Mar 2026 -
0.18.001 Jan 2026 -
0.17.030 Oct 2025Release notes
Open source →Added
- Support for filtering test archives by binary. The
cargo nextest archivecommand now accepts filter expressions, though test-level predicates (liketest(...)) are not supported since binaries are not executed during archiving. - New method
FiltersetLeaf::is_runtime_only()to check if a filter leaf requires runtime evaluation.
Changed
- MSRV updated to Rust 1.87.
- Error messages improved for banned predicates in different contexts.
- Support for filtering test archives by binary. The
-
0.16.005 Jun 2025Release notes
Open source →Added
ParsedLeafis now available as a public API.
Changed
- MSRV updated to Rust 1.85.
-
0.15.024 Feb 2025 -
0.14.010 Feb 2025Release notes
Open source →Changed
- Internal dependency update: winnow updated to 0.7. Thanks to Ed Page for the update!
-
0.13.015 Jan 2025 -
0.12.028 Aug 2024Release notes
Open source →Changed
- Renamed references from "default-set" to "default-filter" to match cargo-nextest changes.
-
0.11.025 Aug 2024 -
0.10.023 Aug 2024Release notes
Open source →Added
- New APIs:
CompiledExpr::matches_binaryandmatches_test. - Support for parsing default sets and the
default()predicate.
Changed
FilteringExpr::parsenow takes aParseContext.- The
matches_binaryandmatches_testfunctions now take anEvalContext. - MSRV updated to Rust 1.75.
- New APIs:
-
0.9.023 May 2024 -
0.8.005 Mar 2024Release notes
Open source →Changed
- MSRV updated to Rust 1.73.
- Parser combinator library changed from nom to winnow. Thanks @epage for creating winnow, and for the contribution!
-
0.7.109 Jan 2024Release notes
Open source →Fixed
Internal cleanups: remove reliance on Incomplete. Thanks @epage for the contribution!
-
0.7.010 Dec 2023Release notes
Open source →Changed
nextest-metadataupdated to 0.10.
Misc
- The
.cratefiles uploaded to crates.io now contain theLICENSE-APACHEandLICENSE-MITlicense files. Thanks @musicinmybrain for your first contribution!
-
0.6.003 Dec 2023Release notes
Open source →Added
- Support for glob matchers.
- Support for a new
binary_idpredicate.
For more information, see the changelog for cargo-nextest 0.9.64.
-
0.5.122 Oct 2023 -
0.5.026 Jun 2023 -
0.4.015 May 2023Release notes
Open source →Changed
FilteringExprnow carries three forms of an expression:input, which is the raw input as provided.parsed, which represents a parsed expression that hasn't yet been evaluated against a specificPackageGraph. This is a newly public typeParsedExpr.compiled, which is an expression that has been compiled against aPackageGraph. This is of typeCompiledExpr, which is whatFilteringExprused to be.
- Newlines are now supported within expressions, for e.g. multiline TOML for nextest's overrides.
- A clean, well-formatted representation of a parsed expression can now be generated via the
Displayimpl onParsedExpr. - The parser has been extensively fuzzed. No bugs were found.
- MSRV updated to Rust 1.66.
-
0.3.023 Nov 2022 -
0.2.214 Oct 2022Release notes
Open source → -
0.2.130 Jul 2022 -
0.2.013 Jul 2022Release notes
Open source →Added
- The expression language supports several new predicates:
kind(name-matcher): include all tests in binary kinds (e.g.lib,test,bench) matchingname-matcher.binary(name-matcher): include all tests in binary names matchingname-matcher.platform(host)orplatform(target): include all tests that are built for the host or target platform, respectively.
- It is now possible to evaluate a query without knowing the name of the test. The result is evaluated as a three-valued logic (Kleene K3), and is returned as an
Option<bool>whereNoneindicates the unknown state.
Changed
- The evaluator now takes a
TestQuerystruct, making it easier to add more parameters in the future. - MSRV updated to Rust 1.59.
- The expression language supports several new predicates:
-
0.1.017 Apr 2022