Mostly just adding links to the migrations that were missing, adding the migrations into the navbar, as well as correcting the @angular/bazel removal in the update guide. I also added a commented out preamble for the release notes. PR Close #37705
		
			
				
	
	
		
			53 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# `tslib` direct dependency migration
 | 
						|
 | 
						|
## What does this migration do?
 | 
						|
 | 
						|
If you have any libraries within your workspace, this migration will convert `tslib` peer dependencies to direct dependencies for the libraries.
 | 
						|
TypeScript uses the `tslib` package to provide common helper functions used in compiled TypeScript code.
 | 
						|
The `tslib` version is also updated to `2.0.0` to support TypeScript 3.9.
 | 
						|
 | 
						|
Before:
 | 
						|
```json
 | 
						|
{
 | 
						|
  "name": "my-lib",
 | 
						|
  "version": "0.0.1",
 | 
						|
  "peerDependencies": {
 | 
						|
    "@angular/common": "^9.0.0",
 | 
						|
    "@angular/core": "^9.0.0",
 | 
						|
    "tslib": "^1.12.0"
 | 
						|
  }
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
After:
 | 
						|
```json
 | 
						|
{
 | 
						|
  "name": "my-lib",
 | 
						|
  "version": "0.0.1",
 | 
						|
  "peerDependencies": {
 | 
						|
    "@angular/common": "^9.0.0",
 | 
						|
    "@angular/core": "^9.0.0"
 | 
						|
  },
 | 
						|
  "dependencies": {
 | 
						|
    "tslib": "^2.0.0"
 | 
						|
  }
 | 
						|
}
 | 
						|
```
 | 
						|
 | 
						|
## Why is this migration necessary?
 | 
						|
 | 
						|
The [`tslib`](https://github.com/Microsoft/tslib) is a runtime library for Typescript.
 | 
						|
The version of this library is bound to the version of the TypeScript compiler used to compile a library.
 | 
						|
Peer dependencies do not accurately represent this relationship between the runtime and the compiler.
 | 
						|
If `tslib` remained declared as a library peer dependency, it would be possible for some Angular workspaces to get into a state where the workspace could not satisfy `tslib` peer dependency requirements for multiple libraries, resulting in build-time or run-time errors.
 | 
						|
 | 
						|
As of TypeScript 3.9 (used by Angular v10), `tslib` version of 2.x is required to build new applications.
 | 
						|
However, older libraries built with previous version of TypeScript and already published to npm might need `tslib` 1.x.
 | 
						|
This migration makes it possible for code depending on incompatible versions of the `tslib` runtime library to remain interoperable.
 | 
						|
 | 
						|
 | 
						|
## Do I still need `tslib` as a dependency in my workspace `package.json`?
 | 
						|
 | 
						|
Yes.
 | 
						|
The `tslib` dependency declared in the `package.json` file of the workspace is used to build applications within this workspace, as well as run unit tests for workspace libraries, and is required.
 |