Skip to content
This repository has been archived by the owner on Dec 8, 2022. It is now read-only.

[rc] Add support for Angular 9, TypeScript ~3.6 #181

Merged
merged 43 commits into from
Feb 12, 2020

Conversation

Blackbaud-SteveBrush
Copy link
Member

@Blackbaud-SteveBrush Blackbaud-SteveBrush commented Nov 20, 2019

Notes:

  • The Angular CLI is running a compatibility tool behind the scenes (ngcc) that allows Ivy SPAs to consume libraries built with the older "View Engine" compiler. See: https://next.angular.io/guide/ivy#maintaining-library-compatibility. EDIT: Libraries must be compiled with ng-packagr. I'm also going to try and remove deep imports to see if that fixes it.
  • Angular recommends that library authors continue to use View Engine (instead of Ivy) because View Engine works with SPAs that choose to use Ivy or not. See: https://next.angular.io/guide/ivy#maintaining-library-compatibility. In other words, we should adjust our skyux build-public-library config to disable Ivy.
  • Running Ivy is preferable for SPA builds; however, we may need to run ngcc after install (Angular CLI does this behind the scenes). See: https://next.angular.io/guide/ivy#ivy-and-libraries. EDIT: Disabling Ivy for now, until we can get the SKY UX packages (listed in peerDependencies) re-released with ng-packagr.

@codecov
Copy link

codecov bot commented Nov 20, 2019

Codecov Report

Merging #181 into rc-4.0.0 will not change coverage by %.
The diff coverage is n/a.

Impacted file tree graph

@@            Coverage Diff             @@
##           rc-4.0.0      #181   +/-   ##
==========================================
  Coverage    100.00%   100.00%           
==========================================
  Files            57        57           
  Lines          1694      1694           
  Branches        252       252           
==========================================
  Hits           1694      1694           
Flag Coverage Δ
#builder 100.00% <0.00%> (ø) ⬆️
#runtime 100.00% <0.00%> (ø) ⬆️
#srcapp 100.00% <0.00%> (ø) ⬆️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ab08077...ab08077. Read the comment docs.

config/webpack/build-public-library.webpack.config.js Outdated Show resolved Hide resolved
@@ -80,14 +80,16 @@ function browser(argv, skyPagesConfig, stats, port) {

logger.info(`Launching Local URL: ${localUrl}`);
open(localUrl, {
app: argv.browser
app: argv.browser,
url: true
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Upgraded open to the next major version; they require you to specify if the "thing" you're opening is a URL or not.

import 'core-js/es6/map';
import 'core-js/es6/weak-map';
import 'core-js/es6/set';
import 'core-js/es/symbol';
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Latest version of core-js replaces the es6 and es7 folders with es.

tsconfig.json Outdated Show resolved Hide resolved

/* Evergreen browsers require these. */
// Used for reflect-metadata in JIT. If you use AOT (and only Angular decorators), you can remove.
import 'core-js/es7/reflect';
import 'core-js/proposals/reflect-metadata';
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -28,6 +28,7 @@
"prefer-arrow-callback": "off",
"prefer-const": "off",
"prefer-destructuring": "off",
"prefer-object-spread": "off",
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This rule was turned "on" by default in the latest version of ESLint.

@@ -35,7 +35,7 @@ let config = {
} else {

const url = 'https://github.com/blackbaud/skyux-sdk-template';
const branch = 'master';
const branch = 'rc-4.0.0';
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pointing to a specific branch of the template to get e2e tests to run.

See: https://github.com/blackbaud/skyux-sdk-template/tree/rc-4.0.0

@@ -123,16 +121,6 @@ function getSource(skyAppConfig) {

runtimeProviders.push(authTokenProvider);

if (skyAppConfig.skyux.auth) {
nodeModuleImports.push(`import { XHRBackend, RequestOptions } from '@angular/http';`);
nodeModuleImports.push(`import { SkyAuthHttp } from '@skyux/http';`);
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"use-output-property-decorator": true,
"use-host-property-decorator": true,
"no-attribute-parameter-decorator": true,
"no-attribute-decorator": true,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These rules were renamed.

See: mgechev/codelyzer#791 (comment)

package.json Outdated Show resolved Hide resolved
"@skyux/theme": "^3.4.0",
"@types/core-js": "^2.5.0",
"codelyzer": "^4.5.0",
"core-js": "^2.6.3",
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I promoted core-js to a hard dependency of Builder, since Angular 9 CLI has taken ownership of core-js and how it's implemented internally.

"codelyzer": "^4.5.0",
"core-js": "^2.6.3",
"rxjs": "^6.3.3",
"rxjs-compat": "^6.3.3",
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed rxjs-compat as a peer dependency (consumers can still install it if they wish).

@@ -1,3 +1,2 @@
export * from './bootstrapper';
export * from './config';
export * from './runtime.module';
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No one should be using the runtime module (we left it in for backwards compatibility with SKY UX 2).

@Blackbaud-SteveBrush Blackbaud-SteveBrush merged commit b4baae4 into rc-4.0.0 Feb 12, 2020
@Blackbaud-SteveBrush Blackbaud-SteveBrush deleted the rc-angular-9 branch February 12, 2020 21:09
Blackbaud-SteveBrush added a commit that referenced this pull request Jun 10, 2020
* [rc] Merge master (#180)

* [rc] Upgrade karma and jasmine dependencies (#152)

* [rc] Use `dart-sass` instead of `node-sass` (#157)

## Breaking changes:
- Any usage of `/deep/` will fail to compile; should be replaced with the proprietary `:ng-deep`.

* [rc] Added support for `ng-packagr` (#201)

* [rc] Added support for Angular 9, TypeScript ~3.6 (#181)

* Update package.json/changelog for 4.0.0-rc.0 release (#211)

* [rc] Update `@skyux/config`; style sheet injection (#212)

* Update changelog/package.json for 4.0.0-rc.1 release (#213)

* Update changelog/package.json for 4.0.0-rc.1 release

* Doc tweaks

Co-authored-by: John Lyons <John.Lyons@blackbaud.com>

* Rc 4.0.0 latest master 2020 02 20 (#217)

* [rc] Enable Ivy; drop RxJS 5 (#218)

* [rc] Update changelog/package.json for 4.0.0-rc.2 release (#219)

* Update changelog/package.json for 4.0.0-rc.2 release

* Updated changelog

* [rc] Upgrade dependencies; merge master (#222)

* [rc] Upgrade dependencies

* Added babel loader.  Targeting only ansi-regex and strip-ansi packages in node_modules (#221)

* Added babel loader.  Targeting specifically for ansi-regex package in node_modules.

* Added test.

* Added `strip-ansi` to known packages.

* Updated for 3.15.2 (#223)

* Updated for 3.15.2

* Incorporated feedback

* Wording tweak

Co-authored-by: John Lyons <John.Lyons@blackbaud.com>

Co-authored-by: Bobby Earl <bobby.earl@blackbaud.com>
Co-authored-by: John Lyons <John.Lyons@blackbaud.com>

* Updated changelog/package.json for 4.0.0-rc.3 release

* [rc] Make `@skyux-sdk/pact` optional (#224)

* [rc] Upgraded dependencies; merged master (#236)

* Updated changelog/package.json for 4.0.0-rc.4 release

* [rc] Upgraded dependencies (#238)

* Updated changelog/package.json for 4.0.0-rc.5 release

* [rc] Merge master, upgrade dependencies (#244)

* Updated changelog/package.json for 4.0.0-rc.6 release

* [rc] Use `public_api.ts` for libraries (#248)

* [rc] Update changelog/package.json for 4.0.0-rc.7 release (#250)

* Fixed test warning

* [rc] Upgrade dependencies (#253)

* Updated changelog/package.json for 4.0.0-rc.8 release

* [rc] Upgraded help-client; dependencies (#254)

* [rc] Upgrade dependencies

* Upgrade packages

* Fix dependencies

* Updated changelog/package.json for 4.0.0-rc.9 release

* Initialize theme service with theme mapped to current service ID (#255)

* [rc] Upgraded dependencies (#257)

* Added babel loader.  Targeting only ansi-regex and strip-ansi packages in node_modules (#221)

* Added babel loader.  Targeting specifically for ansi-regex package in node_modules.

* Added test.

* Added `strip-ansi` to known packages.

* Updated for 3.15.2 (#223)

* Updated for 3.15.2

* Incorporated feedback

* Wording tweak

Co-authored-by: John Lyons <John.Lyons@blackbaud.com>

* Add viewport margin top for viewkeeper when omnibar enabled (#227)

* Updated CHANGELOG and package.json for 3.16.0 release (#228)

* Updated CHANGELOG and package.json for 3.16.0 release

* Tweaked CHANGELOG entry

* Setting pathMatch property on redirects. (#230)

* Updated CHANGELOG and package files for 3.16.1. (#231)

* Updated CHANGELOG and package files for 3.16.1.

* Incorporated feedback.

* Updated babel. (#234)

* Updated files for 3.16.2. (#235)

* Bump minimist from 1.2.0 to 1.2.2 (#232)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.2.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.2)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update license (#241)

Updated license date to address blackbaud/skyux2-docs#894

* Added theming support (#242)

Co-authored-by: Steve Brush <steve.brush@blackbaud.com>

* Updated CHANGELOG and package.json for 3.17.0 release (#243)

* [rc] Upgrade dependencies; merge master

* Fix test

* Fix peers

* Upgrade auth-client

Co-authored-by: Bobby Earl <bobby.earl@blackbaud.com>
Co-authored-by: John Lyons <John.Lyons@blackbaud.com>
Co-authored-by: Paul Crowder <paul.crowder@blackbaud.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Denise Pena <Denise.Pena@blackbaud.me>

* Updated changelog/package.json for 4.0.0-rc.10 release

* [rc] Improve AoT bundle size (#258)

* Updated changelog/package.json for 4.0.0-rc.11 release

* [rc] Merge master; upgrade dependencies (#263)

* [rc] Merge master

* Upgrade packages

* Upgrade testing lib

* Updated changelog/package.json for 4.0.0-rc.12 release

* [rc] Upgrade Protractor (#264)

* [rc] Merge master (#266)

* Updated changelog/package.json for 4.0.0-rc.13 release

* Updated changelog/package.json for 4.0.0-rc.14 release

* [rc] Upgraded dependencies (#271)

* Updated changelog/package.json for 4.0.0-rc.15 release

* [rc] Upgraded dependencies (#273)

* Added `no-unused-variable` to `tslint.json` (#277)

* Updated changelog/package.json for 4.0.0-rc.16 release

* Adjustments

* Change date

* Wording tweak

* Fix typo

* Wording tweak

* Add missing articles

* Fix changelog

Co-authored-by: Erika McVey <50454925+Blackbaud-ErikaMcVey@users.noreply.github.com>
Co-authored-by: John Lyons <John.Lyons@blackbaud.com>
Co-authored-by: Bobby Earl <bobby.earl@blackbaud.com>
Co-authored-by: Paul Crowder <paul.crowder@blackbaud.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Denise Pena <Denise.Pena@blackbaud.me>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants