Preserved orphaned work: CommandScenario specs for the Unique constraint (do not merge) - #2579
Preserved orphaned work: CommandScenario specs for the Unique constraint (do not merge)#2579woksin wants to merge 1 commit into
Conversation
…nd event type Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Assessment — is this worth reviving?Short answer: half of it is genuinely worth harvesting. The other half is already covered. This is a real coverage gap, not just sentiment. What it appears to doOne commit adding four
Pure test coverage. The only non-spec file touched is What has been supersededThe property case. What still applies — and this is the actual findingThe event-type case appears to be uncovered on That means one of the two shapes of a shipped constraint feature has no
Caveats
RecommendationDo not merge this branch. Instead, harvest Small job, real gain: it closes a genuine hole in constraint coverage. Keep this draft open until that spec exists. |
|
NuGet packages for this PR, e.g. Cratis.Arc: |
Preservation only — do not merge
This is recovered orphaned work, opened as a draft purely so it is discoverable. It is not a live proposal and it is not ready to merge.
The branch was never pushed before now and never had a pull request at any point. It was sitting only in a local checkout.
Why the repository PR template is not used
The template in
.github/pull_request_template.mdstates that "Release notes are generated from this description". This PR must never generate a release note — it ships nothing. The template's## Added/## Changed/## Fixedsections are therefore deliberately omitted rather than left empty.Why there is no semver label
No
major/minor/patchlabel is applied, and none should be added. A missing label is the correct and intended state: it means no release is cut, which is exactly right for a branch that exists only to preserve history. Theverifycheck will fail because the label is missing. That failure is expected and must not be "fixed".How far behind main this is
1,148 commits behind
main. The merge base isf6eaad58(2026-04-24).The diff GitHub renders is enormous and misleading — almost all of it is
mainmoving on, not work this branch did. The branch itself is a single commit touching five files. Do not read the diff. The file list below is the actual deliverable.What the work is
One commit from 2026-04-24 adding
CommandScenariospec coverage for the[Unique]constraint, in both of the shapes it can be applied:[Unique]on an event property — the "a value already exists" rejection path.[Unique]on an event type — the "an event of this type already exists" rejection path.This is pure test coverage. No production code is touched other than the spec project file.
Files genuinely unique to this branch
Verified individually as absent from
origin/mainatd9918345:Source/DotNET/Chronicle.Specs/for_CommandScenario_with_UniqueConstraint/given/a_command_that_appends_an_event_of_a_unique_event_type.csSource/DotNET/Chronicle.Specs/for_CommandScenario_with_UniqueConstraint/given/a_command_that_appends_an_event_with_a_unique_property.csSource/DotNET/Chronicle.Specs/for_CommandScenario_with_UniqueConstraint/when_executing_command/and_the_unique_event_type_already_exists.csSource/DotNET/Chronicle.Specs/for_CommandScenario_with_UniqueConstraint/when_executing_command/and_the_unique_property_value_already_exists.csThe fifth changed file is
Source/DotNET/Chronicle.Specs/Chronicle.Specs.csproj, which exists onmainand has moved on since.