Skip to content

Commit 12321b2

Browse files
heliocliuchristiangoChumpChieftylerbutlerjatgarg
authored
FI main to next (#9515)
* Move internal implementation of the odsp driver cache to the Fluid Framework Repository (#9418) * initial commit * Update tsconfigs * Compile fixes * Make tests pass * Add readme * Update formatting * Some eslint suppressions and fixes * Fix formatting lint issues * Disable some lint rules * More disables * Fix last of eslint issues * Policy check fixes * Policy update * Pin url-parse types * Add comments * Undo lerna package changes * Update lockfile * Undo content changes * Undo content changes * Undo content * Remove deprecated API * Rename folder * Autogenerated files * Remove more internal references * Update packages/drivers/driver-web-cache/package.json Co-authored-by: Helio Liu <[email protected]> * Update packages/drivers/driver-web-cache/package.json Co-authored-by: Helio Liu <[email protected]> * Minor cleanups Co-authored-by: Helio Liu <[email protected]> * Update bump-version tool to use 1 indexing for virtual patch (#9459) Update the bump-version tooling to use 1 indexing for the minor component when bumping the major component for virtual patches. This preserves 4 digits for the last version component (that holds minor and patch information) for all versions, and skips over the x.x.0 version. This avoids confusion around x.x.1 and x.x.1000 due to the differences in number of digits. 0 padding is not an option because it is not considered valid semver. * Update BREAKING.md format to include upcoming change notes (#9457) Update the formatting for 0.58 section and the instructions to include upcoming change notes. This is to be more explicit about upcoming breaking changes to help consumers with planning them, because currently they tend to get lost with the other breaking entries. This is also to help build habits around announcing upcoming breaking changes instead of dumping them on consumers only when they actually break. * Update tinylicious and gitrest, and use release packages everywhere (#9473) * Use strict eslint config in fluid-framework (#9476) * Add recursive firing of dispose events of sub directory deletion (#9451) * Remove outdated socket.io client types package (#9479) * Fixes the FlushMode validation in PendingStateManager which expected Immediate to be the default FlushMode (#9432) * Organize and document summarizer telemetry (#9278) Add typing and comments for fields logged in summarizer telemetry. Fix a double increment of RunningSummarizer.totalSuccessfulAttempts. * Bump eslint version for main, and bump used versions of eslint after release (#9493) * Update to latest tinylicious throughout repo (#9494) * gitrest: pre-compute latest summary for Historian caching (#9490) * gitrest: add FS Manager interface (#9496) * r11s-driver: handle node-fetch network errors (#9498) * Remove GC from odspCache implementation. (#9415) * Remove GC from odspCache implementation by using a local Expiration cache with a single entry per documentId. Also, taking the chance to remove 2 secs timeouts from the UTs and start relying on the cleanup at the end of the test to remove the cache entries just like the actual implementation that implements from the EpochTracker does. * Pass ISequencedDocumentMessage to interval creation API (#9465) Pass msg to interval creation API so we attach to the correct text segment on remote op * Remove duplicate nesting of server packages from lerna-package-lock.json (#9507) Co-authored-by: Christian Gonzalez <[email protected]> Co-authored-by: Matt Rakow <[email protected]> Co-authored-by: Tyler Butler <[email protected]> Co-authored-by: Jatin Garg <[email protected]> Co-authored-by: Navin Agarwal <[email protected]> Co-authored-by: Paul Leathers <[email protected]> Co-authored-by: Zach Newton <[email protected]> Co-authored-by: NicholasCouri <[email protected]>
1 parent 81f8efe commit 12321b2

File tree

259 files changed

+4219
-3792
lines changed

Some content is hidden

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

259 files changed

+4219
-3792
lines changed

BREAKING.md

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,23 @@
1-
## Adding breaking change notes
1+
# Adding breaking and upcoming change notes
22

3-
Notes on breaking and otherwise interesting changes go here. They will be reviewed and published along with each release. Published changelogs may be found on the docs site at fluidframework.com.
3+
Notes on breaking, upcoming, and otherwise interesting changes go here. They will be reviewed and published along with each release. Published changelogs may be found on the docs site at fluidframework.com.
44

5-
### Writing a change note
5+
Upcoming changes include anything expected to become a breaking change in the future. It can include deprecations, optional to required transitions, etc. They should be added to the section for the version in which they are being announced.
6+
7+
Breaking changes include anything that a consumer upgrading to the specified version must account for as part of the upgrade process. It can include expected compile time breaks, runtime compatibility breaks, etc. They should typically be announced as an upcoming change in an earlier version before becoming a breaking change.
8+
9+
## Writing a change note
610

711
There are a few steps you can take to write a good change note and avoid needing to followup for clarification.
812
- Provide a concise title. It should make clear what the topic of the change is.
913
- Ensure the affected packages are named or clearly identifiable within the body.
1014
- Provide guidance on how the change should be consumed if applicable, such as by specifying replacement APIs.
1115
- Consider providing code examples as part of guidance for non-trivial changes.
1216

17+
# 0.58
18+
19+
## 0.58 Upcoming changes
20+
1321
## 0.58 Breaking changes
1422
- [Move IntervalType from merge-tree to sequence package](#Move-IntervalType-from-merge-tree-to-sequence-package)
1523
- [Remove logger property from IContainerContext](#Remove-logger-property-from-IContainerContext)
@@ -42,6 +50,10 @@ sometimes followed by a colon and an inner error message when applicable.
4250
Users will not be allowed to do operations on a deleted directory. Users can subscribe to `disposed` event to know if a sub directory is deleted. Accessing deleted sub directory
4351
will throw `UsageError` exception now.
4452

53+
# 0.57
54+
55+
## 0.57 Upcoming changes
56+
4557
## 0.57 Breaking changes
4658
- [IFluidConfiguration removed](#IFluidConfiguration-removed)
4759
- [Driver error constructors' signatures have changed](#driver-error-constructors-signatures-have-changed)

api-report/driver-base.api.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,12 @@ import { ISignalClient } from '@fluidframework/protocol-definitions';
1818
import { ISignalMessage } from '@fluidframework/protocol-definitions';
1919
import { ITelemetryLogger } from '@fluidframework/common-definitions';
2020
import { ITokenClaims } from '@fluidframework/protocol-definitions';
21+
import type { Socket } from 'socket.io-client';
2122
import { TypedEventEmitter } from '@fluidframework/common-utils';
2223

2324
// @public
2425
export class DocumentDeltaConnection extends TypedEventEmitter<IDocumentDeltaConnectionEvents> implements IDocumentDeltaConnection, IDisposable {
25-
protected constructor(socket: SocketIOClient.Socket, documentId: string, logger: ITelemetryLogger, enableLongPollingDowngrades?: boolean);
26+
protected constructor(socket: Socket, documentId: string, logger: ITelemetryLogger, enableLongPollingDowngrades?: boolean);
2627
// (undocumented)
2728
protected addTrackedListener(event: string, listener: (...args: any[]) => void): void;
2829
checkpointSequenceNumber: number | undefined;
@@ -68,7 +69,7 @@ export class DocumentDeltaConnection extends TypedEventEmitter<IDocumentDeltaCon
6869
protected readonly queuedSignals: ISignalMessage[];
6970
get serviceConfiguration(): IClientConfiguration;
7071
// (undocumented)
71-
protected readonly socket: SocketIOClient.Socket;
72+
protected readonly socket: Socket;
7273
submit(messages: IDocumentMessage[]): void;
7374
// (undocumented)
7475
protected submitCore(type: string, messages: IDocumentMessage[]): void;

api-report/driver-web-cache.api.md

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
## API Report File for "@fluidframework/driver-web-cache"
2+
3+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
4+
5+
```ts
6+
7+
import { ICacheEntry } from '@fluidframework/odsp-driver-definitions';
8+
import { IFileEntry } from '@fluidframework/odsp-driver-definitions';
9+
import { IPersistedCache } from '@fluidframework/odsp-driver-definitions';
10+
import { ITelemetryBaseLogger } from '@fluidframework/common-definitions';
11+
12+
// @public (undocumented)
13+
export function deleteFluidCacheIndexDbInstance(): Promise<void>;
14+
15+
// @public
16+
export class FluidCache implements IPersistedCache {
17+
constructor(config: FluidCacheConfig);
18+
// (undocumented)
19+
get(cacheEntry: ICacheEntry): Promise<any>;
20+
// (undocumented)
21+
put(entry: ICacheEntry, value: any): Promise<void>;
22+
// (undocumented)
23+
removeEntries(file: IFileEntry): Promise<void>;
24+
}
25+
26+
// @public (undocumented)
27+
export interface FluidCacheConfig {
28+
logger?: ITelemetryBaseLogger;
29+
maxCacheItemAge: number;
30+
partitionKey: string | null;
31+
}
32+
33+
34+
// (No @packageDocumentation comment for this package)
35+
36+
```

api-report/merge-tree.api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ export class Client {
120120
// (undocumented)
121121
getCollabWindow(): CollaborationWindow;
122122
// (undocumented)
123-
getContainingSegment<T extends ISegment>(pos: number): {
123+
getContainingSegment<T extends ISegment>(pos: number, op?: ISequencedDocumentMessage): {
124124
segment: T | undefined;
125125
offset: number | undefined;
126126
};
@@ -367,7 +367,7 @@ export interface IInterval {
367367
// (undocumented)
368368
compareStart(b: IInterval): number;
369369
// (undocumented)
370-
modify(label: string, start: number, end: number): IInterval | undefined;
370+
modify(label: string, start: number, end: number, op?: ISequencedDocumentMessage): IInterval | undefined;
371371
// (undocumented)
372372
overlaps(b: IInterval): boolean;
373373
// (undocumented)

api-report/odsp-driver.api.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { IdentityType } from '@fluidframework/odsp-driver-definitions';
1111
import { IDocumentService } from '@fluidframework/driver-definitions';
1212
import { IDocumentServiceFactory } from '@fluidframework/driver-definitions';
1313
import { IFluidCodeDetails } from '@fluidframework/core-interfaces';
14+
import type { io } from 'socket.io-client';
1415
import { IOdspResolvedUrl } from '@fluidframework/odsp-driver-definitions';
1516
import { IOdspUrlParts } from '@fluidframework/odsp-driver-definitions';
1617
import { IPersistedCache } from '@fluidframework/odsp-driver-definitions';
@@ -91,7 +92,7 @@ export class OdspDocumentServiceFactory extends OdspDocumentServiceFactoryCore i
9192

9293
// @public
9394
export class OdspDocumentServiceFactoryCore implements IDocumentServiceFactory {
94-
constructor(getStorageToken: TokenFetcher<OdspResourceTokenFetchOptions>, getWebsocketToken: TokenFetcher<OdspResourceTokenFetchOptions> | undefined, getSocketIOClient: () => Promise<SocketIOClientStatic>, persistedCache?: IPersistedCache, hostPolicy?: HostStoragePolicy);
95+
constructor(getStorageToken: TokenFetcher<OdspResourceTokenFetchOptions>, getWebsocketToken: TokenFetcher<OdspResourceTokenFetchOptions> | undefined, getSocketIOClient: () => Promise<typeof io>, persistedCache?: IPersistedCache, hostPolicy?: HostStoragePolicy);
9596
// (undocumented)
9697
createContainer(createNewSummary: ISummaryTree | undefined, createNewResolvedUrl: IResolvedUrl, logger?: ITelemetryBaseLogger): Promise<IDocumentService>;
9798
// (undocumented)

api-report/sequence.api.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ export interface IIntervalHelpers<TInterval extends ISerializableInterval> {
6767
// (undocumented)
6868
compareEnds(a: TInterval, b: TInterval): number;
6969
// (undocumented)
70-
create(label: string, start: number, end: number, client: Client, intervalType?: IntervalType): TInterval;
70+
create(label: string, start: number, end: number, client: Client, intervalType?: IntervalType, op?: ISequencedDocumentMessage): TInterval;
7171
}
7272

7373
// @public (undocumented)
@@ -102,7 +102,7 @@ export class Interval implements ISerializableInterval {
102102
// (undocumented)
103103
getProperties(): PropertySet;
104104
// (undocumented)
105-
modify(label: string, start: number, end: number): Interval;
105+
modify(label: string, start: number, end: number, op?: ISequencedDocumentMessage): Interval;
106106
// (undocumented)
107107
overlaps(b: Interval): boolean;
108108
// (undocumented)
@@ -386,7 +386,7 @@ export class SequenceInterval implements ISerializableInterval {
386386
// (undocumented)
387387
intervalType: IntervalType;
388388
// (undocumented)
389-
modify(label: string, start: number, end: number): SequenceInterval;
389+
modify(label: string, start: number, end: number, op?: ISequencedDocumentMessage): SequenceInterval;
390390
// (undocumented)
391391
overlaps(b: SequenceInterval): boolean;
392392
// (undocumented)

common/build/eslint-config-fluid/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@fluidframework/eslint-config-fluid",
3-
"version": "0.27.0",
3+
"version": "0.27.2000",
44
"description": "Shareable ESLint config for the Fluid Framework",
55
"homepage": "https://fluidframework.com",
66
"repository": {

common/lib/common-definitions/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/lib/common-definitions/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646
"@fluidframework/build-common": "^0.23.0",
4747
"@fluidframework/build-tools": "^0.2.56910",
4848
"@fluidframework/common-definitions-0.20.0": "npm:@fluidframework/[email protected]",
49-
"@fluidframework/eslint-config-fluid": "^0.27.0-0",
49+
"@fluidframework/eslint-config-fluid": "^0.27.0",
5050
"@microsoft/api-extractor": "^7.16.1",
5151
"@rushstack/eslint-config": "^2.5.1",
5252
"@typescript-eslint/eslint-plugin": "~5.9.0",

common/lib/common-utils/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/lib/common-utils/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
"@fluidframework/build-common": "^0.23.0",
9090
"@fluidframework/build-tools": "^0.2.56910",
9191
"@fluidframework/common-utils-0.32.1": "npm:@fluidframework/[email protected]",
92-
"@fluidframework/eslint-config-fluid": "^0.27.0-0",
92+
"@fluidframework/eslint-config-fluid": "^0.27.0",
9393
"@microsoft/api-extractor": "^7.16.1",
9494
"@rushstack/eslint-config": "^2.5.1",
9595
"@types/base64-js": "^1.3.0",

common/lib/container-definitions/package-lock.json

Lines changed: 10 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/lib/container-definitions/package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@
4242
"dependencies": {
4343
"@fluidframework/common-definitions": "^0.20.0",
4444
"@fluidframework/core-interfaces": "^0.42.0",
45-
"@fluidframework/driver-definitions": "^0.45.0-0",
46-
"@fluidframework/protocol-definitions": "^0.1027.0-0"
45+
"@fluidframework/driver-definitions": "^0.45.1000",
46+
"@fluidframework/protocol-definitions": "^0.1027.1000"
4747
},
4848
"devDependencies": {
4949
"@fluidframework/build-common": "^0.23.0",
@@ -56,7 +56,7 @@
5656
"@fluidframework/container-definitions-0.44.0": "npm:@fluidframework/[email protected]",
5757
"@fluidframework/container-definitions-0.45.0": "npm:@fluidframework/[email protected]",
5858
"@fluidframework/container-definitions-0.46.0": "npm:@fluidframework/[email protected]",
59-
"@fluidframework/eslint-config-fluid": "^0.27.0-0",
59+
"@fluidframework/eslint-config-fluid": "^0.27.0",
6060
"@microsoft/api-extractor": "^7.16.1",
6161
"@rushstack/eslint-config": "^2.5.1",
6262
"@types/mocha": "^8.2.2",

common/lib/core-interfaces/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/lib/core-interfaces/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@
4545
"@fluidframework/core-interfaces-0.40.0": "npm:@fluidframework/[email protected]",
4646
"@fluidframework/core-interfaces-0.41.0": "npm:@fluidframework/[email protected]",
4747
"@fluidframework/core-interfaces-0.42.0": "npm:@fluidframework/[email protected]",
48-
"@fluidframework/eslint-config-fluid": "^0.27.0-0",
48+
"@fluidframework/eslint-config-fluid": "^0.27.0",
4949
"@microsoft/api-extractor": "^7.16.1",
5050
"@rushstack/eslint-config": "^2.5.1",
5151
"@types/node": "^14.18.0",

common/lib/driver-definitions/package-lock.json

Lines changed: 6 additions & 6 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/lib/driver-definitions/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
"dependencies": {
4141
"@fluidframework/common-definitions": "^0.20.0",
4242
"@fluidframework/core-interfaces": "^0.42.0",
43-
"@fluidframework/protocol-definitions": "^0.1027.0-0"
43+
"@fluidframework/protocol-definitions": "^0.1027.1000"
4444
},
4545
"devDependencies": {
4646
"@fluidframework/build-common": "^0.23.0",
@@ -51,7 +51,7 @@
5151
"@fluidframework/driver-definitions-0.42.0": "npm:@fluidframework/[email protected]",
5252
"@fluidframework/driver-definitions-0.43.0": "npm:@fluidframework/[email protected]",
5353
"@fluidframework/driver-definitions-0.44.0": "npm:@fluidframework/[email protected]",
54-
"@fluidframework/eslint-config-fluid": "^0.27.0-0",
54+
"@fluidframework/eslint-config-fluid": "^0.27.0",
5555
"@microsoft/api-extractor": "^7.16.1",
5656
"@rushstack/eslint-config": "^2.5.1",
5757
"@typescript-eslint/eslint-plugin": "~5.9.0",

common/lib/protocol-definitions/package-lock.json

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

common/lib/protocol-definitions/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
"devDependencies": {
4444
"@fluidframework/build-common": "^0.23.0",
4545
"@fluidframework/build-tools": "^0.2.56910",
46-
"@fluidframework/eslint-config-fluid": "^0.27.0-0",
46+
"@fluidframework/eslint-config-fluid": "^0.27.0",
4747
"@fluidframework/protocol-definitions-0.1024.0": "npm:@fluidframework/[email protected]",
4848
"@fluidframework/protocol-definitions-0.1025.1": "npm:@fluidframework/[email protected]",
4949
"@fluidframework/protocol-definitions-0.1026.0": "npm:@fluidframework/[email protected]",

0 commit comments

Comments
 (0)