Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
5c62f76 to
f2a46e6
Compare
1884276 to
2bc22f3
Compare
## v16.14.1 (2026-06-02) #### Docs 📝 <details> <summary> 9 PRs were merged </summary> * [graphql#4737](graphql#4737) docs: refresh upgrade guide and v17 topics ([@yaacovCR](https://github.com/yaacovCR)) * [graphql#4741](graphql#4741) docs: add v16 API docs lint coverage ([@yaacovCR](https://github.com/yaacovCR)) * [graphql#4748](graphql#4748) docs: update banner ([@yaacovCR](https://github.com/yaacovCR)) * [graphql#4750](graphql#4750) docs: use api docs generated from inline jsdoc comments ([@yaacovCR](https://github.com/yaacovCR)) * [graphql#4754](graphql#4754) docs: update website caniuse-lite data ([@yaacovCR](https://github.com/yaacovCR)) * [graphql#4755](graphql#4755) docs: hide internal type member __validationErrors ([@yaacovCR](https://github.com/yaacovCR)) * [graphql#4757](graphql#4757) docs: fix inline examples, deprecation descriptions, type category ([@yaacovCR](https://github.com/yaacovCR)) * [graphql#4759](graphql#4759) docs: fix static export redirect config ([@yaacovCR](https://github.com/yaacovCR)) * [graphql#4767](graphql#4767) docs: fix Post_body example variable ([@fallintoplace](https://github.com/fallintoplace)) </details> #### Polish 💅 * [graphql#4738](graphql#4738) chore(tests): add test for directive extensions without flag enabled ([@yaacovCR](https://github.com/yaacovCR)) #### Internal 🏠 * [graphql#4778](graphql#4778) fix: generated version documentation ([@yaacovCR](https://github.com/yaacovCR)) #### Committers: 2 * Minh Vu([@fallintoplace](https://github.com/fallintoplace)) * Yaacov Rydzinski ([@yaacovCR](https://github.com/yaacovCR))
## v16.14.1 (2026-06-02) #### Docs 📝 <details> <summary> 9 PRs were merged </summary> * [#4737](#4737) docs: refresh upgrade guide and v17 topics ([@yaacovCR](https://github.com/yaacovCR)) * [#4741](#4741) docs: add v16 API docs lint coverage ([@yaacovCR](https://github.com/yaacovCR)) * [#4748](#4748) docs: update banner ([@yaacovCR](https://github.com/yaacovCR)) * [#4750](#4750) docs: use api docs generated from inline jsdoc comments ([@yaacovCR](https://github.com/yaacovCR)) * [#4754](#4754) docs: update website caniuse-lite data ([@yaacovCR](https://github.com/yaacovCR)) * [#4755](#4755) docs: hide internal type member __validationErrors ([@yaacovCR](https://github.com/yaacovCR)) * [#4757](#4757) docs: fix inline examples, deprecation descriptions, type category ([@yaacovCR](https://github.com/yaacovCR)) * [#4759](#4759) docs: fix static export redirect config ([@yaacovCR](https://github.com/yaacovCR)) * [#4767](#4767) docs: fix Post_body example variable ([@fallintoplace](https://github.com/fallintoplace)) </details> #### Polish 💅 * [#4738](#4738) chore(tests): add test for directive extensions without flag enabled ([@yaacovCR](https://github.com/yaacovCR)) #### Internal 🏠 * [#4778](#4778) fix: generated version documentation ([@yaacovCR](https://github.com/yaacovCR)) #### Committers: 2 * Minh Vu([@fallintoplace](https://github.com/fallintoplace)) * Yaacov Rydzinski ([@yaacovCR](https://github.com/yaacovCR))
| to select the right build. Use public entry points such as `graphql`, | ||
| `graphql/execution`, `graphql/language`, `graphql/type`, `graphql/utilities`, | ||
| and `graphql/validation`. | ||
|
|
||
| GraphQL.js development mode no longer depends on the `NODE_ENV` environment variable; build tools other than Node.js no longer need | ||
| to replace this Node.js specific code. See [Development Mode](./development-mode) for further details regarding how to enable these | ||
| checks in v17. | ||
| Deep imports into GraphQL.js internals may still work in some environments, but | ||
| they are not officially supported. Prefer the public entry points above for | ||
| application and library code. |
There was a problem hiding this comment.
What exactly are "GraphQL.js internals" and what is a "public entry point"? Technically, according to npm convention anything importable via the package exports field is part of the declared public API and subject to SemVer.
The wording "such as" implies the list mentioned is incomplete. It’s not specifically said if there is a concrete rule that all current first level deep imports without file extensions are the SemVer stable API?
Specifically, I need to know for work in graphql-upload if import { graphql } from "graphql/graphql" is SemVer stable, even tho graphql/graphql isn't explicitly mentioned here. It would be strange if most of the GraphQL.js API has deep imports, but graphql is only available from the package main index (i.e. import { graphql } from "graphql").
There was a problem hiding this comment.
We consider the public api to be anything exported from a barrel file either from the main graphql import or the individual submodules. The entire package is available via deep imports, however, and we do not plan on changing the availability of any of these deeper exports, and certainly not the internals that are part of the public API.
There was a problem hiding this comment.
Thanks for the quick reply! So you're saying, unless the package export maps to a file with index in the name, it's not part of the GraphQL.js SemVer stable API? In that case, graphql/graphql should not be used because it maps to graphql/graphql.js.
There was a problem hiding this comment.
Because in IDE's you can import from a lot of graphql/* modules without a file extension, it's pretty hard for users to tell which under the hood map to an index module and which map to modules named something else; they have to literally reverse engineer the package source code to see what is the public SemVer stable API. It would be good to update the wording to have a concrete bullet list of what import paths are stable, and also have the same documentation about the public API in the graphql npm package readme.
Discussion regarding what deep imports within the `graphql` package exports are considered part of the SemVer stable public API: graphql/graphql-js#4737 (comment)
No description provided.