Skip to content
This repository was archived by the owner on Apr 12, 2024. It is now read-only.

Commit 67af519

Browse files
committedMar 23, 2015
docs(FAQ): add info about Anglar 1's versioning strategy
See #10122 (comment)
1 parent 4f12ed0 commit 67af519

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed
 

‎docs/content/misc/faq.ngdoc

+36
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,42 @@ AngularJS is 100% JavaScript, 100% client-side and compatible with both desktop
2020
So it's definitely not a plugin or some other native browser extension.
2121

2222

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+
2359
### Is AngularJS a templating system?
2460

2561
At the highest level, Angular does look like just another templating system. But there is one

0 commit comments

Comments
 (0)
This repository has been archived.