github microsoft/FluidFramework client_v2.60.0
Fluid Framework v2.60.0 (minor)

latest release: build-tools_v0.58.2
2 days ago

Contents

  • 🚨 Breaking Changes
    • Remove unnecessary and internal APIs in ISequenceIntervalCollection and related interval types (#25244)
  • 🌳 SharedTree DDS Changes
    • Single-node insertion/removal APIs have been removed from TableSchema (alpha) (#25233)
    • Range-based row/column removal methods have been added to TableSchema APIs (alpha) (#25235)
    • Replace "TreeEncodingOptions.useStoredKeys" with "keys" and "KeyEncodingOptions" (#25263)
    • Hoist runTransaction method from TreeViewAlpha to TreeBranch (#25280)
    • SchemaFactoryAlpha.recordRecursive now supports metadata (#25289)
    • FormatValidator added to replace JsonValidator (#25311)
    • Add SchemaFactoryBeta (#25313)

🚨 Breaking Changes

Remove unnecessary and internal APIs in ISequenceIntervalCollection and related interval types (#25244)

The following APIs are now removed:

  • IInterval.clone
  • IInterval.modify
  • IInterval.union
  • ISerializableInterval
  • SequenceInterval.clone
  • SequenceInterval.modify
  • SequenceInterval.union
  • SequenceInterval.serialize
  • SequenceInterval.addPositionChangeListeners
  • SequenceInterval.removePositionChangeListeners

These APIs were never intended for public use. There is no migration path, and any usage is strongly discouraged, as it may result in severe errors or data corruption. Please remove any dependencies on these APIs as soon as possible.

Change details

Commit: 15d476e

Affected packages:

  • fluid-framework
  • @fluidframework/sequence

⬆️ Table of contents

🌳 SharedTree DDS Changes

Single-node insertion/removal APIs have been removed from TableSchema (alpha) (#25233)

There is a significant performance benefit to inserting / removing rows / columns in batches. To help encourage more performant usage patterns, single-node insertion and removal APIs have been removed. The APIs that operate on batches should be used instead.

Specifically:

  • insertColumn
    • Use insertColumns instead
  • insertRow
    • Use insertRows instead
  • removeColumn
    • Use removeColumns instead
  • removeRow
    • Use removeRows instead

Change details

Commit: 99281d2

Affected packages:

  • @fluidframework/tree
  • fluid-framework

⬆️ Table of contents

Range-based row/column removal methods have been added to TableSchema APIs (alpha) (#25235)

Adds range-based overloads to removeColumns and removeRows for removing contiguous ranges of rows and columns.

The removeAllColumns and removeAllRows methods have been removed, as they can be trivially implemented in terms of the new methods.

Change details

Commit: c803393

Affected packages:

  • @fluidframework/tree
  • fluid-framework

⬆️ Table of contents

Replace "TreeEncodingOptions.useStoredKeys" with "keys" and "KeyEncodingOptions" (#25263)

The alpha API TreeEncodingOptions has had its useStoredKeys boolean replaced with keys that takes a KeyEncodingOptions allowing for three options instead of the previous two. With the new API, it is now possible to control, for APIs which support it (like TreeAlpha.exportVerbose), if unknown optional fields will be included when exporting data using stored keys.

Additionally, the relevant options interfaces have been marked as @input, indicating that more options may be added as optional parameters in the future, and that should be considered non-breaking.

Change details

Commit: b65f2a8

Affected packages:

  • fluid-framework
  • @fluidframework/tree

⬆️ Table of contents

Hoist runTransaction method from TreeViewAlpha to TreeBranch (#25280)

Transactions are not view-schema-dependent, so it isn't necessary for them to be exclusive to the view type. runTransaction is now available on TreeBranch (alpha). TreeViewAlpha extends TreeBranch, so this change strictly makes the API more accessible.

Change details

Commit: a66b3b7

Affected packages:

  • fluid-framework
  • @fluidframework/tree

⬆️ Table of contents

SchemaFactoryAlpha.recordRecursive now supports metadata (#25289)

SchemaFactoryAlpha.recordRecursive now support metadata like SchemaFactoryAlpha.recordAlpha and the other TreeNodeSchema creation methods on SchemaFactoryAlpha (except for SchemaFactoryAlpha.record which does not support metadata).

Change details

Commit: 8324170

Affected packages:

  • fluid-framework
  • @fluidframework/tree

⬆️ Table of contents

FormatValidator added to replace JsonValidator (#25311)

The existing @alpha type JsonValidator has a new type-erased alternative, FormatValidator, which is planned to be stabilized to @beta in the future. It replaces JsonValidator in ICodecOptions. Existing code using ICodecOptions should migrate to use FormatValidator, but this is not required for adopting this release as JsonValidator is still supported.

Change details

Commit: 9db6e08

Affected packages:

  • fluid-framework
  • @fluidframework/tree

⬆️ Table of contents

Add SchemaFactoryBeta (#25313)

SchemaFactoryBeta is added to provide a place to partially stabilize APIs from SchemaFactoryAlpha. Initially just one APIs is added as @beta: scopedFactory. Users of the existing @alpha scopedFactory API on SchemaFactoryAlpha will need to update to use scopedFactoryAlpha if they require the returned factory to be a SchemaFactoryAlpha instance.

Change details

Commit: dca2361

Affected packages:

  • fluid-framework
  • @fluidframework/tree

⬆️ Table of contents

🛠️ Start Building Today!

Please continue to engage with us on GitHub Discussion and Issue pages as you adopt Fluid Framework!

Don't miss a new FluidFramework release

NewReleases is sending notifications on new releases.