PackageTrack
Sign in Get early access

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 2026
2023 2024 2025 2026
Release Pre-release

Releases

latest 29
  1. 0.22.0 04 Aug 2026
    Release notes

    Changed

    • nextest-metadata updated to 0.15.0.
    Open source →
    Release notes

    Changed

    • nextest-metadata updated to 0.15.0.
    Open source →
  2. 0.21.3 05 Jul 2026
    Release notes

    Changed

    Minor updates to the filterset reference.

    Open source →
    Release notes

    Changed

    Minor updates to the filterset reference.

    Open source →
  3. 0.21.2 05 Jul 2026
    Release notes

    Added

    A top-level FILTERSET_REFERENCE_MD constant contains a filterset reference in Markdown format.

    Open source →
    Release notes

    Added

    A top-level FILTERSET_REFERENCE_MD constant contains a filterset reference in Markdown format.

    Open source →
  4. 0.21.1 26 May 2026
    Release notes

    Fixed

    • Filterset expressions like not(test(foo)), all()and(test(foo)), and all()or(test(foo)), where not, and, or or is immediately followed by an opening parenthesis, now parse correctly. Previously, a separating space was required. (#3367)
    Open source →
  5. 0.21.0 14 Apr 2026
    Release notes

    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 the my-group group, and not group(@global) matches tests in any non-global group.
    • A new KnownGroups type for validating group names during filterset compilation.

    Changed

    • nextest-metadata updated to 0.14.1.
    Open source →
  6. 0.20.0 20 Mar 2026
    Release notes

    Changed

    • winnow updated to 1.0.0.
    Open source →
  7. 0.19.0 17 Mar 2026
    Release notes

    Changed

    • nextest-metadata updated to 0.14.0.
    • MSRV updated to Rust 1.91.
    Open source →
  8. 0.18.0 01 Jan 2026
    Release notes

    Changed

    • TestQuery::test_name is now a &TestCaseName instead of &str.
    Open source →
  9. 0.17.0 30 Oct 2025
    Release notes

    Added

    • Support for filtering test archives by binary. The cargo nextest archive command now accepts filter expressions, though test-level predicates (like test(...)) 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.
    Open source →
  10. 0.16.0 05 Jun 2025
    Release notes

    Added

    • ParsedLeaf is now available as a public API.

    Changed

    • MSRV updated to Rust 1.85.
    Open source →
  11. 0.15.0 24 Feb 2025
    Release notes

    Changed

    • Added support for rejecting unknown binary IDs.
    Open source →
  12. 0.14.0 10 Feb 2025
    Release notes

    Changed

    • Internal dependency update: winnow updated to 0.7. Thanks to Ed Page for the update!
    Open source →
  13. 0.13.0 15 Jan 2025
    Release notes

    Changed

    • MSRV updated to Rust 1.81.
    • Internal dependency updates.
    Open source →
  14. 0.12.0 28 Aug 2024
    Release notes

    Changed

    • Renamed references from "default-set" to "default-filter" to match cargo-nextest changes.
    Open source →
  15. 0.11.0 25 Aug 2024
    Release notes

    Changed

    • Types renamed from FilteringExpr to Filterset.
    Open source →
  16. 0.10.0 23 Aug 2024
    Release notes

    Added

    • New APIs: CompiledExpr::matches_binary and matches_test.
    • Support for parsing default sets and the default() predicate.

    Changed

    • FilteringExpr::parse now takes a ParseContext.
    • The matches_binary and matches_test functions now take an EvalContext.
    • MSRV updated to Rust 1.75.
    Open source →
  17. 0.9.0 23 May 2024
    Release notes

    Changed

    • MSRV updated to Rust 1.74.
    • nextest-metadata updated to 0.11.0.
    Open source →
  18. 0.8.0 05 Mar 2024
    Release notes

    Changed

    • MSRV updated to Rust 1.73.
    • Parser combinator library changed from nom to winnow. Thanks @epage for creating winnow, and for the contribution!
    Open source →
  19. 0.7.1 09 Jan 2024
    Release notes

    Fixed

    Internal cleanups: remove reliance on Incomplete. Thanks @epage for the contribution!

    Open source →
  20. 0.7.0 10 Dec 2023
    Release notes

    Changed

    • nextest-metadata updated to 0.10.

    Misc

    • The .crate files uploaded to crates.io now contain the LICENSE-APACHE and LICENSE-MIT license files. Thanks @musicinmybrain for your first contribution!
    Open source →
  21. 0.6.0 03 Dec 2023
    Release notes

    Added

    • Support for glob matchers.
    • Support for a new binary_id predicate.

    For more information, see the changelog for cargo-nextest 0.9.64.

    Open source →
  22. 0.5.1 22 Oct 2023
    Release notes

    Changed

    • Internal dependency updates.
    • MSRV updated to Rust 1.70.
    Open source →
  23. 0.5.0 26 Jun 2023
    Release notes

    Changed

    • guppy updated to 0.17.0.
    Open source →
  24. 0.4.0 15 May 2023
    Release notes

    Changed

    • FilteringExpr now 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 specific PackageGraph. This is a newly public type ParsedExpr.
      • compiled, which is an expression that has been compiled against a PackageGraph. This is of type CompiledExpr, which is what FilteringExpr used 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 Display impl on ParsedExpr.
    • The parser has been extensively fuzzed. No bugs were found.
    • MSRV updated to Rust 1.66.
    Open source →
  25. 0.3.0 23 Nov 2022
    Release notes

    Changed

    • guppy updated to 0.15.0.
    • MSRV updated to Rust 1.62.
    Open source →
  26. 0.2.2 14 Oct 2022
    Release notes

    Internal

    • Updated private dependency recursion to 0.3.0. Thanks Inanna for your contribution!
    Open source →
  27. 0.2.1 30 Jul 2022
    Release notes

    Internal

    • Evaluation now uses a stack machine via the recursion crate. Thanks Inanna for your first contribution!
    Open source →
  28. 0.2.0 13 Jul 2022
    Release notes

    Added

    • The expression language supports several new predicates:
      • kind(name-matcher): include all tests in binary kinds (e.g. lib, test, bench) matching name-matcher.
      • binary(name-matcher): include all tests in binary names matching name-matcher.
      • platform(host) or platform(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> where None indicates the unknown state.

    Changed

    • The evaluator now takes a TestQuery struct, making it easier to add more parameters in the future.
    • MSRV updated to Rust 1.59.
    Open source →
  29. 0.1.0 17 Apr 2022
    Release notes

    Initial release.

    Open source →

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive