-
Notifications
You must be signed in to change notification settings - Fork 162
Ignite UI for Angular versioning
Ignite UI for Angular is a UI component library on top of the Angular framework. Our versioning is semi-sem-ver. What does this mean? Versioning doesn't follow the <major>.<minor>.<patch>
, but instead consists of the major version of Angular the code supports, and then the version of the library against the major version of Angular it supports. So our versioning follows this pattern:
<Angular Major>.<Major>.<Minor>
Beta versions:
<Angular Major>.<Major>.<Minor>-beta.<Patch>
NOTE: What this means is that breaking changes can be introduced between versions 5.2.x
and 5.3.x
, because 2 and 3 respectively are feature updates of Ignite UI for Angular against Angular 5.
UI Components built and tested against Angular 5.x would be versioned 5.x. Initial support for Angular 5 would be versioned 5.0.0
. Minor updates and patches would increment like this
- 5.0.1
- 5.0.2
- ...
Feature updates would then be versioned like this:
- 5.1.0
- 5.2.0
- ...
NOTE: Between 5.1.0
and 5.2.0
breaking changes may be introduced. As this is a major features update of the UI component library.
What happens when Angular 6 is released? Then versioning of the first update of Ignite UI for Angular that is compatible with Angular 6 becomes 6.0.0
.
Starting with 5.2.x
we would introduce branch per Ignite UI for Angular major version, which means 5.2.x
, 5.3.x
, 6.0.x
, etc.
Ignite UI for Angular repo is structures in such a way that development is performed in the latest dev branch (master) and maintenance applies to the latest stable version. What this means is that if the current official release version is 6.0.0
, then maintenance is applied to the 6.0.x
branch, while new feature development is applied in master, which will eventually branch off to become 6.1.x
. The only exception would be if there's a critical issue in a branch out of maintenance, which has been resolved in a currently maintained branch. In this case, if there's significant usage of the version out of maintenance, the issue would be resolved there as well, and released with a patch version.
The Angular team releases two major versions a year. We also release an update of our package for each Angular major version and will support and actively maintain our package against the Angular major for 12 months. After the 12 months of support for our package major version are over, the version goes into long-term support (LTS*) for additional 12 months. This means that if an Angular major is released in March of this year, then support for the corresponding version of our product will last until April of next year. Long-term support for that version will be until April of the year after. Only the latest feature version of igniteui-angular
per major version of Angular is maintained. E.g. For Angular 12, we have feature versions 12.0.x
, 12.1.x
, and 12.2.x
. After 12.2.0
is released, only 12.2.x
would be the maintained branch for Angular 12.
As a general rule, a fix is considered for an LTS version if it resolves one of:
- A newly identified security vulnerability,
- A regression, since the start of LTS, caused by a 3rd party change, such as a new browser version.