-
Notifications
You must be signed in to change notification settings - Fork 57
Description
Checklist
- I agree to the terms within the OpenFGA Code of Conduct.
Describe the problem you'd like to have solved
As a consumer of the OpenFGA SDKs, I'd like to understand whether the language/framework version I am using is supported.
Describe the ideal solution
All languages should have a Supported Languages and Frameworks
step after the Installation
step. That would have a quick summary and would link to SUPPORTED_FRAMEWORKS.md
that would contain more details.
This includes defining the policy for dropping support for EOL versions without necessarily forcing a major SDK version bump.
We should follow the official vendor/community support policies for each language, with specific exceptions for Node.js and .NET around best effort support. For each SDK, we will formally support the following versions:
Language | Policy Source | Supported Versions | Best Effort for Unsupported? |
---|---|---|---|
Go | Go Release Policy | The two most recent major releases of Go. | No |
Node.js | Node.js Previous Releases | All versions currently in LTS (Long-Term Support) or Maintenance mode. | Yes (see note below) |
Java | Oracle JDK Java SE Premier Support | The latest two actively supported LTS versions (e.g., JDK 17 and 21) or any other version currently receiving free security updates. | No |
Python | Python Developer's Guide | Versions currently in their Security Fix or Bug Fix phase. | No |
.NET | .NET Support Policy | Versions currently in LTS or Current status, PLUS .NET Standard 2.0. | Yes (see note below) |
Language Specific Notes:
- Node.js: We will make a best effort to maintain compatibility with Node.js versions that have reached their End-of-Life (EOL), but we will not test against them in our CI/CD pipelines.
- .NET: While we explicitly support .NET Standard 2.0, when this SDK is used within an unmaintained EOL framework (e.g., .NET Core 3.1 or .NET Framework 4.6.1), we will provide best effort support only. We will primarily test against supported .NET runtimes.
Implementation Steps
In the Generator:
- Create a standardized
SUPPORTED_FRAMEWORKS.mustache
template that would generate aSUPPORTED_FRAMEWORKS.md
(similar to the OpenFGA .NET SDK example) that includes the currently supported versions based on the policy above - each SDK will have a version of that file. - Add this new file to the base config
- Add a header
- [Supported Languages and Frameworks](#supported-languages-and-frameworks)
to the table of content in [README.mustache]https://github.com/openfga/sdk-generator/blob/main/config/common/files/README.mustache#L17-L18 - Append the header (
## Supported Languages and Frameworks
) and summary to the README_installation.mustache of each repo. See https://github.com/openfga/dotnet-sdk/blob/main/README.md for reference
In the SDK:
5. Configure the CI/CD pipeline for each SDK to only test against currently supported versions. If needed add unsupported frameworks that you also want to test against if needed, but document that support for them is not guaranteed.
Alternatives and current workarounds
No response
References
- Deps we cannot update (JS SDK): chore(deps): bump the dependencies group in /pkg/js with 8 updates language#489
- Deps we cannot update (Java SDK): chore: ignore spotless v8.0.0 and greater versions java-sdk#227
Additional context
No response
Metadata
Metadata
Assignees
Labels
Type
Projects
Status