201 Commits

Author SHA1 Message Date
Pete Bacon Darwin
bc68b592b1 test(ivy): ngcc - test compiling a CLI generated project ()
This integration test was created from a vanilla CLI generated
project with the following modifications:

* remove `PercentPipe` usage from `app.component.html`
  - these are not yet supported by ivy
* changed `ng test` in `package.json` to only to `ng build`
  - right now we can only confirm that the app will build
* hard-code `ngDevMode` in `index.html`
  - the CLI does not yet set this correctly

PR Close 
2018-11-01 14:13:26 -07:00
Pete Bacon Darwin
603e7935aa test(ivy): ngcc - test compiling the Angular Material library ()
* rename test helper script
* add material to the ngcc integration test
* add MatButton to ngcc integration test checks
* remove platform-server from ngcc integration test
  This package does not yet compile as it contains a package-private
  (internal) decorated class, which the ngcc compiler does not yet
  handle.

PR Close 
2018-11-01 14:13:26 -07:00
Paul Gschwendtner
8fc4ae51fb build: use bazel version from node modules ()
* No longer depends on a custom CircleCI docker image that comes with Bazel pre-installed. Since Bazel is now available through NPM, we should be able to use the version from `@bazel/bazel` in order to enforce a consistent environment on CI and locally.
* This also reduces the amount of packages that need to be published (ngcontainer is removed)

PR Close 
2018-10-30 16:19:13 -04:00
Greg Magolan
15c2467dbd build: review comments addressed ()
PR Close 
2018-10-19 20:59:29 -07:00
Greg Magolan
2b3cac5b31 build: add comment to /integration/bazel/package.json ()
PR Close 
2018-10-19 20:59:29 -07:00
Greg Magolan
8d5e3e6981 build: update to rules_typescript 0.20.3 and rules_nodejs 0.15.1 ()
PR Close 
2018-10-19 20:59:29 -07:00
Greg Magolan
631998b2df build: idiomatic install of @angular/bazel npm package () ()
PR Close 
2018-10-19 20:59:29 -07:00
Greg Magolan
6468711e16 build(bazel): update to rules_typescript 0.20.2 () ()
PR Close 
2018-10-19 20:59:29 -07:00
Greg Magolan
d698b0eadf build: update to rules_typescript 0.20.1 and rules_nodejs 0.15.0 () ()
PR Close 
2018-10-19 20:59:29 -07:00
Greg Magolan
1f3331f5e6 build(bazel): use fine-grained npm deps () ()
PR Close 
2018-10-19 20:59:29 -07:00
Alex Rickabaugh
d4cee514f6 refactor(ivy): obviate the Bazel component of the ivy_switch ()
Originally, the ivy_switch mechanism used Bazel genrules to conditionally
compile one TS file or another depending on whether ngc or ngtsc was the
selected compiler. This was done because we wanted to avoid importing
certain modules (and thus pulling them into the build) if Ivy was on or
off. This mechanism had a major drawback: ivy_switch became a bottleneck
in the import graph, as it both imports from many places in the codebase
and is imported by many modules in the codebase. This frequently resulted
in cyclic imports which caused issues both with TS and Closure compilation.

It turns out ngcc needs both code paths in the bundle to perform the switch
during its operation anyway, so import switching was later abandoned. This
means that there's no real reason why the ivy_switch mechanism needed to
operate at the Bazel level, and for the ivy_switch file to be a bottleneck.

This commit removes the Bazel-level ivy_switch mechanism, and introduces
an additional TypeScript transform in ngtsc (and the pass-through tsc
compiler used for testing JIT) to perform the same operation that ngcc
does, and flip the switch during ngtsc compilation. This allows the
ivy_switch file to be removed, and the individual switches to be located
directly next to their consumers in the codebase, greatly mitigating the
circular import issues and making the mechanism much easier to use.

As part of this commit, the tag for marking switched variables was changed
from __PRE_NGCC__ to __PRE_R3__, since it's no longer just ngcc which
flips these tags. Most variables were renamed from R3_* to SWITCH_* as well,
since they're referenced mostly in render2 code.

Test strategy: existing test coverage is more than sufficient - if this
didn't work correctly it would break the hello world and todo apps.

PR Close 
2018-10-19 09:23:05 -07:00
cexbrayat
164f79a7b0 style: typos in TS 3.1 integration test ()
The test was mentionning TS 3.0.

PR Close 
2018-10-15 16:48:44 -07:00
George Kalpakas
9e32dc7c95 build: upgrade @types/jasminewd2 to 2.0.4 ()
This commit also removes the extra jasminewd2 typings, since the changes
have been merged in the official typings with
DefinitelyTyped/DefinitelyTyped#28957.

PR Close 
2018-10-12 14:11:11 -07:00
Pawel Kozlowski
053bf27fb3 refactor(ivy): use context discovery in TestBed implementation ()
PR Close 
2018-10-11 13:01:28 -07:00
Pete Bacon Darwin
3ac8a63499 test(ivy): update ngcc integration test ()
PR Close 
2018-10-08 13:45:46 -07:00
Igor Minar
86e6a2099a test: remove typescript 2.9 and 3.0 typings tests ()
We no longer support these versions and the tests actually break with
the output from 3.1 (at least in the case of tsc 2.9)

PR Close 
2018-09-28 09:34:51 -07:00
Igor Minar
9993c72335 feat: add support for TypeScript 3.1 ()
PR Close 
2018-09-28 09:34:51 -07:00
Matias Niemelä
0c344715e5 feat(ivy): expose a series of helpful application inspection tools ()
PR Close 
2018-09-25 09:46:12 -07:00
Pete Bacon Darwin
9b1bb370a3 fix(ivy): ngcc should compile entry-points in the correct order ()
The compiler should process all an entry-points dependencies
before processing that entry-point.

PR Close 
2018-09-18 13:06:28 -07:00
Pete Bacon Darwin
6f1100a7e9 refactor(ivy): use canonical-path in ngcc ()
It turns out that `path.posix` does not always reliably
return forward slash paths on Windows.

PR Close 
2018-09-18 13:06:28 -07:00
Greg Magolan
b99d7ed5bf build(bazel): update to rules_typescript 0.17.0 & rules_nodejs 0.13.4 ()
PR Close 
2018-09-18 13:05:38 -07:00
Alex Eagle
bdbb2f9bfa ci: update to bazel 0.17 ()
this includes support for @ character in labels, which we need for fine-grained deps

PR Close 
2018-09-17 12:51:52 -07:00
Alex Eagle
34ec9244a6 build: update to Node 10 ()
PR Close 
2018-09-06 14:58:30 -07:00
Pete Bacon Darwin
b0cb134815 feat(ivy): implement ngcc build marker ()
`ngcc` adds marker files to each folder that has been
compiled, containing the version of the ngcc used.

When compiling, it will ignore folders that contain these
marker files, as long as the version matches.

PR Close 
2018-09-05 11:35:47 -07:00
Greg Magolan
1e7a873cf4 build(bazel): remove unused angular.tsconfig.json integration/bazel test ()
PR Close 
2018-09-05 09:38:19 -07:00
Greg Magolan
910381ddbd build(bazel): fix bazel types reference directive resolves ()
PR Close 
2018-08-31 11:12:03 -07:00
Rob Wormald
6143da66b2 fix(elements): add compiler dependency ()
PR Close 
2018-08-30 21:33:14 -07:00
Rob Wormald
a080ffc743 fix(elements): add compiler to integration ()
PR Close 
2018-08-30 21:33:14 -07:00
Rob Wormald
a8210d010b fix(elements): strict null checks ()
PR Close 
2018-08-30 21:33:14 -07:00
Rob Wormald
c9844a2f01 feat(elements): enable Shadow DOM v1 and slots ()
When using ViewEncapsulation.ShadowDom, Angular will not remove the child nodes of the DOM node a root Component is bootstrapped into. This enables developers building Angular Elements to use the `<slot>` element to do native content projection.

PR Close 
2018-08-30 21:33:14 -07:00
Rob Wormald
4815b92495 test(elements): add basic integration test for angular elements ()
PR Close 
2018-08-30 21:33:14 -07:00
Alan Agius
5653fada32 feat: add TypeScript 3 support ()
PR Close 
2018-08-27 21:07:53 -04:00
Alex Eagle
c230173716 build: update Bazel to 0.16 ()
PR Close 
2018-08-27 18:20:32 -04:00
Greg Magolan
a59d4da304 build(bazel): fix bazel integration test after rules_typescript update ()
PR Close 
2018-08-23 15:26:21 -04:00
Alex Eagle
22e7f7e99f build(bazel): update to rules_typescript 0.16.1 ()
PR Close 
2018-08-23 15:26:21 -04:00
Pete Bacon Darwin
7500f0eafb feat(ivy): find all packages to be compiled by ngcc ()
PR Close 
2018-08-22 19:28:56 -04:00
Pete Bacon Darwin
68acc5b355 feat(ivy): compile all package formats in ngcc ()
PR Close 
2018-08-22 19:28:56 -04:00
Alex Rickabaugh
c8baace554 test(ivy): add an integration test for ngcc ()
This commit adds an integration test for ngcc, which runs ngcc
against most @angular packages. It does not yet make any assertions
on the result.

PR Close 
2018-08-22 19:28:56 -04:00
Greg Magolan
b5f354f2fb build(bazel): update to rules_typescript 0.16.0 & update to tagged rules_webtesting 0.2.1 ()
PR Close 
2018-08-14 16:37:15 -07:00
Victor Berchet
14ac7ad6b4 feat(ivy): implement TestBed ()
PR Close 
2018-08-14 11:58:47 -07:00
Alex Eagle
6c4da9dcd3 build: stop printing source-map-support warning ()
PR Close 
2018-08-08 19:02:57 -07:00
Kara Erickson
843479449d Revert "build: update Bazel to 0.16 ()" ()
This reverts commit 4eb8ac6de945bbc0d425e97d9f034ed68b307c50 because 0.16 is not
widely available yet (e.g. on Mac) and it is blocking the Angular release.

PR Close 
2018-08-08 10:52:23 -07:00
Alex Eagle
4eb8ac6de9 build: update Bazel to 0.16 ()
PR Close 
2018-08-06 11:30:24 -07:00
Greg Magolan
bde4402675 build: update hello_world__closure to google-closure-compiler 20180716.0.0 ()
PR Close 
2018-08-01 13:23:35 -07:00
Greg Magolan
5254d3447d build(bazel): update to rules_nodejs 0.11.2 and latest rules_typescript ()
PR Close 
2018-07-31 11:41:50 -07:00
Greg Magolan
1d051c5841 build(bazel): use bazel managed node_modules for downstream angular from source build support ()
PR Close 
2018-07-26 17:02:21 -07:00
Greg Magolan
c438b5eeda build(bazel): turn on preserve-symlinks ()
This change turns on preserve-symlinks in nodejs to verify hermeticity of the Angular build.

BREAKING CHANGE: Use of @angular/bazel rules now requires calling ng_setup_workspace() in your WORKSPACE file.

For example:

local_repository(
    name = "angular",
    path = "node_modules/@angular/bazel",
)

load("@angular//:index.bzl", "ng_setup_workspace")

ng_setup_workspace()

PR Close 
2018-07-20 10:37:30 -07:00
Alex Eagle
97277bc9fb build: update to Bazel 0.15 ()
PR Close 
2018-07-13 15:05:16 -04:00
Greg Magolan
ee50ee493d build(bazel): try removing gazelle ()
PR Close 
2018-07-12 16:34:45 -04:00
Greg Magolan
161ff5c79d feat(bazel): protractor_web_test_suite for release ()
PR Close 
2018-07-12 16:34:45 -04:00