docs: add Concepts documentation tree (testing + summarization branches)#27523
docs: add Concepts documentation tree (testing + summarization branches)#27523agarwal-navin wants to merge 1 commit into
Conversation
Introduce CONCEPTS.md as a root entry point that gives a high-level tour of the framework (programming models, the four layers, compatibility, op processing, summarization, garbage collection, testing) and links into the code where each concept lives. - Add TESTING.md as the cross-cutting testing hub (unit/fuzz live per-package; e2e/compat/snapshot/load live in packages/test). - Add packages/test/README.md describing that directory's shared/cross-cutting test infrastructure. - Link CONCEPTS.md from the top of the root README so it's discoverable. Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
|
Hi! Thank you for opening this PR. Want me to review it? Based on the diff (292 lines, 4 files), I've queued these reviewers:
How this works
|
alexvy86
left a comment
There was a problem hiding this comment.
The testing part might want some mention of packages/service-clients/end-to-end-tests, and maybe about the fact that examples/ has several packages with a pattern where tests/ lives next to src/ instead of inside it.
| - Add `.only` / `.skip` to focus or exclude individual tests; some tests need the Git LFS | ||
| submodule (`FluidFrameworkTestData`) fetched. |
There was a problem hiding this comment.
They seem like separate concerns to me.
| - Add `.only` / `.skip` to focus or exclude individual tests; some tests need the Git LFS | |
| submodule (`FluidFrameworkTestData`) fetched. | |
| - Add `.only` / `.skip` to focus or exclude individual tests. | |
| - Snapshot tests need the Git LFS submodule (`FluidFrameworkTestData`) fetched. |
| @@ -0,0 +1,74 @@ | |||
| # Testing | |||
There was a problem hiding this comment.
We also have a DEV.md file at the root that has instructions for various things like running tests in the repo. It might be worth adding a link to this from there if/where appropriate.
|
🔗 No broken links found! ✅ Your attention to detail is admirable. linkcheck output |
|
|
||
| | Package | What it is | | ||
| | ------- | ---------- | | ||
| | [`test-end-to-end-tests`](./test-end-to-end-tests/README.md) | The main e2e suite: a real container loop, parameterized over drivers and version combinations. | |
There was a problem hiding this comment.
Nit (since we haven't used the abbreviation "e2e" yet in the document):
| | [`test-end-to-end-tests`](./test-end-to-end-tests/README.md) | The main e2e suite: a real container loop, parameterized over drivers and version combinations. | | |
| | [`test-end-to-end-tests`](./test-end-to-end-tests/README.md) | The main end-to-end (e2e) suite: a real container loop, parameterized over drivers and version combinations. | |
| | [`test-end-to-end-tests`](./test-end-to-end-tests/README.md) | The main e2e suite: a real container loop, parameterized over drivers and version combinations. | | ||
| | [`snapshots`](./snapshots/README.md) | Validates that current code can load older snapshots/summaries (corpus partly in the `FluidFrameworkTestData` submodule). | | ||
| | [`test-service-load`](./test-service-load/README.md) | Load/stress tool: many simulated clients and high op rates against a real or local service. | | ||
| | [`local-server-tests`](./local-server-tests/) | Scenarios that need direct local‑server control (disconnect/nack). | |
There was a problem hiding this comment.
Nit
| | [`local-server-tests`](./local-server-tests/) | Scenarios that need direct local‑server control (disconnect/nack). | | |
| | [`local-server-tests`](./local-server-tests/) | Scenarios that need direct local‑server control (e.g. disconnect/nack). | |
| - **Declarative model** — you describe a fixed schema of shared objects up front (e.g. via | ||
| `SharedTree` / the `fluid-framework` container schema) and the framework wires it up. Simpler | ||
| to consume; the shape is known at build time. |
There was a problem hiding this comment.
I don't think the SharedTree schema is relevant to the point here. I think just the container schema is relevant in this context.
| infrastructure that don't belong to any one package (end‑to‑end, cross‑version/compat, drivers, | ||
| snapshots, load). | ||
|
|
||
| ## Test styles at a glance |
There was a problem hiding this comment.
We also have performance benchmarks. I don't know what guidance we have documented for this, but would be worth calling out (we could always leave TODOs where links should be to indicate documentation that still needs to be written).
| | **Snapshot compatibility** | New code can still load summaries/snapshots written by old code. | [`packages/test/snapshots`](./packages/test/snapshots/README.md) | | ||
| | **Load / stress** | Behavior under many clients and high op rates. | [`packages/test/test-service-load`](./packages/test/test-service-load/README.md), [`local-server-stress-tests`](./packages/test/local-server-stress-tests/) | | ||
|
|
||
| ## Tests that live in each package |
There was a problem hiding this comment.
I think the SharedTree package has some in-package testing best practices documentation as well that we may or may not want to hoist up to this level.
There was a problem hiding this comment.
(Not necessarily for this PR)
Description
Introduces a tree-style engineering documentation structure for the repo. A new root-level
CONCEPTS.mdacts as a single, navigable entry point that gives a high-level tour of how the framework works and links out to deeper docs that live next to the code they describe.Each package can in turn have its own CONCEPTS.md doc if it chooses to do so. For example, tree DDS has a lot of interesting concepts some with docs and some without - it can tie it all with this style.
Another advantage of this is it helps agents find information easily.
CONCEPTS.mdcovers, at a glance. These are just the initial set of concepts to show as examples - More will be added in the future.container-runtimeThis PR fully wires in the first two branches as worked examples:
TESTING.mdis the cross-cutting hub. It makes explicit that tests live in two places: per-package unit/fuzz tests under each package'ssrc/test, and the cross-cutting suites (e2e, compat, snapshot, load) underpackages/test. A newpackages/test/README.mddescribes that directory's shared/cross-cutting test infrastructure.container-runtime/src/summary/README.mdrather than duplicating it.The root
README.mdgets a callout near the top linking toCONCEPTS.mdso the tree is discoverable from the repo landing page.Docs-only change: no code, public API, or package behavior is affected.
This is an initial proposal for the documentation style — feedback welcome on:
CONCEPTS.md.Marking as draft while the style is being discussed.