apollographql / apollographql/federation
Warn on incompatible versions of the gateway and other internal packages
- Dominant language
- TypeScript
- Stars
- 725
- Forks
- 276
- Avg merge
- 1h 47m
- Merged PRs (30d)
- 1
Description
The somewhat implicit contract we use during development is that the `@apollo/gateway` package and its dependencies are released together and should be used together. In other words, you shouldn't mix-and-match various versions of, say, `@apollo/gateway` and `@apollo/query-planner` or `@apollo/federation-internals`.
But in practice, this may not be obvious to all users and I wonder if we could maybe do a better job of warning users to not mix-and-match versions of our packages. At a minimum, we could maybe be a bit more explicit about this in the readme of the various packages, but I wonder if the gateway can detect the version in use of those other packages and issue a warning if, say, the minor versions don't match.
Note: creating this because someone run into such a problem of mixing versions and getting an issue in #2392 .
Contributor guide
Research direction
No files, tests, or entry points are named. Start by locating the @apollo/gateway package and its @apollo/query-planner and @apollo/federation-internals dependencies, then determine how version compatibility could be detected and where a warning should appear. Done means an agreed warning behavior for incompatible versions, with package README guidance updated if that is selected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- graphql, typescript
- Domain
- backend-api-design
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100