Serenity/JS versioning strategy
Serenity/JS complies with Semantic Versioning 2.0.0,
with release versions determined automatically
based on the commit messages introduced with changes
introduced to the main
branch since the most recent release.
All Serenity/JS modules are released together, even if not all of them have changed in a given release. This is to make it easier for you to stay up to date without having to worry about any compatibility issues between the framework's modules.
Release cadence​
New minor and patch versions of Serenity/JS modules are typically released at least once per month, but typically more frequently to help ensure the framework is up-to-date with any security fixes and patches to its dependencies
The easiest way to stay up to date with the latest features and bug fixes is to always use the latest version of your chosen Serenity/JS modules.
To stay up to date, set the required version of each Serenity/JS module to 3.x
in your package.json
file, for example:
{
"devDependencies": {
"@serenity-js/core": "3.x",
"@serenity-js/assertions": "3.x",
"@serenity-js/rest": "3.x",
"@serenity-js/playwright": "3.x",
"@serenity-js/playwright-test": "3.x",
"@serenity-js/serenity-bdd": "3.x",
"@serenity-js/web": "3.x"
}
}
Use a dependency management bot like Renovate or Dependabot to stay up-to-date with the new features, bug fixes, and security patches.
Deprecated APIs​
The public APIs of the framework will not be removed or changed in a backward-incompatible way in minor or patch releases of the framework. However, from time to time some APIs might get marked as @deprecated
.
When an API is marked as @deprectated
, the documentation of the API will provide instructions on what other API has superseded the deprecated one. Additionally, a ticket marked as deprecation-notice
is raised on Serenity/JS GitHub, and you'll have at least 3 months since the ticket is raised to migrate the code using a deprecated api to the new alternative.
Removing a deprecated API will not affect the major version number of the Serenity/JS framework, but a new major version release will typically remove all the deprecated APIs implemented in the previous major version.
You can watch the Serenity/JS GitHub repository to be notified of deprecated APIs.
Experimental APIs​
In order to enable early feedback, from time to time experimental APIs are introduced to the framework. Those APIs are clearly marked as @experimental
.
When a new experimental API is introduced to the framework, a ticket marked as experiment
will be raised on Serenity/JS GitHub, so you're encouraged to give the idea a thumbs up or provide suggestions on how it could be improved.
Please be aware that experimental APIs might change or get removed without prior notice and without affecting the major version number of the Serenity/JS framework.
You can watch the Serenity/JS GitHub repository to be notified of experimental APIs.