Repository navigation
fix: stop singularize() turning psychoanalyses into psychoanalyasis - #4188
Conversation
The -ses singularize rule replaced with \1\2sis, and group 2 was the leading "a" of the analy alternative, so a prefixed -analyses word got that letter twice. The inner groups are dropped and the replacement is \1sis. Other -ses words are unchanged. Fixes #4187 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Peter Amiri <peter@alurium.com>
|
rev1-r1 review @ c0caee1 (draft, 4.3): APPROVE on code; merge gated on compat-matrix run 37113979661 and on 4.2.0 shipping.
|
Wheels Test Results216 679 tests 212 555 ✅ 1h 8m 8s ⏱️ Results for commit 331c195. ♻️ This comment has been updated with latest results. |
|
rev1-r1 correction: in my review above I said the unset |
Moves the fragment to `changed`, since the output of singularize() changes for words ending in "analyses", and adds an entry under "Behaviour changes to check" in the 4.1 to 4.2 upgrade guide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Peter Amiri <peter@alurium.com>
Final: APPROVE @ 331c195 (lifted into 4.2; matrix 37263380571, all 32 legs read)Delta since my approval at c0caee1
Matrix
No open findings. |
Fixes #4187
Summary
The singularize rule
((a)naly|(b)a|(d)iagno|(p)arenthe|(p)rogno|(s)ynop|(t)he)ses$→\1\2sisadded group 2, the leadingaofanaly, a second time. Sopsychoanalysescame back aspsychoanalyasis. The rule is now(analy|ba|diagno|parenthe|progno|synop|the)ses$→\1sis.For the other alternatives group 2 was empty, and a bare
analysesis caught by the earlier(^analy)ses$rule. So output changes only for a word that ends inanalyseswithout starting with it.Upgrade notes
changedone (changelog.d/4187-singularize-prefixed-analyses.changed.md), becausesingularize()output changes for words ending inanalyseswithout starting with it.Test plan
vendor/wheels/tests/specs/global/SingularizeSesRuleSpec.cfcchecks that prefixed-analyseswords are fixed. It also pinsanalyses,bases,diagnoses,parentheses,prognoses,synopses,thesesandhypothesesto their current output.psychoanalyses→psychoanalyasis).globaldirectory (pass / fail / error):Full suite (
tools/test-local.sh, Lucee 7 + SQLite): 6524 passed.After merging develop (for 4.2):
globalspecs (SQLite) 310 / 0 / 0 on Lucee 7, Lucee 6 and BoxLang, 309 / 0 / 0 on Adobe 2023, Adobe 2025 and RustCFML v0.693.0; full core suite, Lucee 7 + SQLite: 6664 passed; guides build passes.🤖 Generated with Claude Code