diff --git a/WORKSPACE b/WORKSPACE index 1cc26d7fa866..0eb900373835 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -3,9 +3,9 @@ workspace(name = "angular_material") # Add nodejs rules http_archive( name = "build_bazel_rules_nodejs", - url = "https://github.com/bazelbuild/rules_nodejs/archive/0.6.0.zip", - strip_prefix = "rules_nodejs-0.6.0", - sha256 = "e8a2bb5ca51fbafb244bc507bcebcae33a63d969f47413b319a8dcce032845bf", + url = "https://github.com/bazelbuild/rules_nodejs/archive/99166f8eb7fc628ca561acf9f9a51a1c26edadad.zip", + strip_prefix = "rules_nodejs-99166f8eb7fc628ca561acf9f9a51a1c26edadad", + sha256 = "338e8495e5d1fa16de7190106c5675372ff4a347f6004e203e84a168db96281e", ) # NOTE: this rule installs nodejs, npm, and yarn, but does NOT install @@ -28,9 +28,9 @@ sass_repositories() # Add TypeScript rules http_archive( name = "build_bazel_rules_typescript", - url = "https://github.com/bazelbuild/rules_typescript/archive/df4a1a561d88e187438ac7791a5ac33995f2d317.zip", - strip_prefix = "rules_typescript-df4a1a561d88e187438ac7791a5ac33995f2d317", - sha256 = "51a84f156eeddf126e9370b5c193b4709eeb330448e2de5afcda40232e0b56bc", + url = "https://github.com/bazelbuild/rules_typescript/archive/0.11.1.zip", + strip_prefix = "rules_typescript-0.11.1", + sha256 = "7406bea7954e1c906f075115dfa176551a881119f6820b126ea1eacb09f34a1a", ) # Setup TypeScript Bazel workspace diff --git a/package-lock.json b/package-lock.json index 5b47f5843027..34955d58fc09 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "material2-srcs", - "version": "6.0.0-rc.0", + "version": "6.0.0-rc.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -49,17 +49,17 @@ } }, "@angular/animations": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-6.0.0-rc.1.tgz", - "integrity": "sha512-Fvc3FXP2eREUsPc6LztiTPZsG9+FAo99SO5lGtIOBypCs7Lrpnv5pH18RRRmmnF3xbqI+A+bCPQdu1w89fWDWA==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-6.0.0-rc.3.tgz", + "integrity": "sha512-uUx8n3rnORn3pVb1sPiPYRhCETsaLLLeygPKlfqcTqdO8/hUEdumGI0hfrn0rW8qK2x2Pwxvz2qNPkn4iGgwTg==", "requires": { "tslib": "1.9.0" } }, "@angular/bazel": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/bazel/-/bazel-6.0.0-rc.1.tgz", - "integrity": "sha512-nhbCzi6QXr4QQIvKqIXM6Prmo9PZ2H3COp0nIMZeoowEurHCSmT+d2KXYidOU5BJEaaNVjPwwbPw0imWjr92hQ==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/bazel/-/bazel-6.0.0-rc.3.tgz", + "integrity": "sha512-rGMT6FizevRBiOWrAiuIItf6IjyFVvBBR9pb/QG/FnbiddwOIRjJe1xTz6W9rrqfOTNUJws7aJLzFNUCxfS8uQ==", "dev": true, "requires": { "@bazel/typescript": "0.11.1", @@ -78,25 +78,25 @@ } }, "@angular/common": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.0.0-rc.1.tgz", - "integrity": "sha512-r7fOlEUGbXZUhoRDNuM8GvCs3y/yb6aTVgVdrK+2CZV0lbMJPoRCkfCVIdkJdMo3SZ9O+3At64hYu5WHr+heZQ==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-6.0.0-rc.3.tgz", + "integrity": "sha512-arc0LoT2opge2CDUXufN+TIjTUUx+N46MSWW1sKiLUzbK38E2nZ4S1RHoVDR6P7c6ruKMmaqZFJkOn6wd5Oi0w==", "requires": { "tslib": "1.9.0" } }, "@angular/compiler": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.0.0-rc.1.tgz", - "integrity": "sha512-kZFfgxlP49EGWoOd+wmsPKrCbaMvTK7aLmYhmdmxXLJJ8hIQZQGTfUEY1aV43j3oOu5nxWqchQKJnV1GRosyOA==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-6.0.0-rc.3.tgz", + "integrity": "sha512-ZRsAtThpSrXKQ0N64Wa7ovDXXQ333uyRKUqApNo0NskvWwURiiBU9gACR4KmJmBRo4PUyITkFnyOM+6QMFDGQQ==", "requires": { "tslib": "1.9.0" } }, "@angular/compiler-cli": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.0.0-rc.1.tgz", - "integrity": "sha512-bHzciEbIqe9rhXawBwF0GZQf5iYch2qxAut3eZZLI9n8uR0nb8XwuZwCuVhsg0WN9WTFyMfiyhWkWT2xu1pzEg==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-6.0.0-rc.3.tgz", + "integrity": "sha512-hpVAb3BaX7TaK2iUW91poi1txZv5GeP97qX5c1vTTzGfFveGT5a5zkTee9ihCdelYIl5wBObkRrcXWjVLSXIzw==", "dev": true, "requires": { "chokidar": "1.7.0", @@ -106,71 +106,71 @@ } }, "@angular/core": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.0.0-rc.1.tgz", - "integrity": "sha512-lzt+lkYt44h7gV+hBVguD+kAfiERJfBgJyRH2PF8PzTjTwR23N/As4Dofr3ZT29s018eVe4lOoJWzPOg3FMdow==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-6.0.0-rc.3.tgz", + "integrity": "sha512-zB6bpFNx6Iefko6HKYMSKjyB0XJj8yAgK1G/Ozzb+hbSMmkVi+HetG4v0WXg4sn2mD5NGxj+7qz7tGAzhlBgdA==", "requires": { "tslib": "1.9.0" } }, "@angular/forms": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.0.0-rc.1.tgz", - "integrity": "sha512-amkbyf8tPFc5byJAywHIuD+ydQEt0gSd41hDhpH9T78N5PIoSSC/5sL3NfIhPNo4dfhDDpcHZVgyggylFanLew==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-6.0.0-rc.3.tgz", + "integrity": "sha512-YtXrhXzee77L3YrBY60Zgd9OV90CCKWv4uUTldeSKcjFYremgmRqQy73+V2eE9akTLiKseLTaVYdntTINUL8IQ==", "requires": { "tslib": "1.9.0" } }, "@angular/http": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/http/-/http-6.0.0-rc.1.tgz", - "integrity": "sha512-ZjMopT8XCNRRgajbk4cFYE91uoi5xBUM7JZdP7Hx2nl4lqe15NlS+j4i/F4dM/pwpdc2JKfR7KWyPuqiKdX0WQ==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/http/-/http-6.0.0-rc.3.tgz", + "integrity": "sha512-PN8W2OSeptAIJ5/CeZNGdRiTVHjuYfFSB+ZgBeWhQVBmIV5Lp5iTNDcGslEB9diMkJSNsh/jYtcA0YAFhirYhw==", "dev": true, "requires": { "tslib": "1.9.0" } }, "@angular/platform-browser": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.0.0-rc.1.tgz", - "integrity": "sha512-N/565C7KCRvVg+u4WiXJcaZV8avsfUmSds2q2fuegSB7qeq5D5JcY1o3sVsalMT6BgNUE85gvhvaSs35bqbE/w==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-6.0.0-rc.3.tgz", + "integrity": "sha512-uMUAImcIbunqp9DKRSqokeAYWlyYFrqQAUpJNTeksUO9zkP2rPXlUi8ogZtEybHCc9XuoByC+UgC2IOMtmS82g==", "requires": { "tslib": "1.9.0" } }, "@angular/platform-browser-dynamic": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.0-rc.1.tgz", - "integrity": "sha512-hcXmfFC/PuOYSMg6wSqE1P0NA5fP6nN1GiJbXoEeF6cWAyAYPPL5n6wyoodgg/LuGa48VHmyHIMYOeKZ+s88CA==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-6.0.0-rc.3.tgz", + "integrity": "sha512-q5ZUvgGUuIVKx9I9++ovKXRssu5czNzr/1jgfzvh72a2+s5aVyVB8Zd164pdS6GSvi8lyApSNPBnBlRROHklbg==", "dev": true, "requires": { "tslib": "1.9.0" } }, "@angular/platform-server": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-6.0.0-rc.1.tgz", - "integrity": "sha512-Akzlh9Yb4YNAwNq4J1BQlj/UcQQ0OJN6vc7G24jB/8hDPkUTURJIk0SwWZSoZvauuGKY45YxXJDjVEgOXxTDSA==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-6.0.0-rc.3.tgz", + "integrity": "sha512-gIzmma1RWrCwWnaqkOwaSAgNTjRASiCb5iPcOpYoAVwpbkhmRg2UWUYJNI0eDc/p4DHYyM2jET7IdbGrgy3hVw==", "dev": true, "requires": { - "domino": "2.0.1", + "domino": "2.0.2", "tslib": "1.9.0", "xhr2": "0.1.4" } }, "@angular/router": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-6.0.0-rc.1.tgz", - "integrity": "sha512-rR5bEynWyqtjY+MPSk1rGjjVYtcfK/RHGdkoI0Eha293c7XfYvD1qKnxCwk2EvL23IP/2XYwmBP80P0jBA2RGw==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-6.0.0-rc.3.tgz", + "integrity": "sha512-H621WrhkGayCZlr7f6V2czVAZPPXCeAXqsGjt5MWgB+MzpPP/+lrqKMhku9ZDE0OrlDucU2g34oipGoh0tJW2g==", "dev": true, "requires": { "tslib": "1.9.0" } }, "@angular/upgrade": { - "version": "6.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-6.0.0-rc.1.tgz", - "integrity": "sha512-/ZeZbb1NGgYYolSV6TWpOLlYvJAY03SwlOdzd6f9AYiY0X+m5ivX0DzCXa1nbSvXePebV6sEd3QV1Ln6SpXZNg==", + "version": "6.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@angular/upgrade/-/upgrade-6.0.0-rc.3.tgz", + "integrity": "sha512-9BgwY5/FZXr6ALWNhx0haOIl+qydmtwF3lmFFKAla32VQ5En0/Sbv9DgqZVQ5za6Sbva9ugUaxESW74/0vu3ag==", "dev": true, "requires": { "tslib": "1.9.0" @@ -4750,9 +4750,9 @@ } }, "domino": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/domino/-/domino-2.0.1.tgz", - "integrity": "sha512-f08oiY92tD+GHNiBTZKWmU9l2dbpWEMC9/UX4hM2kD3TSONcfHmCR2llqZpcipSAtVMz/dVgLfg5tfxy7axwLw==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/domino/-/domino-2.0.2.tgz", + "integrity": "sha512-vzykUakUw5s1p0RrN/vI2sShYo3pLRy/z7PM1PuOIZIlMOJ0XfOnrckGE5f4MxIQVe5XcrH7yG9mR+l77mgLVA==", "dev": true }, "domutils": { diff --git a/package.json b/package.json index d1568d65d432..c356762fade8 100644 --- a/package.json +++ b/package.json @@ -26,12 +26,12 @@ "node": ">= 5.4.1" }, "dependencies": { - "@angular/animations": "6.0.0-rc.1", - "@angular/common": "6.0.0-rc.1", - "@angular/compiler": "6.0.0-rc.1", - "@angular/core": "6.0.0-rc.1", - "@angular/forms": "6.0.0-rc.1", - "@angular/platform-browser": "6.0.0-rc.1", + "@angular/animations": "6.0.0-rc.3", + "@angular/common": "6.0.0-rc.3", + "@angular/compiler": "6.0.0-rc.3", + "@angular/core": "6.0.0-rc.3", + "@angular/forms": "6.0.0-rc.3", + "@angular/platform-browser": "6.0.0-rc.3", "core-js": "^2.4.1", "rxjs": "6.0.0-rc.0", "systemjs": "0.19.43", @@ -42,13 +42,13 @@ "devDependencies": { "@angular-devkit/core": "^0.4.5", "@angular-devkit/schematics": "^0.4.5", - "@angular/bazel": "6.0.0-rc.1", - "@angular/compiler-cli": "6.0.0-rc.1", - "@angular/http": "6.0.0-rc.1", - "@angular/platform-browser-dynamic": "6.0.0-rc.1", - "@angular/platform-server": "6.0.0-rc.1", - "@angular/router": "6.0.0-rc.1", - "@angular/upgrade": "6.0.0-rc.1", + "@angular/bazel": "6.0.0-rc.3", + "@angular/compiler-cli": "6.0.0-rc.3", + "@angular/http": "6.0.0-rc.3", + "@angular/platform-browser-dynamic": "6.0.0-rc.3", + "@angular/platform-server": "6.0.0-rc.3", + "@angular/router": "6.0.0-rc.3", + "@angular/upgrade": "6.0.0-rc.3", "@bazel/ibazel": "0.3.1", "@google-cloud/storage": "^1.1.1", "@schematics/angular": "^0.4.5", diff --git a/src/lib/BUILD.bazel b/src/lib/BUILD.bazel index 598c96195ba5..452054367dbf 100644 --- a/src/lib/BUILD.bazel +++ b/src/lib/BUILD.bazel @@ -32,23 +32,20 @@ sass_bundle( output_name = "_theming.scss", ) -# TODO(jelbourn): uncomment when 6.0.0-rc.1 comes out # Creates the @angular/material package published to npm. -#ng_package( -# name = "npm_package", -# srcs = [ -# "package.json", -# ], -# entry_point = "src/lib/public_api.js", -# entry_point_name = "material", -# globals = ROLLUP_GLOBALS, -# data = [ -# ":theming_bundle", -# "//src/lib/prebuilt-themes:indigo-pink", -# "//src/lib/prebuilt-themes:deeppurple-amber", -# "//src/lib/prebuilt-themes:pink-bluegrey", -# "//src/lib/prebuilt-themes:purple-green", -# ], -# packages = ["//src/lib/schematics:npm_package"], -# deps = MATERIAL_TARGETS -#) +ng_package( + name = "npm_package", + srcs = ["package.json"], + entry_point = "src/lib/public_api.js", + entry_point_name = "material", + globals = ROLLUP_GLOBALS, + data = [ + ":theming_bundle", + "//src/lib/prebuilt-themes:indigo-pink", + "//src/lib/prebuilt-themes:deeppurple-amber", + "//src/lib/prebuilt-themes:pink-bluegrey", + "//src/lib/prebuilt-themes:purple-green", + ], + packages = ["//src/lib/schematics:npm_package"], + deps = MATERIAL_TARGETS, +) diff --git a/tools/bazel-stamp-vars.sh b/tools/bazel-stamp-vars.sh new file mode 100755 index 000000000000..a58a9f4b989b --- /dev/null +++ b/tools/bazel-stamp-vars.sh @@ -0,0 +1,43 @@ +#!/usr/bin/env bash + +# Generates the data used by the stamping feature in bazel. +# This script is intended to be used as a Bazel workspace_status_command, which +# prints out a set of key-value pairs. +# See https://github.com/angular/angular/blob/master/docs/BAZEL.md for more explanation +set -u -e -E -o pipefail + +function onError { + echo "Failed to execute: $0" + echo "" +} + +# Setup crash trap +trap 'onError' ERR + +if [[ "$(git tag)" == "" ]]; then + echo "No git tags found, can't stamp the build." + echo "Either fetch the tags:" + echo " git fetch git@github.com:angular/material2.git --tags" + echo "or build without stamping by giving an empty workspace_status_command:" + echo " bazel build --workspace_status_command= ..." + echo "" +fi + +# Gets a human-readable name for HEAD, e.g. "6.0.0-rc.0-15-g846ddfa" +git_version_raw=$(git describe --abbrev=7 --tags HEAD) + +# Find out if there are any uncommitted local changes +if [[ $(git status --untracked-files=no --porcelain) ]]; then + local_changes_suffix=".with-local-changes"; +else + local_changes_suffix=""; +fi + +# Reformat `git describe` version string into a more semver-ish string +# From: 5.2.0-rc.0-57-g757f886 +# To: 5.2.0-rc.0+57.sha-757f886 +# Or: 5.2.0-rc.0+57.sha-757f886.with-local-changes + +semver_style_version="$(echo ${git_version_raw} | sed -E 's/-([0-9]+)-g/+\1.sha-/g')" +version_stamp="${semver_style_version}${local_changes_suffix}" +echo "BUILD_SCM_VERSION ${version_stamp}" diff --git a/tools/bazel.rc b/tools/bazel.rc index 7fb4fbd21612..bbd341068d5a 100644 --- a/tools/bazel.rc +++ b/tools/bazel.rc @@ -36,8 +36,9 @@ test --test_output=errors build --experimental_ui test --experimental_ui -# Output to a more coventional location -build --symlink_prefix=dist/bazel/ +# Configures script to do version stamping. +# See https://docs.bazel.build/versions/master/user-manual.html#flag--workspace_status_command +build --workspace_status_command=./tools/bazel-stamp-vars.sh ############################### # Typescript / Angular / Sass #