Parsimony: duplicate environments are not flagged
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 48/100
Research direction
Start by reading environment_side.canonical_key and the existing P-statement-unused Measure to understand how environments and infix Position uses are represented. Then build the Grammar-group P-env-duplicate Measure and add a seeded-defect fixture with a clean control. Done means duplicate pairs, including spacing variants, produce one group finding naming the allomorphs using each copy, while the control stays clean and the 25,000-entry check remains under one second.
Written by the indexing model from the issue text.
Description
Two environments with the same left and right sides get no Parsimony finding. A reviewer merges them; Parsimony does not see them. A 25,000-entry grammar had three duplicate pairs, two of which differ only in spacing (/ _ l against / _ l).
What we know:
environment_side.canonical_key(schema v9) hashes the resolved tokens of each side, so spelling differences fall away when both sides' keys are compared.- P-statement-unused already reads environments; it reports unused ones, not duplicates. It correctly counts an infix Position as a use.
Proposed change: a Grammar-group Measure P-env-duplicate, one group finding per set of environments whose two sides have equal canonical keys, naming every allomorph that uses each copy. Static; under 1 s at 25,000 entries.
Next: build it with a seeded-defect fixture and a clean control.
- Dominant language
- C#
- Stars
- 1
- Forks
- 0
- Avg merge
- 3h 55m
- Merged PRs (30d)
- 36
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sillsdev/motif
-
Difficulty 2/5 1-3 hours Newbie friendliness 87/100
Maintainers usually reply within 1 day
-
Playground selection bar: comes back after Apply or scrolling while focus is in the Markdown paneOpentextediting
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
Maintainers usually reply within 1 day
-
textediting
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
textediting
Difficulty 2/5 1-3 hours Newbie friendliness 69/100
Maintainers usually reply within 1 day
-
textediting
Difficulty 1/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
Similar issues
-
bug emitter:client:csharp
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
microsoft/typespec#12572 · 1 comment · 1 reaction ·
Maintainers usually reply within 1 day
-
needs-area-label
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 2 days
-
AWS Lambda: KeyNotFoundException drops HTTP-triggered transactions when allowAllHeaders is disabledOpenbug
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
newrelic/newrelic-dotnet-agent#3949 · 1 comment ·
Maintainers usually reply within 1 day
-
area-networking
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
dotnet/aspnetcore#70545 · 1 comment ·
Maintainers usually reply within 1 day
-
priority:P2
Difficulty 2/5 1-3 hours Newbie friendliness 80/100