Releases: pemistahl/grex
Releases · pemistahl/grex
grex 1.4.6
Improvements
- All characters from the current Unicode standard 16.0 are now fully supported.
Changes
- The unmaintained unic-* dependencies have been replaced by @jqnatividad. (#337)
- All other dependencies have been updated to their latest versions.
- Support for Python 3.14 has been added.
- Support for Python < 3.12 has been dropped.
grex 1.4.5
Improvements
- Type stubs for the Python bindings are now available, allowing better static code analysis, better code completion in supported IDEs and easier understanding of the library's API.
- The code for creating regular expressions in verbose mode has been simplified and is more performant now.
- ARM64 binaries are now provided for every major platform (Linux, macOs, Windows).
Bug Fixes
- For a small set of special characters, grex produced incorrect regular expressions when the case-insensitivity feature was enabled. This has been fixed.
Changes
- All dependencies have been updated to their latest versions.
grex 1.4.4
Bug Fixes
- The Python release workflow was incorrect as it produced too many wheels for upload. This has been fixed.
grex 1.4.3
Features
- Python bindings are now available for the library. Use grex within any Python software. (#172)
Changes
- All dependencies have been updated to their latest versions.
grex 1.4.2
Improvements
- All characters from the current Unicode standard 15.0 are now fully supported. (#128)
- A proper exit code is now returned if the provided user input cannot be handled by the CLI. Big thanks to @spenserblack for the respective pull request. (#165)
Changes
- It is not possible anymore to call
RegExpBuilder.with_syntax_highlighting()in the library as it only makes sense for the CLI. - The dependency
attyhas been removed in favor ofstd::io::IsTerminalin Rust >= 1.70.0. As a result, Rust >= 1.70.0 is now needed to compile the CLI. - All remaining dependencies have been updated to their latest versions.
Bug Fixes
- Several bugs have been fixed that caused incorrect expressions to be generated in rare cases.
grex 1.4.1
Changes
claphas been updated to version 4.0. The help output ofgrex -hnow looks a little different.
Bug Fixes
- A bug in the grapheme segmentation was fixed that caused test cases which contain backslashes to produce incorrect regular expressions.
grex 1.4.0
Features
- The library can now be compiled to WebAssembly and be used in any JavaScript project. (#82)
- The supported character set for regular expression generation has been updated to the current Unicode Standard 14.0.
structopthas been replaced withclapproviding much nicer help output for the command-line tool.
Improvements
- The regular expression generation performance has been significantly improved, especially for generating very long expressions from a large set of test cases. This has been accomplished by reducing the number of memory allocations, removing deprecated code and applying several minor optimizations.
Bug Fixes
- Several bugs have been fixed that caused incorrect expressions to be generated in rare cases.
grex 1.3.0
Features
- anchors can now be disabled so that the generated expression can be used as part of a larger one (#30)
- the command-line tool can now be used within Unix pipelines (#45)
Changes
- Additional methods have been added to
RegExpBuilderin order to replace the enumFeatureand make the library API more consistent. (#47)
Bug Fixes
- Under rare circumstances, the conversion of repetitions did not work. This has been fixed. (#36)
grex 1.2.0
Features
- verbose mode is now supported with the
--verboseflag to produce regular expressions which are easier to read (#17)
grex 1.1.0
Features
- case-insensitive matching regexes are now supported with the
--ignore-casecommand-line flag or withFeature::CaseInsensitivityin the library (#23) - non-capturing groups are now the default; capturing groups can be enabled with the
--capture-groupscommand-line flag or withFeature::CapturingGroupin the library (#15) - a lower bound for the conversion of repeated substrings can now be set by specifying
--min-repetitionsand--min-substring-lengthor using the library methodsRegExpBuilder.with_minimum_repetitions()andRegExpBuilder.with_minimum_substring_length()(#10) - test cases can now be passed from a file within the library as well using
RegExpBuilder::from_file()(#13)
Changes
- the rules for the conversion of test cases to shorthand character classes have been updated to be compliant to the newest Unicode Standard 13.0 (#21)
- the dependency on the unmaintained linked-list crate has been removed (#24)
Bug Fixes
- test cases starting with a hyphen are now correctly parsed on the command-line (#12)
- the common substring detection algorithm now uses optionality expressions where possible instead of redundant union operations (#22)
Test Coverage
- new unit tests, integration tests and property tests have been added