Skip to content

docs: refresh upgrade guide and v17 topics - #4737

Merged
yaacovCR merged 1 commit into
16.x.xfrom
more-docs
May 19, 2026
Merged

yaacovCR merged 1 commit into
16.x.xfrom
more-docs

Conversation

@yaacovCR

Copy link
Copy Markdown
Contributor

No description provided.

@vercel

vercel Bot commented May 11, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
graphql-js Ready Ready Preview, Comment May 19, 2026 11:48pm

Request Review

Comment thread website/scripts/generate-api.mjs Fixed
Comment thread website/scripts/generate-api.mjs Fixed
Comment thread website/scripts/generate-api.mjs Fixed
@yaacovCR
yaacovCR force-pushed the more-docs branch 3 times, most recently from 5c62f76 to f2a46e6 Compare May 19, 2026 20:28
@yaacovCR yaacovCR changed the title docs: experimental docs update docs: refresh upgrade guide and v17 topics May 19, 2026
@yaacovCR
yaacovCR force-pushed the more-docs branch 3 times, most recently from 1884276 to 2bc22f3 Compare May 19, 2026 23:11
@yaacovCR
yaacovCR merged commit b43ccb1 into 16.x.x May 19, 2026
36 checks passed
@yaacovCR
yaacovCR deleted the more-docs branch May 19, 2026 23:50
yaacovCR added a commit to yaacovCR/graphql-js that referenced this pull request Jun 1, 2026
## 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))
yaacovCR added a commit that referenced this pull request Jun 1, 2026
## 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))
yaacovCR added a commit to yaacovCR/graphql-js that referenced this pull request Jun 3, 2026
Comment on lines +59 to +65
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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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").

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

jaydenseric added a commit to jaydenseric/graphql-upload that referenced this pull request Aug 3, 2026
Discussion regarding what deep imports within the `graphql` package exports are considered part of the SemVer stable public API: graphql/graphql-js#4737 (comment)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants