docs/users/Versioning.mdx
We follow semantic versioning (semver). This page exists to help set guidelines around what we consider to fall within each of the semver categories.
All of the packages in this project are published with the same version number to make it easier to coordinate both releases and installations.
When considering whether a change should be counted as "breaking" we first need to consider what package(s) it impacts. For example breaking changes for the parser packages have a different standard to those for the ESLint plugins. This is because not only do they have very different API surfaces, they also are consumed in very different ways.
Please note that the lists provided below are non-exhaustive and are intended to serve as examples to help guide maintainers when planning and reviewing changes.
ast-spec and visitor-keysA change to the AST shall be considered breaking if it:
string to number).A change to the AST shall not be considered breaking if it:
string to 'literal' | 'union').eslint-pluginA change to the plugins shall be considered breaking if it will require the user to change their config. More specifically:
A change to the plugins shall not be considered breaking if it:
parser, typescript-estree, scope-manager, types, type-utils, utilsA change to these packages shall be considered breaking if it:
A change to these packages shall not be considered breaking if it:
Any packages in this project that are not part of our public API surface (such as eslint-plugin-internal or website) shall not be considered when calculating new package versions.