- Switching to Angular(Third Edition)
- Minko Gechev
- 497字
- 2021-07-02 15:23:27
Angular and SemVer
AngularJS was rewritten from scratch and replaced with its successor, Angular 2. A lot of us were bothered by this big step, which didn't allow us to have a smooth transition between these two versions of the framework. Right after Angular 2 was stable, Google announced that they wanted to follow the so called Semantic Versioning Specification (also known as SemVer).
SemVer defines the version of a given software project as the triple X.Y.Z, where Z is called patch version, Y is called minor version, and X is called major version. A change in the patch version means that there are no intended breaking changes impacting the public API surface between two versions of the same project, but only bug fixes. The minor version of a project will be incremented when new functionality is introduced, and there are no breaking changes. Finally, the major version will be increased when incompatible changes are introduced in the API.
This means that between versions 2.3.1 and 2.10.4, there are no introduced breaking changes, but only a few added features and bug fixes. However, if we have version 2.10.4 and we want to change any of the already existing public APIs in a backward-incompatible manner (for instance, changing the order of the parameters that a method accepts), we need to increment the major version and reset the patch and minor versions; so we will get version 3.0.0.
The Angular team also follows a strict, predictable schedule. According to it, a new patch version needs to be introduced every week; there should be three monthly minor releases after each major release, and finally, one major release every 6 months. This means that by the end of 2018, there will be Angular 7. However, this doesn't mean that every 6 months we'll have to go through the same migration path like we did between AngularJS and Angular 2. Not every major release will introduce breaking changes that are going to impact our projects. For instance, support for a newer version of TypeScript or change of the last optional argument of a method will be considered as a breaking change. We can think of these breaking changes in a way similar to what happened between AngularJS 1.2 and AngularJS 1.3.
Now that we've introduced Angular's semantic versioning and conventions for referring to the different versions of the framework, we can officially start our journey!
- Mastering Concurrency Programming with Java 8
- C++ Primer習題集(第5版)
- 基于Java技術的Web應用開發
- Raspberry Pi for Secret Agents(Third Edition)
- Django Design Patterns and Best Practices
- Instant Typeahead.js
- Java持續交付
- Flash CS6中文版應用教程(第三版)
- Visual C++數字圖像處理技術詳解
- PhoneGap Mobile Application Development Cookbook
- Nginx實戰:基于Lua語言的配置、開發與架構詳解
- Yii Project Blueprints
- Mastering Git
- Geospatial Development By Example with Python
- JBoss:Developer's Guide