@@ -20,6 +20,42 @@ AngularJS is 100% JavaScript, 100% client-side and compatible with both desktop
20
20
So it's definitely not a plugin or some other native browser extension.
21
21
22
22
23
+ ### What is the AngularJS versioning strategy?
24
+
25
+ In Angular 1 we do not allow intentional breaking changes to appear in versions where only the "patch"
26
+ number changes. For example between 1.3.12 and 1.3.13 there can be no breaking changes. We do allow
27
+ breaking changes happen between "minor" number changes. For example between 1.3.15 and 1.4.0 there
28
+ will be a number of breaking changes. We also allow breaking changes between beta releases of Angular.
29
+ For example between 1.4.0-beta.4 and 1.4.0-beta.5 there may be breaking changes. We try hard to minimize
30
+ these kinds of change only to those where there is a strong use case such as a strongly requested feature
31
+ improvement, a considerable simplification of the code or a measurable performance improvement.
32
+
33
+ When adding new code to branches of Angular, have a very stringent commit policy:
34
+
35
+ - Every commit must contain tests and documentation updates alongside the code changes and that all the
36
+ tests must pass;
37
+ - Commit messages must be written in a specific manner that allows us to parse them and extract the changes
38
+ for release notes.
39
+
40
+ The Angular code base has a very large set of unit tests (over 4000) and end to end tests, which are pretty
41
+ comprehensive. This means that a breaking change will require one or more tests to be changed to allow the
42
+ tests to pass. So when a commit includes tests that are being removed or modified, this is a flag that the
43
+ code might include a breaking change. When reviewing the commit we can then decide whether there really is
44
+ a breaking change and if it is appropriate for the branch to which it is being merged. If so, then we
45
+ require that the commit message contains an appropriate breaking change message.
46
+
47
+ Additionally, when a commit lands in our master repository it is synced to Google where we test it against
48
+ over 2000 applications using the test suites of these applications. This allows us to catch regressions
49
+ quickly before a release. We've had a pretty good experience with this setup. Only bugs that affect features
50
+ not used at Google or without sufficient test coverage, have a chance of making it through.
51
+
52
+ Lastly, when we are making a release we generate updates to the changelog directly from the commits. This
53
+ generated update contains a highlighted section that contains all the breaking changes that have been
54
+ extracted fro the commits. We can quickly see in the new changelog exactly what commits contain breaking
Has conversations. Original line has conversations.
55
+ changes and so can application developers when they are deciding whether to update to a new version of
56
+ Angular.
57
+
58
+
23
59
### Is AngularJS a templating system?
24
60
25
61
At the highest level, Angular does look like just another templating system. But there is one