apps/blog/content/blog/prisma-adopts-semver-strictly/index.mdx
We are adjusting our release policy to adhere more strictly to Semantic Versioning. In the future, breaking changes in the stable development surface (i.e. General Availability) will only be rolled out with major version increments.
Here is a brief overview of the new rules we are putting in place:
You can read more details about this in the Releases and maturity levels section in our documentation.
Semantic Versioning (SemVer) is a conventional release strategy that has clear rules for when users can expect breaking changes in a software release.
While we already followed the 3-digit SemVer notation for Prisma releases, we didn't quite follow the actual SemVer semantics yet. This meant that we sometimes released breaking changes upon minor version increments.
In the future, breaking changes in minor version increments will always be opt-in. Any breaking change to the stable developer surface of the Prisma ORM will only happen in major version increments.
Currently, it's hard for users to understand which version may or not contain breaking changes. When upgrading through multiple versions, e.g. from 2.13.0 to 2.26.0, you have to read the release notes of each intermediate release to determine which breaking changes will impact you – this makes it hard to navigate breaking changes.
In essence, the new release policy doesn't change anything about how you use Prisma and the ongoing evolution of Prisma. We're just making it easier for you to understand which version may contain breaking changes.
Prisma will continue to document the exact details for upcoming breaking changes in the release notes. Additionally, we will provide upgrade guides to help with the upgrade path between major releases.
Many of the package managers and dependency automation tools in the industry were designed with SemVer in mind, e.g. Renovate and Dependabot. They save you time by automating parts of the dependency upgrade process, creating pull requests with relevant release changes, and automatically merging non-breaking changes.
Updating dependencies can be a time-consuming process – especially in projects with many dependencies. Adhering to Semver should improve your upgrade experience as breaking changes become predictable and visible moving forward.
SemVer is a widely used industry standard, especially in the Node.js ecosystem.
As we're seeing more developers and companies adopt Prisma and getting helpful feedback about our release strategy, we've decided to adjust our release strategy and fully adopt SemVer in the future.
One of the upcoming Prisma releases will come with breaking changes. Following our new release strategy, the major version number will be incremented, and Prisma's new version will therefore be 3.x.x.
You can read more about our release strategy in the documentation.