71 Commits

Author SHA1 Message Date
George Kalpakas
d4c0962c7b refactor(dev-infra): use the exec() helper from utils/shelljs whenever possible ()
There is an `exec()` helper provided by `utils/shelljs.ts`, which is a
wrapper around ShellJS' `exec()` with some default options (currently
`silent: true`). The intention is to avoid having to pass these options
to every invocation of the `exec()` function.

This commit updates all code inside `dev-infra/` to use this helper
whenever possible).

NOTE: For simplicity, the `utils/shelljs` helper does not support some
      of the less common call signatures of the original `exec()`
      helper, so in some cases we still need to use the original.

PR Close 
2020-06-05 09:21:18 -07:00
Joey Perrott
4e7a4543b8 style(dev-infra): correct tslint failures in dev-infra directory ()
Fixes tslint failures in dev-infra directory as the directory is now
part of the tslint enforced files.

PR Close 
2020-06-04 12:44:46 -07:00
Joey Perrott
3d154ab795 fix(dev-infra): migrate dev-infra config loading to .ng-dev directory ()
Migrate to using .ng-dev directory for ng-dev configuration to better
allow management of the configuration using multiple files.  The
intention is to prevent the config file from becoming unruly.

PR Close 
2020-05-26 16:38:22 -04:00
Joey Perrott
d1ea1f4c7f build: update license headers to reference Google LLC ()
Update the license headers throughout the repository to reference Google LLC
rather than Google Inc, for the required license headers.

PR Close 
2020-05-26 14:26:58 -04:00
Joey Perrott
e0002ef9ba feat(dev-infra): migrate ng-dev utils to use new logging system ()
Migrate the ng-dev utils to use new logging system rather
than directly calling console.* to create a better experience
for users.

PR Close 
2020-05-21 17:40:35 -04:00
Joey Perrott
52c7aae4df feat(dev-infra): add group functions to logging system and remove color param ()
Adds .group and .groupEnd functions to each of the logging functions
to allow creating groups in the logged output.  Additionally removes
the color parameter from logging functions, in favor of the color
being applied to the string at the call site.

PR Close 
2020-05-21 17:40:34 -04:00
Paul Gschwendtner
3e5fa56956 fix(dev-infra): ensure ts-node is registered with commonjs as module ()
We recently added support for automatic registration of `ts-node`
when the dev-infra configuration is loaded.

In addition to registering ts-node, we should also ensure that the
`commonjs` module is set up. By default, `ts-node` would use ES module
imports that are not supported by default in NodeJS.

PR Close 
2020-05-21 10:35:23 -07:00
Joey Perrott
7db177d181 feat(dev-infra): create logging utils with support for defined logging levels ()
Creates common logging functions at different levels. Allows for providing
logging statements which are actually printed to the console based on the
LOG_LEVEL environment variable.

PR Close 
2020-05-20 13:32:04 -07:00
Paul Gschwendtner
383f04b96d feat(dev-infra): register ts-node when reading configuration ()
`ts-node` is now an optional peer dependency of the shared dev-infra
package. Whenever a `ng-dev` command runs, and a TypeScript-based
configuration file exists, `ts-node` is set up if available.

That allows consumers of the package (as the components repo) to more
conveniently use a TypeScript-based configuration for dev-infra.

Currently, commands would need to be proxied through `ts-node`
which rather complicates the setup:

```
NG_DEV_COMMAND="ts-node ./node_modules/@angular/dev-infra-private/cli.js"
```

I'm thinking that it should be best-practice to use TypeScript for
writing the configuration files. Given that the tool is used primarily
in Angular projects (for which most sources are TypeScript), this should
be acceptable.

PR Close 
2020-05-19 15:21:57 -07:00
Joey Perrott
009f394237 feat(dev-infra): create rebase-pr tool in ng-dev ()
Creates a tool in ng-dev which rebases a PR automatically and pushes
the rebase commits back to the PR.  This is meant to be a replacement
to the local merge script currently in the repo and currently has
feature parity.

PR Close 
2020-05-18 16:18:32 -07:00
Paul Gschwendtner
8a3493af47 feat(dev-infra): integrate merge script into ng-dev cli ()
Integrates the merge script into the `ng-dev` CLI. The goal is that
caretakers can run the same command across repositories to merge a pull
request. The command is as followed: `yarn ng-dev pr merge <number>`.

PR Close 
2020-05-18 11:50:08 -07:00
Joey Perrott
3d7c85b2aa feat(dev-infra): create tool to determine conflicts created by a PR ()
Creates a tool in ng-dev to determine the PRs which become conflicted
by merging a specified PR.  Often the question is brought up of how
many PRs require a rebase as a result of a change.  This script allows
to determine this impact.

PR Close 
2020-05-15 11:29:35 -07:00
Joey Perrott
564ca9e8ec build: add github config for ng-dev configuration ()
Adds the gitub configuration to the ng-dev configuration. This github
configuration provides information needed for making API requests to
github.  Upcoming tooling related PRs will require these API requests
being possible.

PR Close 
2020-05-15 10:02:41 -07:00
Joey Perrott
20d377c11b feat(dev-infra): add github to common config for ng-dev configuration typings ()
Adds a gitub object to the common configuration for ng-dev. This github
configuration provides information needed for making API requests to
github.

PR Close 
2020-05-15 10:02:40 -07:00
Joey Perrott
14c0ec97d8 feat(dev-infra): introduce validators for ng-dev config loading ()
Introduces infrastructure to validate configuration of the ng-dev
command at run time.  Allowing for errors to be returned to the
user running the command.

PR Close 
2020-05-13 15:58:46 -07:00
Joey Perrott
8b65946eb8 feat(dev-infra): support typescript config file ()
Previously ng-dev loaded the config through a javascript file, this
change allows for the loaded file to be either javascript or
typescript.  This enables configurations to be written with type
safety.

PR Close 
2020-05-08 14:40:11 -07:00
Joey Perrott
4e628a887a fix(dev-infra): update the config file loading for ng-dev to expect js ()
Migrating to a js file for providing a configuration allows for more
extensive configuration at run time.  This allows for configs to include
logic and move beyond static values found in JSON files.

PR Close 
2020-05-08 09:38:25 -07:00
Joey Perrott
7b5a0ba8c3 feat(dev-infra): create format tool in @angular/dev-infra-private ()
Previously we used gulp to run our formatter, currently clang-format,
across our repository.  This new tool within ng-dev allows us to
migrate away from our gulp based solution as our gulp solution had
issue with memory pressure and would cause OOM errors with too large
of change sets.

PR Close 
2020-04-24 12:32:18 -07:00
Joey Perrott
698b0288be build: reformat repo to new clang@1.4.0 ()
PR Close 
2020-04-14 12:08:36 -07:00
Joey Perrott
6fc85073d2 feat(dev-infra): create commit-message validation script/tooling ()
PR Close 
2020-03-20 10:20:12 -07:00
Joey Perrott
52d66ea5a9 feat(dev-infra): create common config file loading util ()
Create a common config file loading utility function and the
necessary util directory.  This util directory can provide common
utility functions for usage inside of the dev-infra package.

PR Close 
2020-03-17 09:30:31 -07:00