Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make SchemaUpgrader faster #3057

Merged
merged 8 commits into from
Jul 15, 2024
Merged

Make SchemaUpgrader faster #3057

merged 8 commits into from
Jul 15, 2024

Conversation

clenfest
Copy link
Contributor

@clenfest clenfest commented Jun 28, 2024

The idea is to make SchemaUpgrader faster by precomputing each type into a map that can be passed around once rather. Ideally we would be able to entirely get rid of otherSubgraphs as a parameter to SchemaUpgrader before this PR is ready.

Note that although this works with tests, I think there may be an issue with interfaces that isn't covered by tests, so do not merge unless someone has a chance to look at this with a critical eye. (I think the issue is that the map is built by iterating over objectTypes but later code iterates over types() which may include interfaces.

Copy link

changeset-bot bot commented Jun 28, 2024

🦋 Changeset detected

Latest commit: 484c957

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 7 packages
Name Type
@apollo/federation-internals Patch
@apollo/gateway Patch
@apollo/composition Patch
@apollo/query-planner Patch
@apollo/query-graphs Patch
@apollo/subgraph Patch
apollo-federation-integration-testsuite Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Copy link

netlify bot commented Jun 28, 2024

👷 Deploy Preview for apollo-federation-docs processing.

Name Link
🔨 Latest commit cb89af1
🔍 Latest deploy log https://app.netlify.com/sites/apollo-federation-docs/deploys/667f3386bd48fb00086f2d28

Copy link

netlify bot commented Jun 28, 2024

Deploy Preview for apollo-federation-docs ready!

Name Link
🔨 Latest commit 484c957
🔍 Latest deploy log https://app.netlify.com/sites/apollo-federation-docs/deploys/669578a6d5bfba0008885529
😎 Deploy Preview https://deploy-preview-3057--apollo-federation-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link

codesandbox-ci bot commented Jun 28, 2024

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

@clenfest clenfest changed the title WIP: Make SchemaUpgrader faster Make SchemaUpgrader faster Jul 10, 2024
@clenfest clenfest changed the base branch from main to version-2.8.3-beta July 10, 2024 18:51
@clenfest clenfest marked this pull request as ready for review July 11, 2024 14:05
@clenfest clenfest requested a review from a team as a code owner July 11, 2024 14:05
Base automatically changed from version-2.8.3-beta to main July 12, 2024 22:19
Copy link

@TylerBloom TylerBloom left a comment

Choose a reason for hiding this comment

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

LGTM

@clenfest clenfest merged commit 672aca7 into main Jul 15, 2024
17 checks passed
@clenfest clenfest deleted the clenfest/schemaUpgrader branch July 15, 2024 20:31
clenfest pushed a commit that referenced this pull request Jul 25, 2024
This PR was opened by the [Changesets
release](https://github.com/changesets/action) GitHub action. When
you're ready to do a release, you can merge this and the packages will
be published to npm automatically. If you're not ready to do a release
yet, that's fine, whenever you add more changesets to main, this PR will
be updated.


# Releases
## @apollo/composition@2.8.4

### Patch Changes

- When doing interface type intersection detection, allow
@interfaceObject to stand in for any type
([#3087](#3087))

- Updated dependencies
\[[`5f4bb160d024678d6facd471c43c8ec61c86e701`](5f4bb16),
[`672aca7cbeb0a6a38586357a4e154f2dd91caa0c`](672aca7)]:
    -   @apollo/federation-internals@2.8.4
    -   @apollo/query-graphs@2.8.4

## @apollo/gateway@2.8.4

### Patch Changes

- Updated dependencies
\[[`4d9e0f6390c5114132d205ab73b6aa1b9ffa8cd8`](4d9e0f6),
[`5f4bb160d024678d6facd471c43c8ec61c86e701`](5f4bb16),
[`672aca7cbeb0a6a38586357a4e154f2dd91caa0c`](672aca7)]:
    -   @apollo/composition@2.8.4
    -   @apollo/federation-internals@2.8.4
    -   @apollo/query-planner@2.8.4

## @apollo/federation-internals@2.8.4

### Patch Changes

- When auto-upgrading schemas from fed1, never add @Shareable on
subscription fields.
([#3094](#3094))

- Save time in SchemaUpgrader by pre-computing which subgraphs contain
each type
([#3057](#3057))

## @apollo/query-graphs@2.8.4

### Patch Changes

- Updated dependencies
\[[`5f4bb160d024678d6facd471c43c8ec61c86e701`](5f4bb16),
[`672aca7cbeb0a6a38586357a4e154f2dd91caa0c`](672aca7)]:
    -   @apollo/federation-internals@2.8.4

## @apollo/query-planner@2.8.4

### Patch Changes

- Updated dependencies
\[[`5f4bb160d024678d6facd471c43c8ec61c86e701`](5f4bb16),
[`672aca7cbeb0a6a38586357a4e154f2dd91caa0c`](672aca7)]:
    -   @apollo/federation-internals@2.8.4
    -   @apollo/query-graphs@2.8.4

## @apollo/subgraph@2.8.4

### Patch Changes

- Add descriptions for federation directives
([#3095](#3095))

- Updated dependencies
\[[`5f4bb160d024678d6facd471c43c8ec61c86e701`](5f4bb16),
[`672aca7cbeb0a6a38586357a4e154f2dd91caa0c`](672aca7)]:
    -   @apollo/federation-internals@2.8.4

## apollo-federation-integration-testsuite@2.8.4

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants