Skip to content

Reviewer reading guide: upstream code to study for the Strawberry Shake fork PRs #21

Description

@cliedeman

Reading guide for reviewing the fork's Strawberry Shake pull requests. Each cluster of PRs maps to the upstream (ChilliCream/graphql-platform) source you should read to understand the change. Source links point to upstream main; the three fork-only files (FORK.md, ci-fork.yml, release-fork.yml) have no upstream equivalent and live on the stackworx-dotnet fork.

The Strawberry Shake generator is a 3-stage pipeline: analyze (GraphQL → model) → map (model → descriptors) → generate (descriptors → C#). Read the Foundation once, then the group(s) you care about.

Foundation — the codegen pipeline (read first)

Group 1 — fragments / interfaces / unions

Understand PRs #9, #7, #8, #10, #15. These hinge on how selections and fragments become output-type models.

Group 2 — runtime result-builder & entity store

Understand PRs #11, #12. Both edit the generator that emits the runtime deserialization/entity-update code.

Group 3 — operation/service generation & uploads

Understand PR #14.

Group 4 — codegen performance

Understand PRs #18, #19, #20 (verify behavior is identical — no snapshot changes expected).

Group 5 — Razor/Blazor: persisted state, interface type, bUnit

Understand PRs #2, #3, #5. Read FORK.md "Tracked work items 1 & 2" first — the intent spec.

Group 6 — transport: SSE subscription streaming

Understand PR #16.

Group 7 — fork CI & publishing

Understand PRs #4, #5.

Group 8 — validation fuzzing

Understand PR #6 (review = the findings + method, not a code change).


Suggested path: Foundation first, then Group 1 and Group 2 (they unlock #7/#8/#9/#10/#11/#12/#15 and make the perf and Razor groups easy). Groups 6–8 are independent and can be read standalone.

All source links target the upstream repo ChilliCream/graphql-platform on main; the fork-only files (FORK.md, ci-fork.yml, release-fork.yml) have no upstream equivalent and link to the stackworx-dotnet fork. Upstream main moves forward, so if a file is later renamed upstream a link may drift; ping to pin them to the fork's base commit (6e5b640166) instead.

— Claude
🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions