Skip to content

Commit

Permalink
Merge branch 'main' of https://github.com/microsoft/FluidFramework in…
Browse files Browse the repository at this point in the history
…to test/internal-merge-tree-client
  • Loading branch information
anthony-murphy committed Oct 2, 2024
2 parents 00be065 + 27353c9 commit 2ae3b9e
Show file tree
Hide file tree
Showing 239 changed files with 8,916 additions and 15,303 deletions.
4 changes: 2 additions & 2 deletions azure/packages/azure-service-utils/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@
"@arethetypeswrong/cli": "^0.15.2",
"@biomejs/biome": "~1.8.3",
"@fluid-tools/build-cli": "^0.46.0",
"@fluidframework/azure-service-utils-previous": "npm:@fluidframework/[email protected]",
"@fluidframework/azure-service-utils-previous": "npm:@fluidframework/azure-service-utils@~2.3.0",
"@fluidframework/build-common": "^2.0.3",
"@fluidframework/build-tools": "^0.46.0",
"@fluidframework/eslint-config-fluid": "^5.4.0",
Expand All @@ -114,6 +114,6 @@
},
"typeValidation": {
"broken": {},
"entrypoint": "internal"
"entrypoint": "legacy"
}
}
12 changes: 6 additions & 6 deletions docs/content/docs/testing/devtools.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ Once you have completed the above steps, you can simply launch your Fluid applic

DevTools shows the containers that were specified in the initialization, their current state (connected, attached, disconnected) and allows developers to modify the state (disconnect, close). Developers can also see a lot of container state changes with timestamps.

![A screenshot showing container information](https://fluidframework.blob.core.windows.net/static/images/container_info.png)
![A screenshot showing container information](https://storage.fluidframework.com/static/images/container_info.png)

- **Disconnect/Reconnect Container** button disconnects it from the Fluid service
- **Close Container** button stops the container, including disconnecting it from the Fluid service

![A screenshot showing container state changes](https://fluidframework.blob.core.windows.net/static/images/container_states.png)
![A screenshot showing container state changes](https://storage.fluidframework.com/static/images/container_states.png)

These buttons can be used to test the following scenarios:

Expand All @@ -41,22 +41,22 @@ These buttons can be used to test the following scenarios:

DevTool shows the current container data including all the DDSs that are part of the container. Currently, the DevTool supports renderers for `SharedTree`, `SharedMap`, `SharedString`, `SharedCounter` and `Sequences`. Because of the extensible model of the framework, you can also build and add renderers for custom DDSs.

![A screenshot showing container data visualization](https://fluidframework.blob.core.windows.net/static/images/container_data_viz.png)
![A screenshot showing container data visualization](https://storage.fluidframework.com/static/images/container_data_viz.png)

The DDS visualizer updates in real-time as local and remote changes impact the container data. Getting a peek at the underlying data and checking it against what's rendered in your app should allow you to look for any inconsistencies between the data and your app UI.

## Audience Info

DevTool displays a list of clients that are connected to the container(s) in the application and their connection type (read-only or read/write). The tool also shows a log of clients joining and leaving the container. This can be used to debug user presence indicators in your apps.

![A screenshot showing container audience information](https://fluidframework.blob.core.windows.net/static/images/container_audience_states.png)
![A screenshot showing container audience information](https://storage.fluidframework.com/static/images/container_audience_states.png)

## Framework Event Logs

DevTool outputs a log of events happening in the framework including info, performance (e.g. Ops latency) and errors.
These logs provide a peek at the inner workings of Fluid that you can use to monitor your apps

![A screenshot showing container event logs](https://fluidframework.blob.core.windows.net/static/images/container_events.png)
![A screenshot showing container event logs](https://storage.fluidframework.com/static/images/container_events.png)

## Ops Latency Telemetry Graph

Expand All @@ -66,6 +66,6 @@ DevTool shows a graph of the operations it generates to handle real-time collabo
- **Network duration** - roundtrip network time
- **Inbound duration** - time Fluid took to process the response **after receiving a server response**

![A screenshot showing container latency telemetry](https://fluidframework.blob.core.windows.net/static/images/container_latency.png)
![A screenshot showing container latency telemetry](https://storage.fluidframework.com/static/images/container_latency.png)

This graph should help you debug latency issues and pinpoint where the delays are happening when used in conjunction with your app's own telemetry.
2 changes: 1 addition & 1 deletion docs/content/docs/testing/telemetry.md
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ async function start(): Promise<void> {
Now, whenever a telemetry event is encountered, the custom `send()` method gets called and will print out the entire
event object.
<img src="https://fluidframework.blob.core.windows.net/static/images/consoleLogger_telemetry_in_action.png" alt="The
<img src="https://storage.fluidframework.com/static/images/consoleLogger_telemetry_in_action.png" alt="The
ConsoleLogger sends telemetry events to the browser console for display.">
{{% callout warning %}}
Expand Down
14 changes: 7 additions & 7 deletions docs/content/docs/testing/typed-telemetry.md
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ Going into more detail, A `Session` or `Collaborative Session` is defined as a p

Before we can query, we must first navigate to your Azure App Insights telemetry page. To do this, go to your Azure App Insights Instance and click on the `Logs` tab under Monitoring.

![Logs on App Insights Portal](https://fluidframework.blob.core.windows.net/static/images/telemetry_1.png)
![Logs on App Insights Portal](https://storage.fluidframework.com/static/images/telemetry_1.png)

Now, close out the `Queries` pane if it showed up for you and you will be in the view where we can execute our queries. Note that if you are using the Fluid Azure App Insights logger, your telemetry data will be available in the `customEvents` table.

Expand All @@ -188,7 +188,7 @@ customEvents
| project SessionId, containerId , NumCollaborators, PeriodDurationInMinutes, StartTime, EndTime
```

![Query result](https://fluidframework.blob.core.windows.net/static/images/telemetry_2.png)
![Query result](https://storage.fluidframework.com/static/images/telemetry_2.png)

1. Total number of sessions over time period

Expand Down Expand Up @@ -217,7 +217,7 @@ customEvents
| render timechart with (title = "Total Number of Sessions Occurring Over 1 Hour Intervals")
```

![Total sessions over time period](https://fluidframework.blob.core.windows.net/static/images/telemetry_3.png)
![Total sessions over time period](https://storage.fluidframework.com/static/images/telemetry_3.png)

1. Average number of sessions over time period

Expand Down Expand Up @@ -246,7 +246,7 @@ customEvents
| render timechart with (title = "Average Number of Sessions Occurring Over 1 Hour Intervals")
```

![Average number of sessions over time period](https://fluidframework.blob.core.windows.net/static/images/telemetry_4.png)
![Average number of sessions over time period](https://storage.fluidframework.com/static/images/telemetry_4.png)

1. Average number of containers per session over a time period

Expand Down Expand Up @@ -275,7 +275,7 @@ customEvents
| render timechart with (title = "Approximate Average Number Of Container Per Session Over 1 Hour Intervals")
```

![Average number of containers per session over time period](https://fluidframework.blob.core.windows.net/static/images/telemetry_5.png)
![Average number of containers per session over time period](https://storage.fluidframework.com/static/images/telemetry_5.png)

1. Length of Individual Sessions in Minutes

Expand Down Expand Up @@ -307,15 +307,15 @@ customEvents

```

![Length of Individual Sessions in Minutes](https://fluidframework.blob.core.windows.net/static/images/telemetry_6.png)
![Length of Individual Sessions in Minutes](https://storage.fluidframework.com/static/images/telemetry_6.png)

##### General Query Adjustments

1. Adjusting the date span of the query

To adjust the time span of this query, simply use the Time Range dropdown provided by azure. You do not need to modify the query directly. By default, these queries will query against all logs you have available.

![Adjusting date](https://fluidframework.blob.core.windows.net/static/images/telemetry_time_period.png)
![Adjusting date](https://storage.fluidframework.com/static/images/telemetry_time_period.png)

2. Adjusting the gap of time that defines a session

Expand Down
2 changes: 1 addition & 1 deletion docs/download-apis.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ try {
// condition, it'll correctly use _api-extractor-temp-v1
const versionPostfix =
version === currentVersion && docVersions.length > 1 ? "" : `-${version}`;
const url = `https://fluidframework.blob.core.windows.net/api-extractor-json/latest${versionPostfix}.tar.gz`;
const url = `https://storage.fluidframework.com/api-extractor-json/latest${versionPostfix}.tar.gz`;

const destination = path.resolve(dirname, "_doc-models", version);

Expand Down
2 changes: 1 addition & 1 deletion docs/layouts/shortcodes/fluid_bundle_loader.html
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@
}
</style>

<script async src="https://fluidframework.blob.core.windows.net/static/js/{{ $bundleName }}"></script>
<script async src="https://storage.fluidframework.com/static/js/{{ $bundleName }}"></script>

<script>
(() => {
Expand Down
4 changes: 2 additions & 2 deletions docs/themes/thxvscode/layouts/partials/footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -43,10 +43,10 @@
<div class="copyright">
<a id="footer-microsoft-link" class="logo" href="https://www.microsoft.com">
<img class="microsoft-logo"
src="https://fluidframework-docs-cdn.azureedge.net/static/images/microsoft-logo.png"
src="https://storage.fluidframework.com/static/images/microsoft-logo.png"
height="20" alt="Microsoft homepage" />
<img class="microsoft-logo-inverted"
src="https://fluidframework-docs-cdn.azureedge.net/static/images/microsoft-logo-inverted.png"
src="https://storage.fluidframework.com/static/images/microsoft-logo-inverted.png"
height="20" alt="Microsoft homepage" />
</a>
<span>&copy; {{ now.Format "2006" }} <span itemprop="publisher" itemscope
Expand Down
3 changes: 3 additions & 0 deletions examples/utils/bundle-size-tests/webpack.config.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -130,4 +130,7 @@ module.exports = {
file: path.resolve(process.cwd(), "bundleAnalysis/bundleStats.msp.gz"),
}),
],
// Enabling source maps allows using source-map-explorer to investigate bundle contents,
// which provides more fine grained details than BundleAnalyzerPlugin, so its nice for manual investigations.
devtool: "source-map",
};
4 changes: 2 additions & 2 deletions experimental/dds/attributable-map/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@
"devDependencies": {
"@arethetypeswrong/cli": "^0.15.2",
"@biomejs/biome": "~1.8.3",
"@fluid-experimental/attributable-map-previous": "npm:@fluid-experimental/[email protected]",
"@fluid-experimental/attributable-map-previous": "npm:@fluid-experimental/attributable-map@~2.3.0",
"@fluid-internal/mocha-test-setup": "workspace:~",
"@fluid-private/stochastic-test-utils": "workspace:~",
"@fluid-private/test-dds-utils": "workspace:~",
Expand Down Expand Up @@ -129,6 +129,6 @@
},
"typeValidation": {
"broken": {},
"entrypoint": "internal"
"entrypoint": "legacy"
}
}
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,8 @@
"sharp <0.32.6 has a vulnerability that Component Governance flags (https://github.com/advisories/GHSA-54xq-cgqr-rpm3). It's a transitive dependency through jssm-viz-cli, which hasn't updated to a version with the fix",
"@fluentui/react-positioning's dependency on @floating-ui/dom causes a peer dependency violation, so overriding it forces a version that meets peer dependency requirements is installed.",
"get-tsconfig has a bug below 4.7.3 which causes eslint to fail to resolve typescript configurations. See https://github.com/privatenumber/get-tsconfig/issues/67",
"oclif includes some AWS-related features, but we don't use them, so we override those dependencies with empty packages. This helps reduce lockfile churn since the deps release very frequently."
"oclif includes some AWS-related features, but we don't use them, so we override those dependencies with empty packages. This helps reduce lockfile churn since the deps release very frequently.",
"socket.io-client has an issue with 4.8.0 which breaks the build, so avoid it: https://github.com/socketio/socket.io/issues/5202"
],
"overrides": {
"@types/node@<18": "^18.19.0",
Expand All @@ -376,7 +377,8 @@
"sharp": "^0.33.2",
"@fluentui/react-positioning>@floating-ui/dom": "~1.5.4",
"oclif>@aws-sdk/client-cloudfront": "npm:[email protected]",
"oclif>@aws-sdk/client-s3": "npm:[email protected]"
"oclif>@aws-sdk/client-s3": "npm:[email protected]",
"socket.io-client": "~4.7.5"
},
"peerDependencyComments": [
"@types/node is ignored because it is usually not needed by packages, and if it is, then the package will hit a compilation failure.",
Expand Down
6 changes: 3 additions & 3 deletions packages/common/client-utils/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@
"test:mocha:cjs": "mocha --recursive \"dist/test/mocha/**/*.spec.*js\" --exit",
"test:mocha:esm": "mocha --recursive \"lib/test/mocha/**/*.spec.*js\" --exit",
"tsc": "fluid-tsc commonjs --project ./tsconfig.cjs.json && copyfiles -f ../../../common/build/build-common/src/cjs/package.json ./dist",
"typetests:gen": "flub generate typetests --dir . -v --level public",
"typetests:gen": "flub generate typetests --dir . -v",
"typetests:prepare": "flub typetests --dir . --reset --previous --normalize"
},
"c8": {
Expand Down Expand Up @@ -133,7 +133,7 @@
"devDependencies": {
"@arethetypeswrong/cli": "^0.15.2",
"@biomejs/biome": "~1.8.3",
"@fluid-internal/client-utils-previous": "npm:@fluid-internal/[email protected]",
"@fluid-internal/client-utils-previous": "npm:@fluid-internal/client-utils@~2.3.0",
"@fluid-internal/mocha-test-setup": "workspace:~",
"@fluid-tools/build-cli": "^0.46.0",
"@fluidframework/build-common": "^2.0.3",
Expand Down Expand Up @@ -244,6 +244,6 @@
},
"typeValidation": {
"broken": {},
"entrypoint": "internal"
"entrypoint": "public"
}
}
4 changes: 2 additions & 2 deletions packages/common/container-definitions/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@
"@fluid-tools/build-cli": "^0.46.0",
"@fluidframework/build-common": "^2.0.3",
"@fluidframework/build-tools": "^0.46.0",
"@fluidframework/container-definitions-previous": "npm:@fluidframework/[email protected]",
"@fluidframework/container-definitions-previous": "npm:@fluidframework/container-definitions@~2.3.0",
"@fluidframework/eslint-config-fluid": "^5.4.0",
"@microsoft/api-extractor": "7.47.8",
"concurrently": "^8.2.1",
Expand All @@ -115,6 +115,6 @@
},
"typeValidation": {
"broken": {},
"entrypoint": "internal"
"entrypoint": "legacy"
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -402,24 +402,6 @@ declare type old_as_current_for_Interface_IFluidCodeDetailsConfig = requireAssig
*/
declare type current_as_old_for_Interface_IFluidCodeDetailsConfig = requireAssignableTo<TypeOnly<current.IFluidCodeDetailsConfig>, TypeOnly<old.IFluidCodeDetailsConfig>>

/*
* Validate forward compatibility by using the old type in place of the current type.
* If this test starts failing, it indicates a change that is not forward compatible.
* To acknowledge the breaking change, add the following to package.json under
* typeValidation.broken:
* "Interface_IFluidCodeResolver": {"forwardCompat": false}
*/
declare type old_as_current_for_Interface_IFluidCodeResolver = requireAssignableTo<TypeOnly<old.IFluidCodeResolver>, TypeOnly<current.IFluidCodeResolver>>

/*
* Validate backward compatibility by using the current type in place of the old type.
* If this test starts failing, it indicates a change that is not backward compatible.
* To acknowledge the breaking change, add the following to package.json under
* typeValidation.broken:
* "Interface_IFluidCodeResolver": {"backCompat": false}
*/
declare type current_as_old_for_Interface_IFluidCodeResolver = requireAssignableTo<TypeOnly<current.IFluidCodeResolver>, TypeOnly<old.IFluidCodeResolver>>

/*
* Validate forward compatibility by using the old type in place of the current type.
* If this test starts failing, it indicates a change that is not forward compatible.
Expand Down Expand Up @@ -546,24 +528,6 @@ declare type old_as_current_for_Interface_ILoader = requireAssignableTo<TypeOnly
*/
declare type current_as_old_for_Interface_ILoader = requireAssignableTo<TypeOnly<current.ILoader>, TypeOnly<old.ILoader>>

/*
* Validate forward compatibility by using the old type in place of the current type.
* If this test starts failing, it indicates a change that is not forward compatible.
* To acknowledge the breaking change, add the following to package.json under
* typeValidation.broken:
* "Interface_ILoaderHeader": {"forwardCompat": false}
*/
declare type old_as_current_for_Interface_ILoaderHeader = requireAssignableTo<TypeOnly<old.ILoaderHeader>, TypeOnly<current.ILoaderHeader>>

/*
* Validate backward compatibility by using the current type in place of the old type.
* If this test starts failing, it indicates a change that is not backward compatible.
* To acknowledge the breaking change, add the following to package.json under
* typeValidation.broken:
* "Interface_ILoaderHeader": {"backCompat": false}
*/
declare type current_as_old_for_Interface_ILoaderHeader = requireAssignableTo<TypeOnly<current.ILoaderHeader>, TypeOnly<old.ILoaderHeader>>

/*
* Validate forward compatibility by using the old type in place of the current type.
* If this test starts failing, it indicates a change that is not forward compatible.
Expand Down Expand Up @@ -618,24 +582,6 @@ declare type old_as_current_for_Interface_IProvideRuntimeFactory = requireAssign
*/
declare type current_as_old_for_Interface_IProvideRuntimeFactory = requireAssignableTo<TypeOnly<current.IProvideRuntimeFactory>, TypeOnly<old.IProvideRuntimeFactory>>

/*
* Validate forward compatibility by using the old type in place of the current type.
* If this test starts failing, it indicates a change that is not forward compatible.
* To acknowledge the breaking change, add the following to package.json under
* typeValidation.broken:
* "Interface_IResolvedFluidCodeDetails": {"forwardCompat": false}
*/
declare type old_as_current_for_Interface_IResolvedFluidCodeDetails = requireAssignableTo<TypeOnly<old.IResolvedFluidCodeDetails>, TypeOnly<current.IResolvedFluidCodeDetails>>

/*
* Validate backward compatibility by using the current type in place of the old type.
* If this test starts failing, it indicates a change that is not backward compatible.
* To acknowledge the breaking change, add the following to package.json under
* typeValidation.broken:
* "Interface_IResolvedFluidCodeDetails": {"backCompat": false}
*/
declare type current_as_old_for_Interface_IResolvedFluidCodeDetails = requireAssignableTo<TypeOnly<current.IResolvedFluidCodeDetails>, TypeOnly<old.IResolvedFluidCodeDetails>>

/*
* Validate forward compatibility by using the old type in place of the current type.
* If this test starts failing, it indicates a change that is not forward compatible.
Expand Down Expand Up @@ -852,15 +798,6 @@ declare type current_as_old_for_Variable_IRuntimeFactory = requireAssignableTo<T
*/
declare type current_as_old_for_Variable_isFluidBrowserPackage = requireAssignableTo<TypeOnly<typeof current.isFluidBrowserPackage>, TypeOnly<typeof old.isFluidBrowserPackage>>

/*
* Validate backward compatibility by using the current type in place of the old type.
* If this test starts failing, it indicates a change that is not backward compatible.
* To acknowledge the breaking change, add the following to package.json under
* typeValidation.broken:
* "Variable_isFluidCodeDetails": {"backCompat": false}
*/
declare type current_as_old_for_Variable_isFluidCodeDetails = requireAssignableTo<TypeOnly<typeof current.isFluidCodeDetails>, TypeOnly<typeof old.isFluidCodeDetails>>

/*
* Validate backward compatibility by using the current type in place of the old type.
* If this test starts failing, it indicates a change that is not backward compatible.
Expand Down
4 changes: 2 additions & 2 deletions packages/common/core-interfaces/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@
"@fluid-tools/build-cli": "^0.46.0",
"@fluidframework/build-common": "^2.0.3",
"@fluidframework/build-tools": "^0.46.0",
"@fluidframework/core-interfaces-previous": "npm:@fluidframework/[email protected]",
"@fluidframework/core-interfaces-previous": "npm:@fluidframework/core-interfaces@~2.3.0",
"@fluidframework/eslint-config-fluid": "^5.4.0",
"@microsoft/api-extractor": "7.47.8",
"@types/node": "^18.19.0",
Expand All @@ -111,6 +111,6 @@
},
"typeValidation": {
"broken": {},
"entrypoint": "internal"
"entrypoint": "legacy"
}
}
Loading

0 comments on commit 2ae3b9e

Please sign in to comment.