Changelog
All notable changes to the fnmatch-regex project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
0.3.0 - 2026-02-19
Semi-incompatible changes
- Bump MSRV to 1.85.
- Add the
regexfeature, enabled by default; it enables:- the dependency on the
regexcrate - the
glob_to_regexfunction - the
Error::InvalidRegexenum value
- the dependency on the
- Add the
stdfeature, enabled by default; it enables ano-stdbuild, but we still use thealloccrate.
Fixes
- Also escape closing
]and}characters outside of a character class or alternation; some regular expression parsers consider unescaped ones invalid. - Fix a list item indentation in a docstring.
Additions
- Add the
glob_to_regex_patternfunction that converts the glob pattern to a regular expression pattern, and use it internally inglob_to_regex. - Dependencies:
- allow itertools 0.14.x and rstest 0.24.x - 0.26.x with no changes
- Test suite:
- check that the glob pattern is converted into the correct regular expression pattern
- add a couple of
execlinetools to run the build and the test suite - add a dependency on
roundletand use itstest-log-simplefeature
- Add GitLab CI configuration; thanks, Iohann Rabeson, for the base definition!
Other changes
- Assorted fixes suggested by Clippy.
- Drop the
thiserrordependency, deriveErrorandDisplayourselves. - Bump the minimal versions of crates we depend on to correspond to the ones available in Debian 13 (trixie).
- With MSRV 1.62, derive
Defaultfor an internal enum. - With MSRV 1.81, convert
#[allow(...)]directives to#[expect(...)]ones and specify the reason. - With MSRV 1.85, switch to the 2024 Rust edition.
- Move the SPDX
reuseoverrides from.reuse/dep5toREUSE.toml. - Documentation:
- switch from the unsupported
mkdocs1.x to a pre-release version of thezensicaltool; adapt the ReadTheDocs configuration
- switch from the unsupported
0.2.1 - 2024-10-12
MSRV declaration
- Declare MSRV 1.58 and use inline format string arguments.
Fixes
- Allow literal matching of characters that do not have any
special meaning in the glob context, but may have special
meaning as regular expression metacharacters, such as
(or). Thanks, Christoph Heer! - Convert an unreachable panic message to an internal error; now the code should really never panic.
- Add a docstring to the unit tests top-level module.
Additions
- Add the
InternalErrorvalue to theErrorenum. - Start some
MkDocsdocumentation.
Other changes
- Move the Clippy configuration to a
run-clippy.shtool. - Keep the
Cargo.lockfile under version control. - Switch from
quickerrortothiserrorfor theErrorenum. - Use
itertools0.13 andrstest0.23 with no changes. - Insist that all public and private items be documented.
- Specify minimum versions for the dependencies as found in the Debian stable distribution.
- Mark the
Itertoolstrait as unused by name. - Drop
mkdocstringsandmkdocstrings-pythonfrom the documentationpiprequirements file, we do not use them.
0.2.0 - 2022-06-11
INCOMPATIBLE CHANGES
- The
fnmatch_regex::error::Errorclass is now an enum that uses the quick-error library, not our own hand-rolled struct any more. - The
glob_to_regex()function returns a plain error object now, not a boxed one.
Fixes
- Refactor the code to follow Rust best practices and some Clippy suggestions; among other things, the code will no longer panic.
Additions
- Add an EditorConfig definitions file.
- Add the
categoriesandkeywordsCargo package attributes.
Other changes
- Switch to Rust 2021 edition.
- Refactor the code to avoid pushing to strings and vectors, using some internal iterator/adapter structs instead. Thanks to Kevin Reid for a couple of iterator-related suggestions!
- Use the rstest library for data-driven testing instead of doing it by ourselves.
- Use the itertools library to simplify some operations a whole lot. Thanks again to Kevin Reid for pointing it out to me!
0.1.0 - 2021-06-22
Started
- First public release.