From f74e69ad1147618efd174791ac12904c0dcc6e28 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 20 Jul 2026 06:28:35 +0900 Subject: fix(semver): stop classical pattern matching 6+ digit versions The regex crate parses PCRE's possessive \d{1,5}+ as a stacked repetition (?:\d{1,5})+, i.e. \d+, so date versions like 20121020 matched the classical pattern and normalized to 20121020.0.0.0 instead of falling through to the date(time) pattern like PHP. The plain \d{1,5} is equivalent to the possessive form here per the regex-porting rules. Un-ignore test_find_recommended_require_version which this had blocked. Co-Authored-By: Claude Fable 5 --- crates/shirabe/tests/package/version/version_selector_test.rs | 4 ---- 1 file changed, 4 deletions(-) (limited to 'crates/shirabe/tests/package/version') diff --git a/crates/shirabe/tests/package/version/version_selector_test.rs b/crates/shirabe/tests/package/version/version_selector_test.rs index 7722b228..7c6eca78 100644 --- a/crates/shirabe/tests/package/version/version_selector_test.rs +++ b/crates/shirabe/tests/package/version/version_selector_test.rs @@ -543,10 +543,6 @@ fn test_false_returned_on_no_packages() { } #[test] -#[ignore = "date-based cases (v20121020) fail: shirabe_semver::VersionParser::normalize yields \ - 20121020.0.0.0 instead of PHP's date-aware 20121020, so find_recommended_require_version \ - returns ^20121020.0 rather than leaving the version untouched. Faithful port; un-ignore \ - once normalize handles date(time) versions like PHP"] fn test_find_recommended_require_version() { let php_version = format!( "{}.{}.{}", -- cgit v1.3.1