Provide the location of the directories rather than the tar files as the
release tooling inspects the package.json fiels to confirm the correct
version being published.
Node.js now provides simplified stream construction capabilities which removes the need for the `through2` dependency.
This change allows for the removal of the `through2` development dependency which was otherwise unused.
The `esModuleInterop` option is recommended to be enable by TypeScript and corrects several assumptions TypeScript would otherwise make when importing CommonJS files.
This option change helps ensure compatibility as packages move towards ESM.
Reference: https://www.typescriptlang.org/tsconfig#esModuleInterop
With the removal of support for Node.js v10, native Node.js functionality can be used to recursively create and remove directories within the dev infrastructure.
All TypeScript files have been updated to pass the new eslint-based linting checks. eslint compatible disabling comments have also been added in place of the previous tslint comments.
The `tslint-sonarts` package is both deprecated and unmaintained. The rules provided by the package are now removed from the `tslint` configuration for the project.
`Python-2.0` is in the same category as `MIT`, hence it's a valid license that we can allow.
This is needed for `verdaccio` version 5 which uses `argparse` which is licenced as `Python-2.0`.
Currently, the version of a release is determined by the git tag.
This PR changes release script to determine the release version from the
`version` property in the root `package.json`.
Release docs have also been updated.
With this change we automate the generation of `@angular/cli/lib/config/schema.json`. While on paper we could use quicktype for this. Quicktype doesn't handle `patternProperties` and `oneOf` that well.
How does this works?
Relative `$ref` will be resolved and inlined as part of the root schema definitions.
Example
```json
"@schematics/angular:enum": {
"$ref": "../../../../schematics/angular/enum/schema.json"
},
```
Will be parsed and transformed to
```json
"@schematics/angular:enum": {
"$ref": "#/definitions/SchematicsAngularEnumSchema"
},
"definitions: {
"SchematicsAngularEnumSchema": {
"title": "Angular Enum Options Schema",
"type": "object",
"description": "Generates a new, generic enum definition for the given or default project.",
"properties": {...}
}
}
```
This uses `git merge-base --fork-point master` which currently is not yielding a SHA on the patch branch. In some cases merge-base will not working as expected when base is ahead. See https://public-inbox.org/git/xmqq375okvxy.fsf@gitster.mtv.corp.google.com/T/#r3830f032d76f39b82d0ffe7f8bd77351cf634d29
This validation checks if `DO_NOT_SUBMIT` string literal has been added using `git diff`, when present validation will fail.
This check is unneeded as we do not use the `DO_NOT_SUBMIT` pattern, as we typically use `wip!` commit message types.
`--tag` now must be explicitly specified rather than defaulting to `latest`. It is also validated to be one of the expected set of tags. There is a new `--tagCheck false` flag that will skip this in order to handle one-off custom tags if necessary in the future.
Apparently NPM requires that all releases have tags (defaulting to `latest` if not explicitly specified), so there is no way to choose **not** to push a new tag. That means that you can't push `10.0.x` and then push `9.0.x` without either using `v9-lts` or clobbering `latest`. The `--tag` requirement should hopefully enforce this restriction to avoid a potential release footgun.
Flag arguments provided by minimist are always strings. Both `--branchCheck` and `--versionCheck` failed to take this into account and were incorrectly typed as a result. Now boolean flags are parsed into actual boolean types which can be used more intuitively.