Stability and updates

This section is about:

  • How new API updates are released.

  • How the Flux team provides stability to published models.

Stability is a top priority for the API. Models must continue to work, and Flux releases new versions every week.

The Flux team balances new functionality against backwards compatibility. The sections below describe how API updates work.

API Versioning

Changes to the Flux API are identified as "Version X, Update Y". The first number "X" represents the major version number, and the second number "Y" represents minor updates.

Minor updates

New additive APIs and minor bug fixes come as minor updates. These new APIs are automatically available to models that use the latest major version. To get an update, you may need to upgrade the major version of the model.

The Flux team can ship a bug fix for an API as a minor update. This depends on the risk that the fix breaks some models. Any change in the behavior of an API can make a model work or stop working. But to treat every bug fix as a breaking change adds work for model authors and for the Flux team.

TypeScript: Minor updates can also change the typings of the API in breaking ways. In TypeScript, typings and code are separate. Changes to typings do not affect existing code and do not break published models. Typings that show the latest state of the API are more important than full backwards compatibility, because types are easy to update. Usually, a typings change only renames some types.

Major versions

Changes to existing APIs come as major versions. These changes are likely to have a visible effect on models, and model authors must update their code.

This includes changes to the API itself (for example, the removal of a deprecated function) and changes to the behavior of the API (for example, if all create<NodeType> functions no longer parent to the canvas by default).

Flux does not automatically upgrade models to these changes. To keep existing models working, the Flux team supports old major versions as long as practically possible.