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

Add missing query graph edge for interfaces implementing interfaces #3122

Merged

Conversation

sachindshinde
Copy link
Contributor

During addAdditionalAbstractTypeEdges(), we add edges between abstract types, but we specifically were skipping edges between interfaces implementing interfaces because that function expected it to be added already by addAbstractTypeEdges(). However, the latter function only handles edges between concrete (object) and abstract types. This PR accordingly updates addAdditionalAbstractTypeEdges() to stop skipping interfaces-implementing-interfaces edges, and updates tests accordingly.

@sachindshinde sachindshinde requested a review from a team as a code owner August 19, 2024 16:46
Copy link

changeset-bot bot commented Aug 19, 2024

🦋 Changeset detected

Latest commit: 7040fba

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

This PR includes changesets to release 7 packages
Name Type
@apollo/gateway Patch
@apollo/query-graphs Patch
@apollo/composition Patch
@apollo/query-planner Patch
@apollo/federation-internals 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

@sachindshinde sachindshinde marked this pull request as draft August 19, 2024 16:46
Copy link

netlify bot commented Aug 19, 2024

Deploy Preview for apollo-federation-docs canceled.

Name Link
🔨 Latest commit 7345710
🔍 Latest deploy log https://app.netlify.com/sites/apollo-federation-docs/deploys/66c376cedab0a40008d58875

Copy link

codesandbox-ci bot commented Aug 19, 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.

@sachindshinde sachindshinde changed the base branch from main to next August 21, 2024 16:58
…ere already added for interfaces implementing interfaces
…enting-interfaces test, so we update the test
@sachindshinde sachindshinde force-pushed the sachin/fix-missing-query-graph-edge-for-interface-implements branch from 7345710 to 496e5a3 Compare August 21, 2024 17:01
@sachindshinde sachindshinde marked this pull request as ready for review August 21, 2024 17:02
@dariuszkuc dariuszkuc merged commit acfe319 into next Aug 21, 2024
15 checks passed
@dariuszkuc dariuszkuc deleted the sachin/fix-missing-query-graph-edge-for-interface-implements branch August 21, 2024 17:37
sachindshinde pushed a commit that referenced this pull request Aug 22, 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
version-2.9.0-beta, this PR will be updated.

⚠️⚠️⚠️⚠️⚠️⚠️

`version-2.9.0-beta` is currently in **pre mode** so this branch has
prereleases rather than normal releases. If you want to exit
prereleases, run `changeset pre exit` on `version-2.9.0-beta`.

⚠️⚠️⚠️⚠️⚠️⚠️

# Releases
## @apollo/composition@2.9.0-beta.0

### Minor Changes

- Implements two new directives for defining custom costs for demand
control. The `@cost` directive allows setting a custom weight to a
particular field in the graph, overriding the default cost calculation.
The `@listSize` directive gives the cost calculator information about
how to estimate the size of lists returned by subgraphs. This can either
be a static size or a value derived from input arguments, such as paging
parameters.
([#3074](#3074))

### Patch Changes

- Reduce memory overhead during satisfiability checking when there are
many options.
([#3109](#3109))

- Updated dependencies
\[[`acfe3193429c7f99b4fc564b20828aaa8659a75c`](acfe319),
[`02c2a34a62c3717a4885449172e404f19ebf66c9`](02c2a34),
[`0ccfd937d4b4a576f890665ceebbd7986fac5d0c`](0ccfd93),
[`e0a5075c0d12a0e2f7ef303b246e3216a139d3e0`](e0a5075)]:
    -   @apollo/query-graphs@2.9.0-beta.0
    -   @apollo/federation-internals@2.9.0-beta.0

## @apollo/federation-internals@2.9.0-beta.0

### Minor Changes

- Implements two new directives for defining custom costs for demand
control. The `@cost` directive allows setting a custom weight to a
particular field in the graph, overriding the default cost calculation.
The `@listSize` directive gives the cost calculator information about
how to estimate the size of lists returned by subgraphs. This can either
be a static size or a value derived from input arguments, such as paging
parameters.
([#3074](#3074))

### Patch Changes

- Reduce memory overhead during satisfiability checking when there are
many options.
([#3109](#3109))

- Fix issue where variable was not passed into subgraph when embedded in
a fragment
([#3119](#3119))

## @apollo/gateway@2.9.0-beta.0

### Patch Changes

- Avoid type explosion for inline fragments where the type condition is
an interface that implements the parent type.
([#3122](#3122))

- Reduce memory overhead during satisfiability checking when there are
many options.
([#3109](#3109))

- Updated dependencies
\[[`02c2a34a62c3717a4885449172e404f19ebf66c9`](02c2a34),
[`0ccfd937d4b4a576f890665ceebbd7986fac5d0c`](0ccfd93),
[`e0a5075c0d12a0e2f7ef303b246e3216a139d3e0`](e0a5075)]:
    -   @apollo/federation-internals@2.9.0-beta.0
    -   @apollo/composition@2.9.0-beta.0
    -   @apollo/query-planner@2.9.0-beta.0

## @apollo/query-graphs@2.9.0-beta.0

### Patch Changes

- Avoid type explosion for inline fragments where the type condition is
an interface that implements the parent type.
([#3122](#3122))

- Updated dependencies
\[[`02c2a34a62c3717a4885449172e404f19ebf66c9`](02c2a34),
[`0ccfd937d4b4a576f890665ceebbd7986fac5d0c`](0ccfd93),
[`e0a5075c0d12a0e2f7ef303b246e3216a139d3e0`](e0a5075)]:
    -   @apollo/federation-internals@2.9.0-beta.0

## @apollo/query-planner@2.9.0-beta.0

### Patch Changes

- Fix issue where variable was not passed into subgraph when embedded in
a fragment
([#3119](#3119))

- Updated dependencies
\[[`acfe3193429c7f99b4fc564b20828aaa8659a75c`](acfe319),
[`02c2a34a62c3717a4885449172e404f19ebf66c9`](02c2a34),
[`0ccfd937d4b4a576f890665ceebbd7986fac5d0c`](0ccfd93),
[`e0a5075c0d12a0e2f7ef303b246e3216a139d3e0`](e0a5075)]:
    -   @apollo/query-graphs@2.9.0-beta.0
    -   @apollo/federation-internals@2.9.0-beta.0

## @apollo/subgraph@2.9.0-beta.0

### Patch Changes

- Updated dependencies
\[[`02c2a34a62c3717a4885449172e404f19ebf66c9`](02c2a34),
[`0ccfd937d4b4a576f890665ceebbd7986fac5d0c`](0ccfd93),
[`e0a5075c0d12a0e2f7ef303b246e3216a139d3e0`](e0a5075)]:
    -   @apollo/federation-internals@2.9.0-beta.0

## apollo-federation-integration-testsuite@2.9.0-beta.0

Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
tninesling pushed a commit that referenced this pull request Aug 27, 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.9.0

### Minor Changes

- Implements two new directives for defining custom costs for demand
control. The `@cost` directive allows setting a custom weight to a
particular field in the graph, overriding the default cost calculation.
The `@listSize` directive gives the cost calculator information about
how to estimate the size of lists returned by subgraphs. This can either
be a static size or a value derived from input arguments, such as paging
parameters.
([#3074](#3074))

### Patch Changes

- Reduce memory overhead during satisfiability checking when there are
many options.
([#3109](#3109))

- Updated dependencies
\[[`acfe3193429c7f99b4fc564b20828aaa8659a75c`](acfe319),
[`02c2a34a62c3717a4885449172e404f19ebf66c9`](02c2a34),
[`0ccfd937d4b4a576f890665ceebbd7986fac5d0c`](0ccfd93),
[`e0a5075c0d12a0e2f7ef303b246e3216a139d3e0`](e0a5075)]:
    -   @apollo/query-graphs@2.9.0
    -   @apollo/federation-internals@2.9.0

## @apollo/federation-internals@2.9.0

### Minor Changes

- Implements two new directives for defining custom costs for demand
control. The `@cost` directive allows setting a custom weight to a
particular field in the graph, overriding the default cost calculation.
The `@listSize` directive gives the cost calculator information about
how to estimate the size of lists returned by subgraphs. This can either
be a static size or a value derived from input arguments, such as paging
parameters.
([#3074](#3074))

### Patch Changes

- Reduce memory overhead during satisfiability checking when there are
many options.
([#3109](#3109))

- Fix issue where variable was not passed into subgraph when embedded in
a fragment
([#3119](#3119))

## @apollo/gateway@2.9.0

### Patch Changes

- Avoid type explosion for inline fragments where the type condition is
an interface that implements the parent type.
([#3122](#3122))

- Reduce memory overhead during satisfiability checking when there are
many options.
([#3109](#3109))

- Updated dependencies
\[[`02c2a34a62c3717a4885449172e404f19ebf66c9`](02c2a34),
[`0ccfd937d4b4a576f890665ceebbd7986fac5d0c`](0ccfd93),
[`e0a5075c0d12a0e2f7ef303b246e3216a139d3e0`](e0a5075)]:
    -   @apollo/federation-internals@2.9.0
    -   @apollo/composition@2.9.0
    -   @apollo/query-planner@2.9.0

## @apollo/query-graphs@2.9.0

### Patch Changes

- Avoid type explosion for inline fragments where the type condition is
an interface that implements the parent type.
([#3122](#3122))

- Updated dependencies
\[[`02c2a34a62c3717a4885449172e404f19ebf66c9`](02c2a34),
[`0ccfd937d4b4a576f890665ceebbd7986fac5d0c`](0ccfd93),
[`e0a5075c0d12a0e2f7ef303b246e3216a139d3e0`](e0a5075)]:
    -   @apollo/federation-internals@2.9.0

## @apollo/query-planner@2.9.0

### Patch Changes

- Fix issue where variable was not passed into subgraph when embedded in
a fragment
([#3119](#3119))

- Updated dependencies
\[[`acfe3193429c7f99b4fc564b20828aaa8659a75c`](acfe319),
[`02c2a34a62c3717a4885449172e404f19ebf66c9`](02c2a34),
[`0ccfd937d4b4a576f890665ceebbd7986fac5d0c`](0ccfd93),
[`e0a5075c0d12a0e2f7ef303b246e3216a139d3e0`](e0a5075)]:
    -   @apollo/query-graphs@2.9.0
    -   @apollo/federation-internals@2.9.0

## @apollo/subgraph@2.9.0

### Patch Changes

- Updated dependencies
\[[`02c2a34a62c3717a4885449172e404f19ebf66c9`](02c2a34),
[`0ccfd937d4b4a576f890665ceebbd7986fac5d0c`](0ccfd93),
[`e0a5075c0d12a0e2f7ef303b246e3216a139d3e0`](e0a5075)]:
    -   @apollo/federation-internals@2.9.0

## apollo-federation-integration-testsuite@2.9.0

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