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

Upcoming Release Changes #6183

Merged
merged 1 commit into from
May 27, 2024
Merged

Upcoming Release Changes #6183

merged 1 commit into from
May 27, 2024

Conversation

theguild-bot
Copy link
Collaborator

@theguild-bot theguild-bot commented May 15, 2024

This PR was opened by the Changesets release 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 master, this PR will be updated.

Releases

@graphql-tools/[email protected]

Patch Changes

@graphql-tools/[email protected]

Patch Changes

  • #6194
    7368829
    Thanks @ardatan! - Handle interface objects in a different way

  • #6188
    e10c13a
    Thanks @ardatan! - Add subtractSelectionSets to get the diff of
    two selection sets

  • #6187
    dfccfbf
    Thanks @ardatan! - Do not merge errors and regular resolved objects

    If a subschema returns an error for specific field that is already resolved by another subschema,
    the error should not be merged with the resolved object.

  • #6189
    0134f7f
    Thanks @ardatan! - Handle interface types with non-shared
    implementations;

    For example, you have the following services, where Node is implemented in both services, but
    Foo and Bar are only implemented in one service. And when the gateway receives the following
    query, it should be converted to this because Node is not implemented as Bar in Service 1
    while implemented in Service 2.

    Query conversion;

    # Gateway request
    query {
      fooBar(id: "1") {
        ... on Node {
          id
        }
      }
    }
    # Service 1 Request
    query {
      fooBar(id: "1") {
        ... on Foo {
          id
        }
        ... on Bar {
          id
        }
      }
    }

    Services;

    # Service 1
    
    union FooBar = Foo | Bar
    
    interface Node {
      id: ID!
    }
    
    type Foo implements Node {
      id: ID!
    }
    
    type Bar {
      id: ID!
    }
    
    type Query {
      fooBar(id: ID!): FooBar
    }
    # Service 2
    interface Node {
      id: ID!
    }
    
    type Foo implements Node {
      id: ID!
    }
    
    type Bar implements Node {
      id: ID!
    }
  • Updated dependencies
    [7368829,
    e10c13a]:

@graphql-tools/[email protected]

Patch Changes

@graphql-tools/[email protected]

Patch Changes

  • #6194
    7368829
    Thanks @ardatan! - Handle interface objects in a different way

  • #6189
    0134f7f
    Thanks @ardatan! - Handle interface types with non-shared
    implementations;

    For example, you have the following services, where Node is implemented in both services, but
    Foo and Bar are only implemented in one service. And when the gateway receives the following
    query, it should be converted to this because Node is not implemented as Bar in Service 1
    while implemented in Service 2.

    Query conversion;

    # Gateway request
    query {
      fooBar(id: "1") {
        ... on Node {
          id
        }
      }
    }
    # Service 1 Request
    query {
      fooBar(id: "1") {
        ... on Foo {
          id
        }
        ... on Bar {
          id
        }
      }
    }

    Services;

    # Service 1
    
    union FooBar = Foo | Bar
    
    interface Node {
      id: ID!
    }
    
    type Foo implements Node {
      id: ID!
    }
    
    type Bar {
      id: ID!
    }
    
    type Query {
      fooBar(id: ID!): FooBar
    }
    # Service 2
    interface Node {
      id: ID!
    }
    
    type Foo implements Node {
      id: ID!
    }
    
    type Bar implements Node {
      id: ID!
    }
  • #6187
    dfccfbf
    Thanks @ardatan! - Respect @provides to optimize the query plan

  • #6188
    e10c13a
    Thanks @ardatan! - If two different subschemas have the root field,
    use the same field to resolve missing fields instead of applying a type merging in advance

  • Updated dependencies
    [7368829,
    e10c13a,
    e10c13a,
    dfccfbf,
    0134f7f,
    eec9d3d,
    03a47b1,
    e10c13a,
    0827497]:

@graphql-tools/[email protected]

Patch Changes

@graphql-tools/[email protected]

Patch Changes

@graphql-tools/[email protected]

Patch Changes

  • #6194
    7368829
    Thanks @ardatan! - Handle interface objects in a different way

  • #6180
    eec9d3d
    Thanks @ardatan! - Handle nested dependencies in the computed fields

    {
      merge: {
        Product: {
          selectionSet: '{ id }',
          fields: {
            isExpensive: {
              selectionSet: '{ price }',
              computed: true,
            },
            canAfford: {
              selectionSet: '{ isExpensive }',
              computed: true,
            },
          }
        }
      }
    }
  • #6179
    03a47b1
    Thanks @ardatan! - Support computed fields resolved via a root field
    returning an interface When a computed field returning an object, and that field is resolved via
    an interface, the computed field will now be resolved correctly.

  • #6188
    e10c13a
    Thanks @ardatan! - Handle nested selections in
    calculateSelectionScore

  • #6175
    0827497
    Thanks @ardatan! - If there is a subschema with some selection set,
    and another with some other selection set. After the calculation of delegation stage, if one
    subschema can cover the other selection set as well, then we can merge the two selection sets into
    one, and remove the other subschema from the stage.

  • Updated dependencies
    [7368829,
    e10c13a,
    e10c13a,
    dfccfbf,
    0134f7f]:

@graphql-tools/[email protected]

Patch Changes

  • #6194
    7368829
    Thanks @ardatan! - Handle interface objects in a different way

  • #6188
    e10c13a
    Thanks @ardatan! - Add respectArrayLength flag to mergeDeep so
    instead of concatenating the arrays, elements of them will be merged if they have the same length

[email protected]

Patch Changes

Copy link
Contributor

github-actions bot commented May 15, 2024

🚀 Snapshot Release (rc)

The latest changes of this PR are available as rc on npm (based on the declared changesets):

Package Version Info
@graphql-tools/batch-delegate 9.0.3-rc-20240527102513-c1d3920eae85fae308bbb764ae936a2827436d8e npm ↗︎ unpkg ↗︎
@graphql-tools/delegate 10.0.11-rc-20240527102513-c1d3920eae85fae308bbb764ae936a2827436d8e npm ↗︎ unpkg ↗︎
@graphql-tools/documents 1.0.1-rc-20240527102513-c1d3920eae85fae308bbb764ae936a2827436d8e npm ↗︎ unpkg ↗︎
@graphql-tools/federation 1.1.36-rc-20240527102513-c1d3920eae85fae308bbb764ae936a2827436d8e npm ↗︎ unpkg ↗︎
@graphql-tools/mock 9.0.3-rc-20240527102513-c1d3920eae85fae308bbb764ae936a2827436d8e npm ↗︎ unpkg ↗︎
@graphql-tools/schema 10.0.4-rc-20240527102513-c1d3920eae85fae308bbb764ae936a2827436d8e npm ↗︎ unpkg ↗︎
@graphql-tools/stitch 9.2.9-rc-20240527102513-c1d3920eae85fae308bbb764ae936a2827436d8e npm ↗︎ unpkg ↗︎
@graphql-tools/utils 10.2.1-rc-20240527102513-c1d3920eae85fae308bbb764ae936a2827436d8e npm ↗︎ unpkg ↗︎

Copy link
Contributor

github-actions bot commented May 15, 2024

✅ Benchmark Results

     ✓ no_errors
     ✓ expected_result

     checks.........................: 100.00% ✓ 312       ✗ 0  
     data_received..................: 36 MB   3.6 MB/s
     data_sent......................: 134 kB  13 kB/s
     http_req_blocked...............: avg=4.22µs   min=2.18µs   med=2.82µs   max=187.77µs p(90)=4.12µs   p(95)=4.29µs 
     http_req_connecting............: avg=822ns    min=0s       med=0s       max=128.35µs p(90)=0s       p(95)=0s     
     http_req_duration..............: avg=60.24ms  min=51.15ms  med=56.48ms  max=155.63ms p(90)=67.9ms   p(95)=92.19ms
       { expected_response:true }...: avg=60.24ms  min=51.15ms  med=56.48ms  max=155.63ms p(90)=67.9ms   p(95)=92.19ms
     http_req_failed................: 0.00%   ✓ 0         ✗ 156
     http_req_receiving.............: avg=146.23µs min=116.15µs med=142.15µs max=318.42µs p(90)=163.25µs p(95)=181.8µs
     http_req_sending...............: avg=27.15µs  min=20.12µs  med=27.26µs  max=58.76µs  p(90)=32.65µs  p(95)=35.84µs
     http_req_tls_handshaking.......: avg=0s       min=0s       med=0s       max=0s       p(90)=0s       p(95)=0s     
     http_req_waiting...............: avg=60.06ms  min=50.99ms  med=56.32ms  max=155.28ms p(90)=67.7ms   p(95)=92ms   
     http_reqs......................: 156     15.518271/s
     iteration_duration.............: avg=64.41ms  min=54.6ms   med=60.45ms  max=161.6ms  p(90)=72.84ms  p(95)=96.51ms
     iterations.....................: 156     15.518271/s
     vus............................: 1       min=1       max=1
     vus_max........................: 1       min=1       max=1

Copy link
Contributor

github-actions bot commented May 15, 2024

💻 Website Preview

The latest changes are available as preview in: https://d5393198.graphql-tools.pages.dev

@theguild-bot theguild-bot force-pushed the changeset-release/master branch 14 times, most recently from 5ae8037 to 7764533 Compare May 22, 2024 11:59
@theguild-bot theguild-bot force-pushed the changeset-release/master branch 7 times, most recently from 2eae96a to 9cc9604 Compare May 27, 2024 10:04
@ardatan ardatan merged commit 17530bc into master May 27, 2024
27 checks passed
@ardatan ardatan deleted the changeset-release/master branch May 27, 2024 10:23
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.

None yet

2 participants