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

[2024-12-05] GraphQL.js support policy #1614

Open
benjie opened this issue Dec 12, 2024 · 4 comments
Open

[2024-12-05] GraphQL.js support policy #1614

benjie opened this issue Dec 12, 2024 · 4 comments
Assignees

Comments

@benjie
Copy link
Member

benjie commented Dec 12, 2024

@JoviDeCroock to write up a policy for version support of GraphQL.js

From the Dec 2024 discussion, we should support:

  • The two latest major releases
  • All major releases published in the previous 2 years

Minor and patch releases do not extend the support term.


Note: Action Item issues are reviewed and closed during Working Group
meetings.

@benjie
Copy link
Member Author

benjie commented Dec 12, 2024

@JoviDeCroock please comment (e.g. with 👋) so I can assign this issue to you. Let me know when the item is complete :)

@JoviDeCroock
Copy link
Member

All right, been giving this some thought already! :)

@JoviDeCroock
Copy link
Member

JoviDeCroock commented Dec 13, 2024

What I've currently settled on, opinions are very much appreciated

## Version Support

GraphQL.JS follows Semantic Versioning (SemVer) for its releases. Our version support policy is as follows:

- Latest Major Version: We provide full support, including bug fixes and security updates, for the latest major version of GraphQL.JS.
- Previous Major Version: We offer feature support for the previous major version for 12 months after the release of the newest major version.
  This means that for 12 months we can backport features for specification changes _if_ they don't cause any breaking changes. We'll continue
  supporting the previous major version with bug and security fixes
- Older Versions: Versions older than the previous major release are considered unsupported. While the code remains available,
  we do not actively maintain or provide updates for these versions.
  One exception to this rule is when the older version has been released < 1 year ago, in that case we
  will treat it like a "Previous Major Version".

## Long-Term Support (LTS)

We do not currently offer a Long-Term Support version of GraphQL.JS. Users are encouraged to upgrade to the latest stable version
to receive the most up-to-date features, performance improvements, and security updates.

## End-of-Life (EOL) Schedule

We will announce the EOL date for a major version at least 6 months in advance.
After a version reaches its EOL, it will no longer receive updates, even for critical security issues.

## Upgrade Assistance

To assist users in upgrading to newer versions:

- We maintain detailed release notes for each version, highlighting new features, breaking changes, and deprecations.
- Our documentation includes migration guides for moving between major versions.
- The community forum (Discord) is available for users who need additional assistance with upgrades.

## Security Updates

We prioritize the security of GraphQL.JS:

- Critical security updates will be backported to the current and previous major version.
- For versions that have reached EOL, we strongly recommend upgrading to a supported version to receive security updates.

## Community Contributions

We welcome community contributions for all versions of GraphQL.JS. However, our maintainers will primarily focus on reviewing
and merging contributions for supported versions.

@phryneas
Copy link
Contributor

Version Support

GraphQL.JS follows Semantic Versioning (SemVer) for its releases. Our version support policy is as follows:

  • Latest Major Version: We provide full support, including bug fixes and security updates, for the latest major version of GraphQL.JS.
  • Previous Major Version: We offer feature support for the previous major version for 12 months after the release of the newest major version.

I would not mention features here. While we can always decide to backport a feature, features are a great way of getting people to actually update. People might stay on older versions for longer because they read this.
Keep in mind - what we describe here is a minimum guarantee, we can always do more even if it's not written down here.

This means that for 12 months we can backport features for specification changes if they don't cause any breaking changes. We'll continue
supporting the previous major version with bug and security fixes

  • Older Versions: Versions older than the previous major release are considered unsupported. While the code remains available,
    we do not actively maintain or provide updates for these versions.
    One exception to this rule is when the older version has been released < 1 year ago, in that case we
    will treat it like a "Previous Major Version".

Long-Term Support (LTS)

We do not currently offer a Long-Term Support version of GraphQL.JS. Users are encouraged to upgrade to the latest stable version
to receive the most up-to-date features, performance improvements, and security updates.

End-of-Life (EOL) Schedule

We will announce the EOL date for a major version at least 6 months in advance.

Is there a risk that we might forget that and then have to support things for longer than we want?
It could also be solely bound to the release of a major version, which might also make it easier to plan for for users.

After a version reaches its EOL, it will no longer receive updates, even for critical security issues.

Upgrade Assistance

To assist users in upgrading to newer versions:

  • We maintain detailed release notes for each version, highlighting new features, breaking changes, and deprecations.
  • Our documentation includes migration guides for moving between major versions.
  • The community forum is available for users who need additional assistance with upgrades.

"Community forum" is a bit ambiguous here - I looked at https://graphql.org/community/resources/official-channels/ and https://graphql.org/community/resources/community-channels/ and don't find a forum. If all of these are meant, maybe reword this, otherwise we just pick one or two of those?

Security Updates

We prioritize the security of GraphQL.JS:

  • Critical security updates will be backported to the current and previous major versions.

It's not clear how far "and previous major versions" goes here - if this only means those in the support window, maybe add "that are still in the support window" or similar?

  • For versions that have reached EOL, we strongly recommend upgrading to a supported version to receive security updates.

Community Contributions

We welcome community contributions for all versions of GraphQL.JS. However, our maintainers will primarily focus on reviewing
and merging contributions for supported versions.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants