Skip to content

build: Update api-extractor to 7.52.8#24599

Merged
alexvy86 merged 2 commits intomicrosoft:mainfrom
alexvy86:update-api-extractor
May 13, 2025
Merged

build: Update api-extractor to 7.52.8#24599
alexvy86 merged 2 commits intomicrosoft:mainfrom
alexvy86:update-api-extractor

Conversation

@alexvy86
Copy link
Contributor

@alexvy86 alexvy86 commented May 13, 2025

Description

Updates to version 7.52.8 of @microsoft/api-extractor to fix a regression introduced in 7.52.5 that caused running it without the --local flag (like our pipelines) to not fail when it should have (e.g. if the api reports were out of date, or TSDoc links pointed to non-existent APIs).

Also fixes some issues with api-reports that slipped in while the regression was in place (see 78bbaab).

Reviewer Guidance

The review process is outlined on this wiki page.

AB#37811

Copilot AI review requested due to automatic review settings May 13, 2025 15:11
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR upgrades the version of @microsoft/api-extractor from 7.52.5 to 7.52.8 across the repository, addressing a regression where the --local flag did not correctly fail during outdated api report scenarios.

  • Updated dependency version in multiple package.json files for API extractor.
  • Adjusted patchedDependencies references to match the new version.
  • Ensured consistency across both core and experimental packages.

Reviewed Changes

Copilot reviewed 94 out of 96 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/common/client-utils/package.json Updated API extractor version to 7.52.8
package.json Updated API extractor version and patch reference to 7.52.8
experimental/framework/tree-react-api/package.json Updated API extractor version to 7.52.8
experimental/framework/last-edited/package.json Updated API extractor version to 7.52.8
experimental/framework/data-objects/package.json Updated API extractor version to 7.52.8
experimental/dds/tree/package.json Updated API extractor version to 7.52.8
experimental/dds/sequence-deprecated/package.json Updated API extractor version to 7.52.8
experimental/dds/ot/sharejs/json1/package.json Updated API extractor version to 7.52.8
experimental/dds/ot/ot/package.json Updated API extractor version to 7.52.8
experimental/dds/attributable-map/package.json Updated API extractor version to 7.52.8
experimental/PropertyDDS/packages/property-dds/package.json Updated API extractor version to 7.52.8
experimental/PropertyDDS/packages/property-common/package.json Updated API extractor version to 7.52.8
examples/utils/migration-tools/package.json Updated API extractor version to 7.52.8
examples/utils/example-utils/package.json Updated API extractor version to 7.52.8
examples/data-objects/table-document/package.json Updated API extractor version to 7.52.8
common/lib/protocol-definitions/package.json Updated API extractor version and patch reference to 7.52.8
common/lib/common-utils/package.json Updated API extractor version and patch reference to 7.52.8
azure/packages/azure-service-utils/package.json Updated API extractor version to 7.52.8
Files not reviewed (2)
  • common/lib/common-utils/pnpm-lock.yaml: Language not supported
  • common/lib/protocol-definitions/pnpm-lock.yaml: Language not supported

@github-actions github-actions bot added area: dds Issues related to distributed data structures area: dds: propertydds area: dds: sharedstring area: dds: tree area: dev experience Improving the experience of devs building on top of fluid area: driver Driver related issues area: examples Changes that focus on our examples area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct area: loader Loader related issues area: odsp-driver area: runtime Runtime related issues area: tests Tests to add, test infrastructure improvements, etc dependencies Pull requests that update a dependency file base: main PRs targeted against main branch labels May 13, 2025
@alexvy86 alexvy86 requested a review from a team as a code owner May 13, 2025 15:25
@github-actions github-actions bot added the public api change Changes to a public API label May 13, 2025
@alexvy86 alexvy86 mentioned this pull request May 13, 2025
@alexvy86 alexvy86 force-pushed the update-api-extractor branch from 10efa0d to e8847cb Compare May 13, 2025 16:01
@alexvy86 alexvy86 requested a review from a team as a code owner May 13, 2025 16:01
@alexvy86 alexvy86 force-pushed the update-api-extractor branch from e8847cb to 78bbaab Compare May 13, 2025 16:19
@github-actions
Copy link
Contributor

🔗 No broken links found! ✅

Your attention to detail is admirable.

linkcheck output


> fluid-framework-docs-site@0.0.0 ci:check-links /home/runner/work/FluidFramework/FluidFramework/docs
> start-server-and-test "npm run serve -- --no-open" 3000 check-links

1: starting server using command "npm run serve -- --no-open"
and when url "[ 'http://127.0.0.1:3000' ]" is responding with HTTP status code 200
running tests using command "npm run check-links"


> fluid-framework-docs-site@0.0.0 serve
> docusaurus serve --no-open

[SUCCESS] Serving "build" directory at: http://localhost:3000/

> fluid-framework-docs-site@0.0.0 check-links
> linkcheck http://localhost:3000 --skip-file skipped-urls.txt

Crawling...

Stats:
  195689 links
    1565 destination URLs
    1797 URLs ignored
       0 warnings
       0 errors



```ts

export { IMessageRelay }
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This type has been @internal since its inception in 2023 and actually lives in @fluidframework/devtools-core, this package just re-exports it. Unclear why it was showing up here when it's internal, but it seems correct that it is not anymore.

FYI @Josmithr & @jason-ha, just informational since you both have a decent amount of knowledge/involvement with api-extractor.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is expected. I fixed this bug a week or two back, we just hadn't ingested the change yet. Glad it's working!
microsoft/rushstack#5211

Comment on lines -9 to -11
export { AsyncGenerator_2 as AsyncGenerator }

export { Generator_2 as Generator }
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar scenario to comment above, these types are @internal so not sure what they were doing here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah. this package doesn't even need API reports really anyway.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was a bug fixed in microsoft/rushstack#5211

readonly clientId: string;
}

export { IThrottlingWarning }
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one... the type definition itself (note, in @fluidframework/core-interfaces) is @legacy + @alpha. But when we re-export it from container-definitions, we provide new TSDoc that only specify @deprecated... is that overriding the original tags and making it disappear?

Comment on lines -364 to -365
export { getSerializedUploadedEditChunkContents }
export { getSerializedUploadedEditChunkContents as getUploadedEditChunkContents }
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

getSerializedUploadedEditChunkContents has been @internal ever since we created the tag, so seems they were incorrect in showing up here.

Comment on lines -7 to -11
export { IJSONRunSegment }

export { SharedSequence }

export { SubSequence }
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@internal since we created the tag; why did we have several instances of those showing up here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


```ts

export { performance_2 as performance }
Copy link
Contributor Author

@alexvy86 alexvy86 May 13, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A bit confused as to why it called it performance_2 at any point... but the type is @internal so correct to disappear?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

api-extractor uses that convention when it needs to rename things for whatever reason (usually two conflicting imports in the api file). It should be transparent to users. No context on visibility of the type.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I'm just confused what the second thing was. Maybe the native performance object, I guess.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup. API-Extractor renames it to avoid conflicting with the global, then re-exports it under the original alias.


export { IUser }

export { ScopeType }
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change seems correct...? The type lives in @fluidframework/driver-definitions and it's @legacy + @alpha (separate API report, where it still shows up).

Comment on lines -7 to -35
export { BaseSegment }

export { InteriorSequencePlace }

export { ISegment }

export { LocalReferencePosition }

export { MapLike }

export { Marker }

export { MergeTreeDeltaType }

export { PropertySet }

export { ReferencePosition }

export { ReferenceType }

export { reservedMarkerIdKey }

export { SequencePlace }

export { Side }

export { TextSegment }

export { TrackingGroup }
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These seem to be @legacy + @alpha which has its own api report, so correct they disappear here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah these should all be legacy+alpha


```ts

export { DocumentType_2 as DocumentType }
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@internal, seems correct to go away.

// @public
export type InsertableTypedNode<TSchema extends TreeNodeSchema, T = UnionToIntersection<TSchema>> = (T extends TreeNodeSchema<string, NodeKind, TreeNode | TreeLeafValue, never, true> ? NodeBuilderData<T> : never) | (T extends TreeNodeSchema ? Unhydrated<TreeNode extends NodeFromSchema<T> ? never : NodeFromSchema<T>> : never);

export { InteriorSequencePlace }
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This and the two below are @legacy + @alpha (separate report) so correct to disappear?

Copy link
Contributor

@CraigMacomber CraigMacomber left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Changes to Tree look good.

package.json and lock file changes also look good.

I'll leave opinions of some of the odd report deltas and the update to the patch (assuming it still works unchanged) for others to take a look at.

Copy link
Contributor

@ChumpChief ChumpChief left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Your explanations make sense to me I think. Might want an api-extractor expert to take a look but I don't see anything that worries me.

Copy link
Contributor

@Abe27342 Abe27342 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Types and changes I have context on look good to me. Maybe we want to do some more scrutiny in the area given this kind of surprising set of changes, but that can come later...

/**
* A row in a table.
* @remarks Implemented by the schema class returned from {@link TableSchema.(createRow:2)}.
* @remarks Implemented by the schema class returned from {@link TableSchema.(row:2)}.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For context, this was a bug that I checked in. It was not caught due to the API-Extractor regression this PR is aimed to resolve.

Copy link
Contributor

@Josmithr Josmithr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So happy to see all of the API report lies go away! Thanks for updating!!

@alexvy86 alexvy86 merged commit b5d8b7f into microsoft:main May 13, 2025
93 checks passed
@alexvy86 alexvy86 deleted the update-api-extractor branch May 13, 2025 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: dds: propertydds area: dds: sharedstring area: dds: tree area: dds Issues related to distributed data structures area: dev experience Improving the experience of devs building on top of fluid area: driver Driver related issues area: examples Changes that focus on our examples area: framework Framework is a tag for issues involving the developer framework. Eg Aqueduct area: loader Loader related issues area: odsp-driver area: runtime Runtime related issues area: tests Tests to add, test infrastructure improvements, etc base: main PRs targeted against main branch dependencies Pull requests that update a dependency file public api change Changes to a public API

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants