Skip to content

Commit f5e2cf0

Browse files
authored
Merge branch 'main' into experimental-vtext-clean
2 parents 050b830 + 9719967 commit f5e2cf0

897 files changed

Lines changed: 9768 additions & 10318 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.changeset/deprecate-create-and-load-container-props.md

Lines changed: 0 additions & 29 deletions
This file was deleted.

.devcontainer/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ USER node
6868
# PNPM_HOME is where `pnpm add -g` places binary shims; adding it to PATH makes
6969
# globally-installed pnpm packages (e.g. @fluid-tools/build-cli) invokable.
7070
ENV PNPM_HOME="/home/node/.local/share/pnpm"
71-
ENV PATH="${PNPM_HOME}:/home/node/.local/bin:/home/node/.cargo/bin:${PATH}"
71+
ENV PATH="${PNPM_HOME}/bin:/home/node/.local/bin:/home/node/.cargo/bin:${PATH}"
7272

7373
# Optionally install Playwright CLI
7474
ARG INSTALL_PLAYWRIGHT_CLI=false

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
/experimental/dds/tree/src @microsoft/fluid-cr-tree
5454

5555
# presence source
56-
/packages/framework/presence/src @microsoft/fluid-cr-presence
56+
/packages/framework/presence*/src @microsoft/fluid-cr-presence
5757

5858
# Fluid Devtools source
5959
/packages/tools/devtools/**/src @microsoft/fluid-cr-devtools

.github/labeler-areas.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@
103103
"area: website":
104104
changed-files:
105105
- any-glob-to-any-file:
106-
- docs/**
107-
- "!docs/content/**"
106+
- website/**
107+
- "!website/docs/**"
108108

109109
"breaking change":
110110
changed-files:
@@ -124,7 +124,9 @@ dependencies:
124124

125125
documentation:
126126
changed-files:
127-
- any-glob-to-any-file: docs/content/**
127+
- any-glob-to-any-file:
128+
- website/docs/**
129+
- website/src/**
128130

129131
# flag changes to public APIs so they can be reviewed to see if they're breaking
130132
"public api change":

.github/workflows/website-validation.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ on:
33
pull_request:
44
types: [opened, synchronize, reopened]
55
paths:
6-
- "docs/**"
6+
- "website/**"
77
- "*.md"
88
- "**/*.md"
99
- "!.changeset/**"
@@ -13,7 +13,7 @@ on:
1313

1414
defaults:
1515
run:
16-
working-directory: ./docs
16+
working-directory: ./website
1717

1818
permissions:
1919
contents: read
@@ -39,7 +39,7 @@ jobs:
3939
with:
4040
node-version: "22"
4141
cache: "pnpm"
42-
cache-dependency-path: docs/pnpm-lock.yaml
42+
cache-dependency-path: website/pnpm-lock.yaml
4343
- name: Build site artifact
4444
run: |
4545
pnpm i --frozen-lockfile
@@ -52,7 +52,7 @@ jobs:
5252
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # ratchet:actions/upload-artifact@v7
5353
with:
5454
name: fluidframework-site
55-
path: docs/build
55+
path: website/build
5656
retention-days: 3
5757

5858
# Run linter checks against the website content and infrastructure.
@@ -73,7 +73,7 @@ jobs:
7373
with:
7474
node-version: "22"
7575
cache: "pnpm"
76-
cache-dependency-path: docs/pnpm-lock.yaml
76+
cache-dependency-path: website/pnpm-lock.yaml
7777
- name: pnpm lint
7878
run: |
7979
pnpm i --frozen-lockfile
@@ -98,14 +98,14 @@ jobs:
9898
with:
9999
node-version: "22"
100100
cache: "pnpm"
101-
cache-dependency-path: docs/pnpm-lock.yaml
101+
cache-dependency-path: website/pnpm-lock.yaml
102102

103103
- name: Download site artifact
104104
# release notes: https://github.com/actions/download-artifact/releases/tag/v6.0.0
105105
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # ratchet:actions/download-artifact@v8
106106
with:
107107
name: fluidframework-site
108-
path: docs/build
108+
path: website/build
109109
- name: Install dependencies
110110
run: "pnpm i --frozen-lockfile"
111111
- name: Run tests
@@ -131,7 +131,7 @@ jobs:
131131
with:
132132
node-version: "22"
133133
cache: "pnpm"
134-
cache-dependency-path: docs/pnpm-lock.yaml
134+
cache-dependency-path: website/pnpm-lock.yaml
135135
- name: Create results folder
136136
run: mkdir -p ./results
137137

@@ -140,7 +140,7 @@ jobs:
140140
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # ratchet:actions/download-artifact@v8
141141
with:
142142
name: fluidframework-site
143-
path: docs/build
143+
path: website/build
144144
- name: Install dependencies
145145
run: "pnpm i --frozen-lockfile"
146146
- name: Check for broken links
@@ -163,5 +163,5 @@ jobs:
163163
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # ratchet:actions/upload-artifact@v7
164164
with:
165165
name: website-validation-results
166-
path: ./docs/results
166+
path: ./website/results
167167
retention-days: 3

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ bundleAnalyzerJson
4343
# Misc pipeline artifacts
4444
artifacts
4545

46-
docs/resources/_gen/
46+
website/resources/_gen/
4747

4848
# PNPM store (when mounting host file system in docker container)
4949
.pnpm-store/

.prettierignore

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,18 +86,18 @@ packages/runtime/test-runtime-utils/src/assertionShortCodesMap.ts
8686

8787
# Prettier does not yet support mdx v3.
8888
# See <https://github.com/prettier/prettier/issues/12209>
89-
docs/**/*.mdx
89+
website/**/*.mdx
9090

9191
# Generated
92-
docs/.doc-models
93-
docs/.docusaurus
94-
docs/build
95-
docs/versions.json
96-
docs/docs/api/*
97-
docs/versioned_docs/*/api/*
92+
website/.doc-models
93+
website/.docusaurus
94+
website/build
95+
website/versions.json
96+
website/docs/api/*
97+
website/versioned_docs/*/api/*
9898

9999
# Formatting gets clobbered by swa
100-
docs/swa-cli.config.json
100+
website/swa-cli.config.json
101101

102102
# This is a test file
103103
tools/markdown-magic/test/include.md

CompatibilityCheckpoints.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,12 @@ client running a checkpoint version is guaranteed to be compatible with. Upper
2222
bounds for in-window checkpoints are estimated and depend on when future
2323
checkpoints are designated.
2424

25+
<!-- GENERATED-TABLE-START -->
26+
<!-- NOTE: This table is automatically generated. Do not update it directly. -->
27+
<!-- To modify this table, edit `packages/test/test-version-utils/src/checkpoints.ts` then run `pnpm --filter @fluid-private/test-version-utils run update-compat-versions` -->
28+
2529
<!-- prettier-ignore -->
26-
| Checkpoint | Version Range | Earliest Date | Compatible Checkpoints | Compatible Semantic Versions |
30+
| Checkpoint | Version Range | Start Date | Compatible Checkpoints | Compatible Semantic Versions |
2731
| --- | --- | --- | --- | --- |
2832
| CC-1 | `>=1.4.0 <2.0.0 \| 2.0.0-internal* \| 2.0.0-rc*` | 2024-04-09 | CC-1, CC-2, CC-3, CC-4 | `>=1.4.0 <2.101.0`` \| 2.0.0-internal* \| 2.0.0-rc*` |
2933
| CC-2 | `>=2.0.0 <2.40.0` | 2024-06-26 | CC-1, CC-2, CC-3, CC-4, CC-5 | `>=1.4.0 <4.0.0`(estimated)` \| 2.0.0-internal* \| 2.0.0-rc*` |
@@ -33,6 +37,8 @@ checkpoints are designated.
3337
| CC-6 (TBD) | `>=4.0.0 <5.0.0`(estimated) | ~2027-01-06 | CC-3, CC-4, CC-5, CC-6, CC-7 | `>=2.40.0 <6.0.0`(estimated) |
3438
| CC-7 (TBD) | `>=5.0.0 <6.0.0`(estimated) | ~2027-07-06 | CC-4, CC-5, CC-6, CC-7 | `>=2.80.0 <6.0.0`(estimated) |
3539

40+
<!-- GENERATED-TABLE-END -->
41+
3642
> **Notes:**
3743
>
3844
> 1. `CC-1` through `CC-4` were designated retroactively based on existing

CrossClientCompatibilityDevGuide.md

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,12 @@ Designation is the act of officially marking a Fluid Framework release as a new
197197

198198
A new checkpoint should be designated no less than 6 months after the previous one. It should also land on a new major or beta boundary (e.g., `3.0.0`, `2.100.0`), so the prior checkpoint's range can extend cleanly to the new boundary.
199199

200-
**To designate a new checkpoint:** update the [Compatibility Checkpoints](./CompatibilityCheckpoints.md) document and include a changeset noting the new boundary so it appears in the release notes.
200+
**To designate a new checkpoint:**
201+
202+
1. Add the new checkpoint to `checkpoints` in [`packages/test/test-version-utils/src/checkpoints.ts`](./packages/test/test-version-utils/src/checkpoints.ts), and remove the corresponding future (TBD) estimate from the `futureCheckpoints` array in the same file.
203+
2. From `packages/test/test-version-utils`, run `pnpm run update-compat-versions` to refresh the per-version compat workspaces and regenerate the table in [`CompatibilityCheckpoints.md`](./CompatibilityCheckpoints.md). Do **not** edit that table by hand.
204+
3. From `packages/test/test-version-utils`, run `pnpm run update-compat-versions` to update the installed versions used by e2e tests.
205+
4. Include a changeset noting the new boundary so it appears in the release notes.
201206

202207
## Tightening Runtime Enforcement
203208

@@ -219,9 +224,6 @@ To tighten runtime enforcement:
219224
(e.g., `2.x``3.x`), also narrow the `MinimumVersionForCollab` type in
220225
[compatibilityDefinitions.ts](./packages/runtime/runtime-definitions/src/compatibilityDefinitions.ts)
221226
to drop the now-unsupported major from its definition.
222-
3. **Update the e2e test matrix:** The `FullCompat` version matrix is derived
223-
from the currently supported checkpoints — update it so tests only run
224-
against versions within the new window.
225227

226228
## Testing
227229

@@ -230,25 +232,22 @@ variations using `describeCompat()` with `"FullCompat"`. The variations test
230232
cross-client compatibility scenarios by using one version of the Fluid runtime for
231233
creating containers and a different version for loading containers.
232234

233-
**Example:** A test may generate the following variations for cross-client
234-
compatibility scenarios:
235-
236-
> **Note:** The version labels below (e.g., "N-1 fast train") reflect the current
237-
> test infrastructure naming. These labels will be updated to reflect
238-
> checkpoint-based versioning as part of the checkpoint adoption work.
235+
**Example:** With current build `2.101.0` (N) and in-window prior Compatibility
236+
Checkpoints `2.40.0` (CC-3), `2.0.9` (CC-2), and `1.4.0` (CC-1), a SharedCell
237+
test generates these cross-client variations:
239238

240239
```
241-
compat cross-client - create with 2.43.0 (N) + load with 2.33.2 (N-1 fast train)
240+
compat cross-client - create with 2.101.0 (N) + load with 2.40.0 (CC-3)
242241
✔ Example test
243-
compat cross-client - create with 2.43.0 (N) + load with 2.23.0 (N-2 fast train)
242+
compat cross-client - create with 2.101.0 (N) + load with 2.0.9 (CC-2)
244243
✔ Example test
245-
compat cross-client - create with 2.43.0 (N) + load with 1.4.0 (N-1 slow train/LTS)
244+
compat cross-client - create with 2.101.0 (N) + load with 1.4.0 (CC-1)
246245
✔ Example test
247-
compat cross-client - create with 2.33.2 (N-1 fast train) + load with 2.43.0 (N)
246+
compat cross-client - create with 2.40.0 (CC-3) + load with 2.101.0 (N)
248247
✔ Example test
249-
compat cross-client - create with 2.23.0 (N-2 fast train) + load with 2.43.0 (N)
248+
compat cross-client - create with 2.0.9 (CC-2) + load with 2.101.0 (N)
250249
✔ Example test
251-
compat cross-client - create with 1.4.0 (N-1 slow train/LTS) + load with 2.43.0 (N)
250+
compat cross-client - create with 1.4.0 (CC-1) + load with 2.101.0 (N)
252251
✔ Example test
253252
```
254253

RELEASE_NOTES/2.103.0.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<!-- THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -->
2+
3+
# Fluid Framework v2.103.0
4+
5+
## Contents
6+
7+
- [⚠️ Deprecations](#️-deprecations)
8+
- [Deprecate ICreateAndLoadContainerProps in favor of composable building blocks (#27347)](#deprecate-icreateandloadcontainerprops-in-favor-of-composable-building-blocks-27347)
9+
10+
## ⚠️ Deprecations
11+
12+
### Deprecate ICreateAndLoadContainerProps in favor of composable building blocks ([#27347](https://github.com/microsoft/FluidFramework/issues/27347))
13+
14+
`ICreateAndLoadContainerProps` is now `@deprecated`. It remains as a structurally-identical alias and the props types that previously extended it (`ILoadExistingContainerProps`, `ICreateDetachedContainerProps`, `IRehydrateDetachedContainerProps`) now extend the building blocks directly, so no caller migration is required for those.
15+
16+
Callers writing new props types should compose from the building blocks directly:
17+
18+
```ts
19+
import type {
20+
IContainerHostProps,
21+
IContainerDriverServices,
22+
} from "@fluidframework/container-loader/legacy";
23+
24+
// Equivalent to the old ICreateAndLoadContainerProps
25+
type MyProps = IContainerHostProps & IContainerDriverServices;
26+
27+
// Add only what you need
28+
interface MyHostOnlyProps extends IContainerHostProps {
29+
readonly extraOption: boolean;
30+
}
31+
```
32+
33+
- `IContainerHostProps` covers the code loader plus optional policy / observability fields (`options`, `scope`, `logger`, `configProvider`, `protocolHandlerBuilder`, `allowReconnect`, `clientDetailsOverride`).
34+
- `IContainerDriverServices` covers the `urlResolver` + `documentServiceFactory` pair.
35+
36+
`ICreateAndLoadContainerProps` will be removed in a future major release.
37+
38+
#### Change details
39+
40+
Commit: [`4091373`](https://github.com/microsoft/FluidFramework/commit/4091373ee5a60204d5f08736eede03af242fc425)
41+
42+
Affected packages:
43+
44+
- @fluidframework/container-loader
45+
46+
[⬆️ Table of contents](#contents)
47+
48+
### 🛠️ Start Building Today!
49+
50+
Please continue to engage with us on GitHub [Discussion](https://github.com/microsoft/FluidFramework/discussions) and [Issue](https://github.com/microsoft/FluidFramework/issues) pages as you adopt Fluid Framework!

0 commit comments

Comments
 (0)