graphql / graphql-js

A reference implementation of GraphQL for JavaScript
http://graphql.org/graphql-js/
MIT License
19.97k stars 2k forks source link

Notice: default branch is now `16.x.x` #4131

Open benjie opened 1 week ago

benjie commented 1 week ago

As discussed at the GraphQL.js WG this evening.

The main branch is being used for work on the unstable v17 release which incorporates incremental delivery. Any changes that require a breaking change should target main. All other changes should target 16.x.x (the default branch) so that they can be incorporated and released sooner. 16.x.x is our stable branch. We've chosen to make it the default branch to make it easier for users and contributors to see the current state of the stable code and to contribute.

This issue can be closed at any time; I figure it makes sense to keep it open for a week or so.

robrichard commented 1 week ago

While this will definitely make it easier to ensure that changes are incorporated and released sooner in v16, it might also make it easier to forget that all changes merged to 16.x.x also need to be merged to main? I'm a little concerned that we might forget to merge a change to main and then when it is time to release v17.0.0 as stable it is missing something important.

If I have a change that is needed and I open a PR and merge it to the default branch of main, I will soon realize that I can't consume this change in a stable release unless I also open a second PR to "backport" it to 16.x.x.

If I do the same process and the default branch is 16.x.x, a maintainer will have to ensure it's also merged to main. If that step is forgotten or missed, we may not realize it until we decide to release v17.0.0 as a stable.

benjie commented 1 week ago

Indeed; we've discussed having a backlog for tracking things that need forward porting. Essentially the 16.x.x branch just needs to be merged into main periodically. We considered changing v17 to being a feature branch and renaming 16.x.x to main but decided not to because it would break some of the GitHub actions flows.