Evaluate in your application
Supported SDK versions
Find the first SDK and OpenFeature provider versions that support Featurevisor v4. Every application that loads your datafiles needs one of these before you publish datafiles built with v4.
The versions below cover accumulating overrides, unified conditions, composed global variables and their overrides, the presence and emptiness operators and the array list operators.
includesAny and notIncludesAny need the same versions, so check that every consumer is upgraded before publishing either operator. Native test checks with value or compareTo also need the matching CLI release.
| SDK | First version with v4 support | Package |
|---|---|---|
| JavaScript | 4.0.0 | @featurevisor/sdk |
| Go | 4.0.0 | github.com/featurevisor/featurevisor-go/v4 |
| Python | 4.0.0 | featurevisor |
| PHP | 4.0.0 | featurevisor/featurevisor-php |
| Ruby | 4.0.0 | featurevisor |
| Java | 5.0.0 | com.featurevisor:featurevisor-java |
| Swift | 4.0.0 | github.com/featurevisor/featurevisor-swift2 |
| Rust | 2.0.0 | featurevisor |
| Elixir | 2.0.0 | featurevisor |
Each OpenFeature provider has its own version:
| OpenFeature provider | SDK | First version with v4 support |
|---|---|---|
@featurevisor/openfeature-provider-node | JavaScript | 4.0.0 |
@featurevisor/openfeature-provider-web | JavaScript | 4.0.0 |
github.com/featurevisor/featurevisor-go/openfeature/v4 | Go | 4.0.0 |
featurevisor[openfeature] | Python | 4.0.0 |
featurevisor/featurevisor-php | PHP | 4.0.0 |
featurevisor-openfeature | Ruby | 4.0.0 |
com.featurevisor:featurevisor-openfeature | Java | 5.0.0 |
FeaturevisorOpenFeature | Swift | 4.0.0 |
featurevisor-openfeature | Rust | 2.0.0 |
featurevisor_openfeature | Elixir | 2.0.0 |
- Each language numbers its versions on its own, so Rust and Elixir support v4 from 2.0.0 and Java from 5.0.0.
- React and Vue.js follow the JavaScript SDK, and Kotlin uses the Java SDK.
- Swift ships its provider as a product of the same package, Python as an optional extra, and PHP inside the SDK itself. Each language's page shows how to install it.
- Running your project's tests with a native SDK runner needs the v4 CLI too.
Unified conditions#
Upgrade every consumer before publishing datafiles built by the v4 CLI. They declare schemaVersion: "4", but a v3 SDK does not reject them. It loads them without understanding v4 conditions, so rules can stop matching or return unintended values. In the other direction, v4 SDKs still read v3 datafiles. For applications that stay on @featurevisor/sdk 3.8, the latest v3 JavaScript SDK, a target with schemaVersion: "2" builds datafiles in the v3 format.
Composition support#
Composed global variables and composed overrides use the same v4 SDK and OpenFeature provider versions listed above.
Upgrade every consumer before publishing compositions, including offline applications, indirect dependencies, bundled fallbacks and cached datafiles. Pre-v4 SDKs can treat a composition as an ordinary variable with a missing default and return null or an application fallback. schemaVersion: "4" does not prove compatibility.
Keep separate compatible datafiles while older consumers remain. A target with schemaVersion: "2" does not translate compositions into ordinary values. Lint rejects them in it instead. The precomputeMutations setting cannot make composed overrides compatible with an older consumer.
To upgrade an application, follow the v4 migration guide.

