XState SemVer and Breaking Changes Policy
mainXState follows a SemVer policy with specific considerations for its runtime and TypeScript definitions:
Runtime API
XState aims to avoid breaking changes to the runtime API in minor or patch releases. However, because XState executes user-defined logic, changes in behavior (even if the API signature remains the same) might affect how existing machines behave. Users should always review release notes before upgrading.
TypeScript Definitions
The team reserves the right to adjust TypeScript definitions or drop support for older TypeScript versions in minor releases to leverage newer language features and improve type safety.
Package Compatibility
Most XState packages (like @xstate/react) declare xstate as a peer dependency. While updates to xstate are designed to be compatible with existing packages, it is highly recommended to update xstate whenever you update a package that depends on it (e.g., updating @xstate/react should trigger an update to xstate).