This allows us to cherry-pick @kara's static query updates from the
`ivy-2019` branch.
This change includes:
* Adding missing dependencies for various Angular subpackages
* Add umd assets where they are now necessary
* Configure bazel to target ES5 output as a workaround for https://github.com/angular/angular/issues/29107
* Updates most npm dependencies to the @npm// workspace
* Updates general workspace setup, RBE config, ngcontainer
* Update to rxjs 6.4.0 (building from source no longer needed)
* Added rxjs_shims for ts_web_test and ts_devserver targets
* Removed index.bzl and angular_material_setup_workspace (not needed anymore since material won't be built from source)
* Use browser_repositories() from @npm_bazel_karma which have pinned browsers that work on all platforms
* Change dgeni processor functions from arrow function to `function` to
work around `@npm//di` not supporting arrow functions
Co-authored-by: Greg Magolan <gmagolan@gmail.com>
* Updates to the latest `node-sass` version.
* Fixes the build not using the `node-sass` version from the package.json.
* Fixes a deprecation warning from the latest SASS version when the consumer has configured a non-string `font-family` (e.g. `Helvetica Neue`).
Fixes#14636.
* We want to run CircleCI against the latest NodeJS docker image that
also comes with the latest browsers. We currently just locked to a
specific version because dgeni-packages was using a version of
`nunjucks` that didn't work with the latest NodeJS version,
* Updates dgeni-packages that supports a more recent TypeScript version
might therefore be able to parse TS 3.x code that previously was
silently ignored.
* build: update typescript bazel rules
* Updates the TypeScript bazel rules to the latest version that includes a hotfix for emit diagnostics not being reported. Also it includes https://github.com/bazelbuild/rules_typescript/commit/f9d6edb0ea3e28ae4957ed65e16465d373f13fc6 which is necessary to build the `src:module-typings` on Windows w/ ng_package.
* Update to Angular 7.1.3
* build: increase saucelabs connect timeout
At some point we went down from a 2min wait timeout to 30seconds because we re-ran the startup script if something failed. Since re-running didn't really help and we removed it, we should move the timeout back to a longer period.
e.g. see: https://circleci.com/gh/angular/material2/25254 where it successfully acquired a tunnel, but just didn't have enough time to actually establish it.
* Switch to rewritten saucelabs version
* Update to latest saucelabs launcher version
Apparently the webdriver-manager always uses the _latest_ version of the chromedriver. This is problematic because the CI does not always use the latest chrome version that _works_ with the chromedriver from `webdriver-manager`.
In order to fix this, we lock the webdriver manager version to a specific version. Similarly to how it's done for `angular/angular`.
Note that this also restricts which Chrome versions can be run locally with the e2e tests, but the chromedriver range seems to always cover at least the latest two versions (which works for us)
* Updates to Angular v7.1.2 so we can use the `ng_package` Windows fixes.
* Updates the NodeJS rules which are now verbose by default (better debugging; and no "silent" analysis phase where people think they got stuck)
* Updates the Sass rules to the latest version.
* Updates the devkit to the latest version so we can verify everything still works.
Currently when building the overview and guide files with Bazel, the following things are missing:
* Replacing `<!-- example` comments with the corresponding HTML elements
* Wrapping the HTML output with a `<div class="docs-markdown">` element
* Rewriting relative links to the proper public guide URL.
* Convert headings to "anchored" headings that can be referenced through URL fragments.
All of these points are handled with this commit.
* Converts the changelog script into plain TypeScript. This makes it easier to integrate it into the _interactive_ staging script
* Fixes that the "Is this is a pre-release" prompt is not returning a boolean.
* No longer runs the staging script with Bazel because `ts-node` is more convenient and also we can be more context-aware (e.g. paths)
* Since https://github.com/bazelbuild/rules_nodejs/commit/1f97eb6688f08ed8012333c00deea1824762eb68 landed, we can safely remove the workaround by updating the NodeJS and TypeScript Bazel rules.
* Also we are creating our own `getFileContent` testing method because it's not guaranteed that the internal testing utilities from `@schematics/angular` always stay the same. Additionally this works around an issue where `test` folders are excluded in the Bazel managed deps by default.
Restructures the demo-app by no longer mixing up the `demo-app` name.
Currently the `demo-app` consists of two parts:
* The demo-app
* And the accessibility demos
As you can tell above, this is pretty much confusing because it's
technically just consisting of:
* Accessibility demos
* Library demos
This change cleans up the naming and makes sure that the modules are
structured in a best-practice way.
It's odd to have the `DemoAppModule` (*not the root module*) that
includes all library demos as a folder next to the actual demo
components.
This makes it extremely hard to convert the demo-app to Bazel because
we cannot target all `.ts` files through `glob` because it only matches
files inside of the same folder (or Bazel package).
In order to make it easy to run the demo-app with Bazel, and to just
clean it up, the folder structure should be as followed:
```
src/a11y-demo/
| ...
src/dev-app/
| ${DEMO_COMPONENT}
| ...
| BUILD.bazel
| index.html
| BUILD.bazel
```
* build: transform guide markdown files with bazel
* Initial implementation of a rule that can transform markdown files to the equivalent HTML output. This is the foundation for packaging the guides into the `//src/material-examples` package (see: https://github.com/angular/material2/issues/13454)
* Address feedback
Even though we're using `yarn` for everything, it's still easy to fall into the old habit of running `npm i` which could mess up the `node_modules` and generate a new lock file. These changes add a script that throws an error when trying to `npm install`, similar to angular/angular.
* Since we going to move from Travis to CircleCI we don't want to use the dashboard anymore. Since nobody has been
looking at the dashboard frequently, it just makes things more complicated and additionally we will be using
the Github robot in order to keep track of size changes.
* Updates `dgeni-packages` to the most recent version that includes an improvement for parameter types in the docs (148bc949e5880357817b21f1da09ac056ca9c0b0)
* Fixes that the `@angular/bazel` dependency is not being inserted at the proper position (alphabetically)