HermitCrab conformance: verify blocked_by labels against the trace in the dead-rule gate
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 52/100
Research direction
Start with CoverageReport.cs:113-114 to see how blocked_by labels enter the exercised-rule set, then read FailureRuleAttributor.cs:66 and its trace attribution behavior. Add a reviewed exemption for failures the trace cannot attribute, including zimed, and make a mutated label fail the gate. The issue points to code at #480 commit b49433d7.
Written by the indexing model from the issue text.
Description
Summary
The conformance suite's dead-rule gate credits a rule as exercised whenever an expected-failure word names it in blocked_by. It never checks that the rule actually blocked the word. A wrong or stale label therefore counts as coverage.
FailureRuleAttributor.WordLevelFailureRuleIds is documented as upgrading those labels to verified, but it has no callers.
This is a proposal. #480 is adding two weaker steps:
- the gate fails when a label is not a rule id in the fixture's grammar;
- the docs say that
blocked_byis asserted, not verified.
This issue tracks the stronger step: verify each label against the parse trace.
Who is affected: maintainers of the HermitCrab conformance suite (#480) and its PanGloss port.
Done when:
- the gate requires the trace to attribute each word's failure to the rule named in
blocked_by; - the gate keeps an explicit, reviewed exemption list for words whose failure cannot be attributed from the trace (the attributor's doc names
zimed); - a mutated label fails the gate.
Code, on #480 at b49433d7
CoverageReport.cs:113-114adds everyword.BlockedByid to the exercised set, with no check.FailureRuleAttributor.cs:66definesWordLevelFailureRuleIds. The only reference outside its own file is a string inOwnedSymbolKeyTests.cs:132.- At that head, all 108
blocked_bylabels name real rule ids in their fixture grammars, so no label is wrong today.
- Dominant language
- C#
- Stars
- 29
- Forks
- 16
- Avg merge
- 6d 17h
- Merged PRs (30d)
- 11
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/machine
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
Port 'Fix verse range marker placement bug'Possibly taken @claude claimed this today. Openporting
Difficulty 3/5 1-2 days Newbie friendliness 25/100
sillsdev/machine#558 · 1 comment ·
Maintainers usually reply within 1 day
-
Shape.Remove can leave a spanning annotation anchored to a removed end segmentPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 4/5 1-2 days Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
AnnotationList.FindDepthFirst misses descendants in tied containers depending on insertion orderPossibly taken @johnml1135 claimed this today. Open
Difficulty 4/5 3-5 days Newbie friendliness 56/100
Maintainers usually reply within 1 day
-
HermitCrab: partial lexical entries switch off final-template pruning for the whole grammarPossibly taken @johnml1135 claimed this 3 days ago. OpenHermit Crab
Difficulty 5/5 Over a week Newbie friendliness 35/100
sillsdev/machine#551 · 1 comment ·
Maintainers usually reply within 1 day
All issues in sillsdev/machine
Similar issues
-
Bug
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
-
untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dotnet/dotnet-api-docs#13210 ·
Maintainers usually reply within 1 day
-
aspnet-core/svc doc-enhancement mvc/subsvc Pri2
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
dotnet/AspNetCore.Docs#38016 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
HicServices/RDMP#2398 ·