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

16.0.0 Release plan #2860

Closed
13 of 17 tasks
IvanGoncharov opened this issue Nov 25, 2020 · 13 comments
Closed
13 of 17 tasks

16.0.0 Release plan #2860

IvanGoncharov opened this issue Nov 25, 2020 · 13 comments

Comments

@IvanGoncharov
Copy link
Member

IvanGoncharov commented Nov 25, 2020

Goals

  1. Convert source code to idiomatic TypeScript
  2. Remove Flow-specific workarounds and pre-ES6 JS artifacts
  3. Support Deno
  4. Support ESM
  5. Switch master to main.

Planned breaking changes

  1. Legacy SDL syntax (deprecated 2year ago) and other deprecated APIs and flags
  2. Drop native IE support by removing built-in polyfills and switching the output to ES6. It would be still possible to support IE with core-js + babel.
  3. Drop TS before 3.7 since we need to support recursive types.
  4. Maybe we will have some unexpected breaking changes to TS types due to migration

Post 16.0.0 goals

  1. Convert test suite to Jest
  2. Experiment with TS types to provide better typings for resolvers

P.S. We need to target 04/31/2021 for 17.0.0 release at that point we need to do a breaking release anyway to drop Node v10.

Steps

  • 1. Branch out 15.x.x release line and release 15.5.0 (Jan 8th)
  • 2. Switch master to main and update scripts & CI
  • 3. Move commits from https://github.com/graphql/graphql-js/tree/16.x.x to main
  • 4. Remove last few polyfills
  • 4. Release 16.0.0-alpha.1 with all expected breaking changes but still from Flow sources (Jan 12th)
  • 5. Rebase Convert flow types to TS #2828 and merge it (no squash, keep separate commits) (Jan 15th)
  • 6. Fix tests, CI, and release scripts but disable tsc and TS-specific ESLint checks (Jan 18th)
  • 7. Mark tsc errors with @ts-ignore and fix them in separate PRs by volunteers
  • 8. Enable TS-specific ESLint rules in separate PRs by volunteers
  • 9. Release new 16.0.0-alpha.3 and gather feedback (finish until Feb WG)
  • 10. Work on ESM and Deno support in parallel
  • 11. Release 16.0.0-rc.1 and gather feedback
  • 12. Generate basic docs with tsdoc
  • 13. Release 16.0.0 🎉
  • 14. Wait couple weeks and gather feedback.
  • 15. Switch main to the 17.0.0-alpha.0 branch and have a setup that will automatically release package after every merge.
  • 16. Start accepting breaking/experimental PRs for 17.0.0.

How I can help?

@dotansimha
Copy link
Member

  • Convert source code to idiomatic TypeScript

Just adding my previous WIP PRs for this:

@Urigo
Copy link
Contributor

Urigo commented Dec 1, 2020

Referencing the original Road To TS issue for visibility: #2104

@kamilkisiela
Copy link

@IvanGoncharov How the status of TS migration? On GraphQL-JS WG we talked about creating a branch for me and @saihaj so we could join forces.

@IvanGoncharov
Copy link
Member Author

@kamilkisiela Sorry for the delay, was moving our company to a new office 🤯
Not I'm back to OSS, working on merging PRs and releasing 16.0.0-alpha.1

@saihaj
Copy link
Member

saihaj commented Feb 16, 2021

Convert test suite to Jest

Thoughts on using ts-jest? Ideally src directory will be compiled with tsc and maybe we can remove babel completely. Something to try out after 16.0.0 is released.

@kamilkisiela
Copy link

@IvanGoncharov any updates? I would love to push TS forward. Maybe @saihaj could rebase on 16.x.x already and I could sync with him.

@saihaj
Copy link
Member

saihaj commented Feb 16, 2021

@kamilkisiela me and @IvanGoncharov worked on rebasing my branch yesterday and as we discussed in WG my branch will be moved hopefully by tomorrow to this repo if all goes well today.

@glasser
Copy link
Contributor

glasser commented Apr 20, 2021

Is the asynciterable branch currently likely to land in v16?

@acao
Copy link
Member

acao commented Jun 3, 2021

Is #2839 to be included in this effort?

@robrichard
Copy link
Contributor

@acao I believe the plan is for defer-stream & asynciterable to be incorporated into main once it starts targeting 17.0.0-alpha.x

@IvanGoncharov
Copy link
Member Author

Released https://github.com/graphql/graphql-js/releases/tag/v16.0.0

@IvanGoncharov IvanGoncharov unpinned this issue Nov 24, 2021
@khanakia
Copy link

I do not see any DENO package listed on https://deno.land/x/

@saihaj
Copy link
Member

saihaj commented Apr 20, 2022

@khanakia we need to test Deno support. You can try deno branch in this repo and see if it works

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

No branches or pull requests

9 participants