Skip to content

Commit

Permalink
fix breaking location (#8959)
Browse files Browse the repository at this point in the history
Co-authored-by: Sumedh Bhattacharya <sumbhatt@microsoft.com>
  • Loading branch information
sumedhb1995 and Sumedh Bhattacharya authored Feb 1, 2022
1 parent 12a6f13 commit c5d3578
Showing 1 changed file with 26 additions and 25 deletions.
51 changes: 26 additions & 25 deletions BREAKING.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,7 @@ The `containerPath` property of `DriverPreCheckInfo` was deprecated and has now
- [`wait()` methods deprecated on map and directory](#wait-methods-deprecated-on-map-and-directory)
- [Remove Legacy Data Object and Factories](#Remove-Legacy-Data-Object-and-Factories)
- [Removed `innerRequestHandler`](#Removed-innerRequestHandler)
- [Aqueduct and IFluidDependencySynthesizer changes](#Aqueduct-and-IFluidDependencySynthesizer-changes)

### `container-loader` interfaces return `IQuorumClients` rather than `IQuorum`

Expand Down Expand Up @@ -203,12 +204,36 @@ If you rely on `request()` access to internal root data stores, you can add `roo

It is not recommended to provide `request()` access to non-root data stores, but if you currently rely on this functionality you can add a custom request handler that calls `runtime.IFluidHandleContext.resolveHandle(request)` just like `innerRequestHandler` used to do.

### Aqueduct and IFluidDependencySynthesizer changes
The type `DependencyContainerRegistry` is now deprecated and no longer used. In it's place the `DependencyContainer` class should be used instead.

The following classes in Aqueduct have been changed to no longer take DependencyContainerRegistry and to use DependencyContainer instead: `BaseContainerRuntimeFactory`, and `ContainerRuntimeFactoryWithDefaultDataStore`

In both cases, the third parameter to the constructor has been changed from `providerEntries: DependencyContainerRegistry = []` to `dependencyContainer?: IFluidDependencySynthesizer`. If you were previously passing an emptry array, `[]` you should now pass `undefined`. If you were passing in something besides an empty array, you will instead create new DependencyContainer and register your types, and then pass that, rather than the type directly:

``` diff
+const dependencyContainer = new DependencyContainer();
+dependencyContainer.register(IFluidUserInformation,async (dc) => userInfoFactory(dc));

export const fluidExport = new ContainerRuntimeFactoryWithDefaultDataStore(
Pond.getFactory(),
new Map([
Pond.getFactory().registryEntry,
]),
- [
- {
- type: IFluidUserInformation,
- provider: async (dc) => userInfoFactory(dc),
- },
- ]);
+ dependencyContainer);
```

## 0.54 Breaking changes
- [Removed `readAndParseFromBlobs` from `driver-utils`](#Removed-readAndParseFromBlobs-from-driver-utils)
- [Loader now returns `IContainer` instead of `Container`](#Loader-now-returns-IContainer-instead-of-Container)
- [`getQuorum()` returns `IQuorumClients` from within the container](#getQuorum-returns-IQuorumClients-from-within-the-container)
- [`SharedNumberSequence` and `SharedObjectSequence` deprecated](#SharedNumberSequence-and-SharedObjectSequence-deprecated)
- [Aqueduct and IFluidDependencySynthesizer changes](#Aqueduct-and-IFluidDependencySynthesizer-changes)
- [`IContainer` interface updated to complete 0.53 changes](#IContainer-interface-updated-to-complete-0.53-changes)

### Removed `readAndParseFromBlobs` from `driver-utils`
Expand All @@ -235,30 +260,6 @@ The `SharedNumberSequence` and `SharedObjectSequence` have been deprecated and a

Additionally, `useSyncedArray()` from `@fluid-experimental/react` has been removed, as it depended on the `SharedObjectArray`.

### Aqueduct and IFluidDependencySynthesizer changes
The type `DependencyContainerRegistry` is now deprecated and no longer used. In it's place the `DependencyContainer` class should be used instead.

The following classes in Aqueduct have been changed to no longer take DependencyContainerRegistry and to use DependencyContainer instead: `BaseContainerRuntimeFactory`, and `ContainerRuntimeFactoryWithDefaultDataStore`

In both cases, the third parameter to the constructor has been changed from `providerEntries: DependencyContainerRegistry = []` to `dependencyContainer?: IFluidDependencySynthesizer`. If you were previously passing an emptry array, `[]` you should now pass `undefined`. If you were passing in something besides an empty array, you will instead create new DependencyContainer and register your types, and then pass that, rather than the type directly:

``` diff
+const dependencyContainer = new DependencyContainer();
+dependencyContainer.register(IFluidUserInformation,async (dc) => userInfoFactory(dc));

export const fluidExport = new ContainerRuntimeFactoryWithDefaultDataStore(
Pond.getFactory(),
new Map([
Pond.getFactory().registryEntry,
]),
- [
- {
- type: IFluidUserInformation,
- provider: async (dc) => userInfoFactory(dc),
- },
- ]);
+ dependencyContainer);
```
### `IContainer` interface updated to complete 0.53 changes
The breaking changes introduced in [`IContainer` interface updated to expose actively used `Container` public APIs](#IContainer-interface-updated-to-expose-actively-used-Container-public-APIs) have now been completed in 0.54. The following additions to the `IContainer` interface are no longer optional but rather mandatory:
- `connectionState`
Expand Down

0 comments on commit c5d3578

Please sign in to comment.