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

chore(deps): update apollo graphql packages (major) #1687

Closed
wants to merge 1 commit into from

Conversation

renovate[bot]
Copy link
Contributor

@renovate renovate bot commented Jan 1, 2023

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@apollo/gateway 0.42.0 -> 2.4.12 age adoption passing confidence
apollo-server-express 2.25.2 -> 3.12.0 age adoption passing confidence

Release Notes

apollographql/federation (@​apollo/gateway)

v2.4.12

Compare Source

Patch Changes
  • Remove extraneous call to span.setStatus() on a span which has already ended. (#​2717)

    In cases where a subgraph responded with an error, we would sometimes try to set
    the status of a span which had already ended. This resulted in a warning log to
    the console (but no effect otherwise). This warning should no longer happen.

  • Fix fallbackPollIntervalInMs behavior. (#​2717)

    The fallbackPollIntervalInMs serves 2 purposes:

    • it allows users to provide an Uplink poll interval if Uplink doesn't provide one
    • it allows users to use a longer poll interval that what's prescribed by Uplink

    The second bullet is how the configuration option is documented, but not how it was previously implemented. This change corrects the behavior to respect this configuration if it's provided AND is longer than the Uplink interval.

  • Updated dependencies [693c2433]:

v2.4.11

Compare Source

Patch Changes
  • Reapply #​2639: (#​2684)

    Try reusing named fragments in subgraph fetches even if those fragment only apply partially to the subgraph. Before this change, only named fragments that were applying entirely to a subgraph were tried, leading to less reuse that expected. Concretely, this change can sometimes allow the generation of smaller subgraph fetches.

    Additionally, resolve a bug which surfaced in the fragment optimization logic which could result in invalid/incorrect optimizations / fragment reuse.

  • Updated dependencies [a740e071]:

v2.4.10

Compare Source

Patch Changes

v2.4.9

Compare Source

Patch Changes

v2.4.8

Compare Source

Patch Changes

v2.4.7

Compare Source

Patch Changes

v2.4.6

Compare Source

Patch Changes

v2.4.5

Compare Source

Patch Changes

v2.4.4

Compare Source

Patch Changes

v2.4.3

Compare Source

Patch Changes

v2.4.2

Compare Source

Patch Changes
  • Fix potential bug when an @interfaceObject type has a @requires. When an @interfaceObject type has a field with a (#​2524)
    @requires and the query requests that field only for some specific implementations of the corresponding interface,
    then the generated query plan was sometimes invalid and could result in an invalid query to a subgraph (against a
    subgraph that rely on @apollo/subgraph, this lead the subgraph to produce an error message looking like "The _entities resolver tried to load an entity for type X, but no object or interface type of that name was found in the schema").
  • Updated dependencies [2c370508, 179b4602]:

v2.4.1

Compare Source

Patch Changes

v2.4.0

Compare Source

Minor Changes
  • This change introduces a configurable query plan cache. This option allows (#​2385)
    developers to provide their own query plan cache like so:

    new ApolloGateway({
      queryPlannerConfig: {
        cache: new MyCustomQueryPlanCache(),
      },
    });
    

    The current default implementation is effectively as follows:

    import { InMemoryLRUCache } from "@​apollo/utils.keyvaluecache";
    
    const cache = new InMemoryLRUCache<string>({
      maxSize: Math.pow(2, 20) * 30,
      sizeCalculation<T>(obj: T): number {
        return Buffer.byteLength(JSON.stringify(obj), "utf8");
      },
    });
    

    TypeScript users should implement the QueryPlanCache type which is now
    exported by @apollo/query-planner:

    import { QueryPlanCache } from '@&#8203;apollo/query-planner';
    
    class MyCustomQueryPlanCache implements QueryPlanCache {
      // ...
    }
    
  • Adds debug/testing query planner options (debug.bypassPlannerForSingleSubgraph) to bypass the query planning (#​2441)
    process for federated supergraph having only a single subgraph. The option is disabled by default, is not recommended
    for production, and is not supported (it may be removed later). It is meant for debugging/testing purposes.

Patch Changes

v2.3.6

Compare Source

Patch Changes
  • Handle defaulted variables correctly during post-processing. (98844fd5)

    Users who tried to use built-in conditional directives (skip/include) with defaulted variables and no variable provided would encounter an error thrown by operation post-processing saying that the variables weren't provided. The defaulted values went unaccounted for, so the operation would validate but then fail an assertion while resolving the conditional.

    With this change, defaulted variable values are now collected and provided to post-processing (with defaults being overwritten by variables that are actually provided).

  • Fix issues (incorrectly rejected composition and/or subgraph errors) with @interfaceObject. Those issues may occur (11f2d7c0)
    either due to some use of @requires in an @interfaceObject type, or when some subgraph S defines a type that is an
    implementation of an interface I in the supergraph, and there is an @interfaceObject for I in another subgraph,
    but S does not itself defines I.

  • Fix handling of aliases and variables in introspection queries. (ef5c8170)

  • Fix potential bug when an @interfaceObject type has a @requires. When an @interfaceObject type has a field with a (2894a1ea)
    @requires and the query requests that field only for some specific implementations of the corresponding interface,
    then the generated query plan was sometimes invalid and could result in an invalid query to a subgraph (against a
    subgraph that rely on @apollo/subgraph, this lead the subgraph to produce an error message looking like "The _entities resolver tried to load an entity for type X, but no object or interface type of that name was found in the schema").

  • Updated dependencies [98844fd5, 11f2d7c0, c0412fd9, 2894a1ea, ce0459a6]:

v2.3.5

Compare Source

Patch Changes

v2.3.4

Compare Source

Patch Changes
  • Handle defaulted variables correctly during post-processing. (#​2443)

    Users who tried to use built-in conditional directives (skip/include) with defaulted variables and no variable provided would encounter an error thrown by operation post-processing saying that the variables weren't provided. The defaulted values went unaccounted for, so the operation would validate but then fail an assertion while resolving the conditional.

    With this change, defaulted variable values are now collected and provided to post-processing (with defaults being overwritten by variables that are actually provided).

  • Updated dependencies [6e2d24b5]:

v2.3.3

Compare Source

Patch Changes
  • Update @​apollo/utils.logger typings dependency (#​2269)

  • Exposes, for each subgraph request, the path in the overall gateway operation at which that subgraph request gets inserted. This path is now available as the pathInIncomingRequest field in the arguments of RemoteGraphQLDataSource.willSendRequest and RemoteGraphQLDataSource.didReceiveResponse. (#​2384)

  • Previously the queryPlanStoreKey was a hash of the query concatenated with an unhashed operationName if it was present. This resulted in variable length cache keys that could become unnecessarily long, occupying additional space in the query plan cache. (#​2310)

    This change incorporates the operationName into the hash itself (if operationName is present).

  • Update @​apollo/utils.createhash package, which drops support for node 12 (#​2266)

  • Update @​apollo/utils.isnodelike package, which dropped support for node 12 (#​2268)

  • Update @​apollo/utils.fetcher package, which drops support for node 12 (#​2267)

  • Updated dependencies [71a07f30]:

v2.3.2

Compare Source

Patch Changes

v2.3.1

Compare Source

Patch Changes

This CHANGELOG pertains only to Apollo Federation packages in the 2.x range. The Federation v0.x equivalent for this package can be found here on the version-0.x branch of this repo.

v2.3.0

Compare Source

  • Fix unexpected composition error about @shareable field when @external is on a type in a fed1 schema (one without @link) PR #​2343.
  • Fix issue with some @interfaceObject queries due to missing "input rewrites" PR #​2346.

v2.2.3

Compare Source

v2.2.2

Compare Source

  • Fix issue with path in query plan's deferred nodes PR #​2281.

v2.2.1

Compare Source

  • Fix federation spec always being expanded to the last version PR #​2274.

v2.2.0

Compare Source

  • BREAKING: Disable exposing full document to sub-query by default (introduced 2.1.0):
    • This change decreases memory consumption in general (which is the reason for disabling this by
      default), but users that have custom code making use of GraphQLDataSourceProcessOptions.document
      will now need to explicitly set GatewayConfig.queryPlannerConfig.exposeDocumentNodeInFetchNode.
  • BREAKING: composition now rejects @shareable on interface fields. The @shareable directive is about
    controlling if multiple subgraphs can resolve a particular field, and as interface field are never directly resolved
    (it's their implementation that are), having @shareable on interface fields is not completely meaningful and
    was never meant to be supported. If an existing subgraph does have a @shareable on an interface field, this
    will now be rejected, but the @shareable can simply and safely be removed since it previously was ignored.
  • Allows @shareable to be repeatable so it can be allowed on both a type definition and its extensions PR #​2175.
    • Note that this require the use of the new 2.2 version of the federation spec introduced in this change.
  • Preserve default values of input object fields PR #​2218.
  • Drop support for node12 PR #​2202
  • Fix issue where QP was generating invalid plan missing some data #​361.
  • Avoid reusing named fragments that are invalid for the subgraph PR #​2255.
  • Fix QP not always type-exploding interface when necessary PR #​2246.
  • Fix potential QP issue with shareable root fields PR #​2239.
  • Correctly reject field names starting with __ PR #​2237.
  • Fix error when a skipped enum value had directives applied PR #​2232.
  • Preserve default values of input object fields PR #​2218.

v2.1.4

Compare Source

  • Ensures supergraph @defer/@stream definitions of supergraph are not included in the API schema PR #​2212.
  • Optimize plan for defer where only keys are fetched PR #​2182.
  • Improves error message to help with misspelled source of an @override PR #​2181.
  • Fix validation of variable on input field not taking default into account PR #​2176.

v2.1.3

Compare Source

  • Fix building subgraph selections using the wrong underlying schema PR #​2155.

v2.1.2

Compare Source

  • Allow fields with arguments in @requires PR #​2120.
  • Fix potential inefficient planning due to __typename PR #​2137.
  • Fix potential assertion during query planning PR #​2133.
  • Fix some defer query plans having invalid result sets (with empty branches) PR #​2125.
  • Fix defer information lost when cloning fetch group (resulting in non-deferred parts) PR #​2129.
  • Fix directives on fragment spread being lost PR #​2126.

v2.1.1

Compare Source

v2.1.0

Compare Source

  • The method RemoteGraphQLDataSource.errorFromResponse now returns a GraphQLError (as defined by graphql) rather than an ApolloError (as defined by apollo-server-errors). PR #​2028
    • BREAKING: If you call RemoteGraphQLDataSource.errorFromResponse manually and expect its return value to be a particular subclass of GraphQLError, or if you expect the error received by didEncounterError to be a particular subclass of GraphQLError, then this change may affect you. We recommend checking error.extensions.code instead.
  • The LocalGraphQLDataSource class no longer supports the undocumented __resolveObject Apollo Server feature. PR #​2007
    • BREAKING: If you relied on the undocumented __resolveObject feature with LocalGraphQLDataSource, it will no longer work. If this affects you, file an issue and we can help you find a workaround.
  • Fix issue when using a type condition on an inaccessible type in @require #​1873.
    • BREAKING: this fix required passing a new argument to the executeQueryPlan method, which is technically
      exported by the gateway. Most users of the gateway should not call this method directly (which is exported mainly
      for testing purposes in the first place) and will thus be unaffected, but if you do call this method directly, you
      will have to pass the new argument when upgrading. See the method documentation for details.
  • Reject directive applications within fields of @key, @provides and @requiresPR #​1975.
    • BREAKING: previously, directive applications within a @key, @provides or @requires were parsed but
      not honored in any way. As this change reject such applications (at composition time), it could theoretically
      require to remove some existing (ignored) directive applications within a @key, @provides or @requires.
  • Fix issue where fragment expansion can erase applied directives (most notably @defer) PR #​2093.
  • Fix abnormally high memory usage when extracting subgraphs for some fed1 supergraphs (and small other memory footprint improvements) PR #​2089.
  • Fix issue with fragment reusing code something mistakenly re-expanding fragments PR #​2098.
  • Fix issue when type is only reachable through a @​provides PR #​2083.
  • Fix case where some key field necessary to a @require fetch were not previously fetched PR #​2075.
  • Add type definitions to schema extensions PR #​2081
  • Update peer dependency graphql to ^16.5.0 to use GraphQLErrorOptions PR #​2060
  • Upgrade underlying @apollo/utils.fetcher to support aborting a request. This is a type-only change, and will not impact the underlying runtime. PR #​2017.
  • Some TypeScript types, such as the arguments and return value of GraphQLDataSource.process, are defined using types from the @apollo/server-gateway-interface package instead of from apollo-server-types and apollo-server-core. This is intended to be fully backwards-compatible; please file an issue if this leads to TypeScript compilation issues. PR #​2044
  • Don't require @link when using @composeDirective PR #​2046
  • Don't do debug logging by default PR #​2048
  • Add @composeDirective directive to specify directives that should be merged to the supergraph during composition PR #​1996.
  • Fix fragment reuse in subgraph fetches PR #​1911.
  • Custom fetchers should now accept a Request object which has a signal: AbortSignal property https://fetch.spec.whatwg.org/#requestinit for request timeout purposes. PR #​2017
  • Expose document representation of sub-query request within GraphQLDataSourceProcessOptions so that it is available to RemoteGraphQLDataSource.process and RemoteGraphQLDataSource.willSendRequest PR#1878
  • Cleanup error related code, adding missing error code to a few errors PR #​1914.
  • Fix issue generating plan for a "diamond-shaped" dependency PR #​1900.
  • Fix issue computing query plan costs that can lead to extra unnecessary fetches PR #​1937.
  • Move DEFAULT_UPLINK_ENDPOINTS to static member of UplinkSupergraphManager PR #​1977.
  • Add node-fetch as a runtime dependency PR #​1970.
  • Add timeouts when making requests to Apollo Uplink PR #​1950.
  • Avoid type-explosion with fed1 supergraphs using a fed2 query planner PR #​1994.
  • Add callback when fetching a supergraph from Apollo Uplink fails PR #​1812.
  • Expand support for Node.js v18 PR #​1884

v2.0.5

Compare Source

  • Fix bug with unsatisfiable query branch when handling federation 1 supergraph PR #​1908.

v2.0.4

Compare Source

  • Fix issue when all root operations were defined in an extend schema PR #​1875.

v2.0.3

Compare Source

  • Fix bug with type extension of empty type definition PR #​1821
  • Fix output of printSubgraphSchema method, ensuring it can be read back by composition and buildSubgraphSchema PR #​1831.
  • Fix issue with @requires and conditional queries (@include/@skip) 1835.
  • Fix bug with field covariance when the underlying plan use type-explosion 1859.

v2.0.2

Compare Source

  • BREAKING: We no longer export a getDefaultFetcher function. This function returned the default fetch implementation used to talk to Uplink (which is distinct from the default fetch implementation used by RemoteGraphQLDataSource to talk to subgraphs). It was the fetcher from make-fetch-happen v8 with some preset configuration relating to caching and request headers. However, the caching configuration was not actually being used when talking to Uplink (as we talk to Uplink over POST requests, and the Uplink protocol has an application-level mechanism for avoiding unnecessary large responses), and the request headers were already being provided explicitly by the Uplink client code. Since this release is also upgrading make-fetch-happen, it is impossible to promise that there would be no behavior change at all to the fetcher returned from make-fetch-happen, and as none of the preset configuration is actually relevant to the internal use of getDefaultFetcher (which now just uses make-fetch-happens without extra configuration), we have removed the function. If you were using this function, you can replace const fetcher = getDefaultFetcher() with import fetcher from 'make-fetch-happen'. PR #​1805
  • The fetch implementation used by default by UplinkFetcher and RemoteGraphQLDataSource is now imported from make-fetch-happen v10 instead of v8. The fetcher used by RemoteGraphQLDataSource no longer limits the number of simultaneous requests per subgraph (or specifically, per host/port pair) to 15 by default; instead, there is no limit. (If you want to restore the previous behavior, install make-fetch-happen, import fetcher from it, and pass new RemoteGraphQLDataSource({ fetcher: fetcher.defaults(maxSockets: 15)})) in your buildService option.) Note that if you invoke the fetcher yourself in a RemoteGraphQLDataSource subclass, you should ensure that you pass "plain" objects rather than Headers or Request objects, as the newer version has slightly different logic about how to recognize Headers and Request objects. We have adjusted the TypeScript types for fetcher so that only these "plain" objects (which result in consistent behavior across all fetcher implementations) are permitted. PR #​1805
  • Fix Schema.clone when directive application happens before definition PR #​1785
  • More helpful error message for errors encountered while reading supergraphs generated pre-federation 2 PR #​1796
  • Fix handling of @​require "chains" (a @​require whose fields have @​require themselves) PR #​1790
  • Fix bug applying an imported federation directive on another directive definition PR #​1797.
  • Fix bug where planning a query with @require impacts the plans of followup queries PR #​1783.
  • Improve fed1 schema support during composition PR #​1735
  • Add missing @​apollo/federation-internals dependency to gateway PR #​1721
  • Improve merging of groups during @require handling in query planning PR #​1732
  • Move __resolveReference resolvers on to extensions PR #​1746
  • Add gateway version to schema extensions PR #​1751
  • Honor directive imports when directive name is spec name PR #​1720
  • Migrate to @apollo/utils packages for createSHA and isNodeLike PR #​1765

v2.0.1

Compare Source

  • Use for: SECURITY in the core/link directive application in the supergraph for @inaccessible PR #​1715

v2.0.0

Compare Source

  • Previous preview release promoted to general availability! Please see previous changelog entries for full info.

v0.54.1

Compare Source

v0.52.1

Compare Source

v0.52.0

Compare Source

v0.51.0

Compare Source

v0.50.2

Compare Source

v0.50.1

Compare Source

v0.50.0

Compare Source

v0.49.0

Compare Source

v0.48.3

Compare Source

v0.48.1

Compare Source

v0.48.0

Compare Source

v0.47.0

Compare Source

v0.46.0

Compare Source

v0.45.1

Compare Source

v0.45.0

Compare Source

v0.44.1

Compare Source

v0.44.0

Compare Source

v0.43.1

Compare Source

v0.43.0

Compare Source

v0.42.3

Compare Source

v0.42.2

Compare Source

v0.42.1

Compare Source

apollographql/apollo-server (apollo-server-express)

v3.12.0

Compare Source

v3.11.1

Compare Source

v3.11.0

Compare Source

v3.10.4

Compare Source

v3.10.3

Compare Source

[v3.10.2](https://tog


Configuration

📅 Schedule: Branch creation - "on the first day of the month" (UTC), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch 3 times, most recently from be893fc to 462d5ca Compare January 19, 2023 05:22
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch 3 times, most recently from 909a439 to 4bc6853 Compare January 31, 2023 17:40
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch 2 times, most recently from d0860c6 to 0029a38 Compare February 6, 2023 23:55
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch from 0029a38 to 43e05d3 Compare February 15, 2023 16:39
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch 2 times, most recently from 04ceb17 to 2e2b886 Compare March 2, 2023 20:37
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch 2 times, most recently from e794fe2 to 2b89edc Compare March 10, 2023 21:36
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch 2 times, most recently from 2452280 to 2162d36 Compare March 17, 2023 17:15
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch from 2162d36 to 76c6f27 Compare March 27, 2023 10:10
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch from 76c6f27 to fb0479d Compare April 4, 2023 04:22
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch 2 times, most recently from f03fe96 to ea8fcba Compare April 20, 2023 21:41
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch 2 times, most recently from 777fa3b to ac9a443 Compare May 4, 2023 21:41
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch 2 times, most recently from 97531ed to 5294211 Compare May 17, 2023 04:09
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch 2 times, most recently from 1afcd47 to 3fb514d Compare May 30, 2023 21:20
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch from 3fb514d to 5eee178 Compare June 15, 2023 22:50
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch from 5eee178 to c624df7 Compare July 9, 2023 08:22
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch from c624df7 to 80dfe51 Compare July 23, 2023 05:52
@renovate
Copy link
Contributor Author

renovate bot commented Jul 30, 2023

⚠ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: packages/api-gateway-service/package-lock.json
/usr/local/bin/docker: line 4: .: filename argument required
.: usage: . filename [arguments]
lerna notice cli v5.5.2
lerna info versioning independent
lerna notice cli v5.5.2
lerna info versioning independent
lerna info Bootstrapping 20 packages
lerna info Installing external dependencies
lerna ERR! npm install --ignore-scripts --ignore-scripts --no-audit --package-lock-only exited 1 in 'api-gateway'
lerna ERR! npm install --ignore-scripts --ignore-scripts --no-audit --package-lock-only stderr:
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR! 
npm ERR! While resolving: [email protected]
npm ERR! Found: [email protected]
npm ERR! node_modules/graphql
npm ERR!   graphql@"15.6.0" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peer graphql@"^16.5.0" from @apollo/[email protected]
npm ERR! node_modules/@apollo/gateway
npm ERR!   dev @apollo/gateway@"2.4.12" from the root project
npm ERR! 
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR! 
npm ERR! See /tmp/worker/3a8d4d/7b3533/cache/others/npm/eresolve-report.txt for a full report.

npm ERR! A complete log of this run can be found in:
npm ERR!     /tmp/worker/3a8d4d/7b3533/cache/others/npm/_logs/2023-08-06T08_29_12_127Z-debug-0.log
lerna ERR! npm install --ignore-scripts --ignore-scripts --no-audit --package-lock-only exited 1 in 'api-gateway'
lerna WARN complete Waiting for 1 child process to exit. CTRL-C to exit immediately.

@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch from 80dfe51 to 952cdd8 Compare July 30, 2023 06:01
@renovate renovate bot force-pushed the renovate/major-apollo-graphql-packages branch from 952cdd8 to f37ea6f Compare August 6, 2023 08:29
@hybridx hybridx closed this Aug 23, 2023
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

1 participant