Recovered abandoned work: ecommerce-testing - eCommerce end-to-end sample and integration specs, never opened as a PR (preservation draft, do not merge) - #573
Conversation
Honest assessmentVerdict: not worth reviving. Kept for the spec harness, which is the only part that outlived the sample. Why this cannot be revived in any normal senseThis is not a stale branch that needs a rebase. The target of the work is gone. So of the 34 changed files, the 20-odd under The branch is also 1,558 commits and sixteen months behind. Even if the sample still existed, this would be a rewrite. What actually outlived itThe
That set is a reasonable answer to "how do I write integration specs against a Cratis sample," and the question did not go away when eCommerce did. Anyone writing integration specs for The tells that this was abandoned mid-thoughtThree of the fourteen commits are called "Cleanup" and two are "up and running with specs" in different capitalisations, which is the shape of someone iterating fast and not expecting anyone to read the log. Two details say plainly that it was never finished:
And the uncommitted RecommendationLeave this draft open as the archival record. Do not merge, do not rebase, do not reintroduce If the harness is wanted, the right move is to lift the four helper files into whatever integration-spec setup |
This is a preservation draft. It is not a live proposal, and it must not be merged.
The branch
ecommerce-testingwas pushed to this repository in April 2025 and then abandoned. No pull request was ever opened for it. The commits have been sitting on the remote for sixteen months with nothing pointing at them and no record anywhere that they exist. This draft exists purely to make the work discoverable.Nothing here is at risk of loss — the branch is already on origin. What it lacked was discoverability.
What the work is
14 commits. Branched from
b08dbb9(29 April 2025), tip13f3a9a(30 April 2025). 34 files changed.An end-to-end eCommerce sample with integration specs:
AddItemToCartcommand,ItemAddedToCart/ItemRemovedFromCartevents,Cartaggregate,CartId/Sku/Priceconcepts, aCartread model, and the React/TypeScript side (CartContents.tsx,GetCart.ts,Cart.ts,CartItem.ts)How far behind main it is
1,558 commits behind
main— 14 ahead, 1,558 behind, merge baseb08dbb9.This is a rewrite job, not a merge — and in this case not even that, for the reason below.
The sample this branch builds on no longer exists
The entire
eCommerce/directory was removed frommainon 8 February 2026 in commit8700511("Remove eCommerce").mainatf4b0410contains zero files undereCommerce/.The repository has since reorganised around different samples:
Chronicle/Quickstartand aLibrary/sample (Composition, Lending, Lending.Contracts, Members).So every one of this branch's 34 files targets a directory that upstream deleted six months ago. There is no merge to perform and no rebase that would mean anything. What survives is the shape of the work — an integration-spec harness for a Cratis sample — not the code.
What is unique to this branch
The spec harness is the part with any residual value, and none of it exists in
main:eCommerce.Specs/IntegrationSpecificationContext.cseCommerce.Specs/OrleansFixture.cseCommerce.Specs/ObserverHelpers.cseCommerce.Specs/JobsHelpers.cseCommerce.Specs/EventForEventSourceIdHelpers.cseCommerce.Specs/TimeSpanFactory.cseCommerce.Specs/Given.cs,Startup.cs,given/a_client.csFeatures/Carts/given/an_empty_cart.cs,when_adding_item_to_empty_cart.cs,when_adding_item_to_cart_with_three_items.csOne uncommitted file, deliberately left uncommitted
The working copy this branch was recovered from has an uncommitted edit to
eCommerce/Features/Carts/Cart.cs: a stray bareIsNewtoken on its own line insideAddItem, with no expression around it. It does not compile.It has been left in the working copy and deliberately not committed — it is a half-typed thought, not work product, and committing it would push a broken file. It is recorded here only so that whoever next opens that working copy knows what it is and does not mistake it for something meaningful.
Why the release-notes template is not used
This PR deliberately does not follow the repository's release-notes PR template. It is an archival pointer at commits that are already pushed, not a change being shipped, and it must never generate release notes.
No semantic version label — that is deliberate
No
major/minor/patchlabel has been applied, and none should be. A missing label means no release is cut, which is exactly right for a PR that ships nothing.A
verify-style check will fail because of the missing label. That failure is expected and must not be "fixed."References:
8700511