Our release policy can be found in the documentation. In the guide, we focus on how releases are done.
There are two slots in the year where breaking changes can be released:
The teams are responsible for choosing the actual week/date for their major version release, meaning they are expected to self-organize together with the EM and PM of those product lines.
The benefit of this approach is that the time to ship a version compatible with the latest version of a product line that is a direct dependency of another is shortened by half the time. In addition, it makes it easier for Marketing and DevEx to prepare for the major releases upfront.
As much as possible, we aim to keep all the packages under a single version, especially for majors**.** This is important to minimize the complexity of figuring out which package is not compatible with another one. Instead, developers can upgrade everything to the same version, and it "just" works. It avoids them having to check and resolve the peer dependency constraints.
Tentative roadmap for up to 2026: ‣.
When working on new features, anytime we have doubts about one or multiple of those:
we don’t wait to reach perfection. Instead, we move iteratively:
First, Pre-GA: Release as unstable_
, we need some feedback, enough to clear the unknown. Ideally, we only want people who are desperate for it to try, this ideal because they are more likely to give us feedback and to not hold negative grudges for features that don’t meet our excellence criteria yet. So we make it clear that the feature is unstable.
From https://mui.com/versions/#what-doesnt-count-as-a-breaking-change:
APIs starting with "unstable_". These are provided as experimental features whose APIs we are not yet confident in. By releasing these with an unstable_ prefix, we can iterate faster and get to a stable API sooner, or simply learn that we don't need the API/feature in the first place.
Last, GA (General Availability): We want as many people as possible to use it, so people who had a negative experience because this was missing before know it's here.