Language & Framework Version Support Policy for OpenFGA Tooling #531
rhamzeh
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Hey everyone!
This post is a long time coming. While folks have probably noticed when using our Go-based repos (e.g., OpenFGA core server, CLI and Go SDK), we follow upstream's support policy. For example, in Go's case, it's the last major release (N) plus the previous one (N-1) as per Go's support policy.
While this was implicit, we want to be more explicit—both for Go and the rest of our tooling and packages. This is especially important as maintaining compatibility with old language versions has hindered us in some ecosystems, forcing us to spend time fighting dependencies that no longer work on outdated runtimes.
What's Changing
Rollout Plan
Repos In Scope
This policy currently applies to:
We will expand this policy to other repos in the future.
Language and Framework Support Policy
We follow the official vendor/community support policies for each language, with specific exceptions for Node.js and .NET around best-effort support.
Support Matrix
Language-Specific Notes
Node.js:
We will make a best effort to maintain compatibility with Node.js versions that have reached End-of-Life (EOL), but we will not test against them in our CI/CD pipelines. This means you may be able to use our JS SDKs with older versions of Node.js, but you may not be able to run tests (because many of our testing dependencies have dropped support for EOL versions).
Spring Boot Starter:
In addition to following Oracle's Java support policy, we will only support Java versions that are supported by Spring Boot itself.
.NET:
While we support .NET Standard 2.0, it is on a best-effort basis only. When this SDK is used within an unmaintained EOL framework (e.g., .NET Core 3.1 or .NET Framework 4.6.1), no support is guaranteed. We will primarily test against currently supported .NET runtimes.
What Happens When a Language Version Reaches EOL
When a language version reaches its End-of-Life date:
SUPPORTED_FRAMEWORKS.mdin the relevant repoImportant
Dropping official support for an EOL version does NOT require a major version bump of the SDK.
Implementation Plan by Language
Go
Repos: cli, go-sdk, language (pkg/go)
Action Items:
go.modand the latest version intoolchainSUPPORTED_FRAMEWORKS.mddocument detailing this policy and link to it from the READMENode.js / JavaScript
Repos: js-sdk, frontend-utils, language (pkg/js)
Action Items:
package.json(for now we will keep it at 18)SUPPORTED_FRAMEWORKS.mddocument detailing this policy and link to it from the README.NET
Repos: dotnet-sdk
Action Items:
Java
Repos: java-sdk, spring-boot-starter, language (pkg/java)
Action Items:
SUPPORTED_FRAMEWORKS.mddocument detailing this policy and link to it from the READMEPython
Repos: python-sdk
Action Items:
SUPPORTED_FRAMEWORKS.mddocument detailing this policy and link to it from the READMETimeline
Expect these changes to be formalized and implemented over the next couple of weeks.
We Want Your Feedback
Please let us know your thoughts. If you expect this will cause you disruption, please let us know as soon as possible so we can discuss your use case.
Beta Was this translation helpful? Give feedback.
All reactions