9bc8864d03
As part of the `payload-size` npm script in `aio/package.json` (which is run on CI), the sizes of the angular.io app bundles are checked to ensure they do not exceed certain limits and are also uploaded to Firebase to be available for later analysis. The uploaded data include the type of the changes (dependencies only, application only, or both). The type of changes is inferred by looking at the files that have changed inside the `aio/` directory. When the `payload-size.sh` script was first introduced, the only files that could affect bundle sizes were inside the `aio/` directory. Therefore, the script would skip uploading the data and checking the sizes if no changes were detected inside the `aio/` directory. However, this assumption stopped being valid over time. For example: - We started tracking/checking bundle sizes when building the angular.io app with the locally built Angular packages (which live outside the `aio/` directory. - Due to CircleCI limitations, the `CI_COMMIT_RANGE` environment variable (which is used for determining what files have been affected) stopped reflecting the whole commit range of the build and only included the last commit instead. Based on the above, there were many cases were size data would not be uploaded to Firebase, even when they may have been affected (because the affecting changes were outside `aio/` - e.g. in framework packages). This makes it harder to analyze size regressions, because important data-points are missing. Even worse, in these cases, the sizes were not even checked against the specified limits, thus making it possible for size regressions to go unnoticed (unless caught by other similar tests). This commit fixes the `scripts/ci/payload-size.sh` script to always track and check payload sizes for angular.io bundles. NOTE: This change will result in more data being recorded (i.e. recording data when it is not possible for the bundle sizes to have been affected by the changes). This is still preferable to failing to record and/or check when sizes could have been affected. PR Close #33987 |
||
---|---|---|
.circleci | ||
.devcontainer | ||
.github | ||
.vscode | ||
aio | ||
docs | ||
integration | ||
modules | ||
packages | ||
scripts | ||
third_party | ||
tools | ||
.bazelignore | ||
.bazelrc | ||
.clang-format | ||
.editorconfig | ||
.gitattributes | ||
.gitignore | ||
.mailmap | ||
.nvmrc | ||
BUILD.bazel | ||
CHANGELOG.md | ||
CODE_OF_CONDUCT.md | ||
CONTRIBUTING.md | ||
LICENSE | ||
README.md | ||
WORKSPACE | ||
browser-providers.conf.js | ||
gulpfile.js | ||
karma-js.conf.js | ||
package.json | ||
protractor-perf.conf.js | ||
renovate.json | ||
shims_for_IE.js | ||
test-events.js | ||
test-main.js | ||
tslint.json | ||
yarn.lock | ||
yarn.lock.readme.md |
README.md
Angular
Angular is a development platform for building mobile and desktop web applications using TypeScript/JavaScript and other languages.
Quickstart
Changelog
Learn about the latest improvements.
Want to help?
Want to file a bug, contribute some code, or improve documentation? Excellent! Read up on our guidelines for contributing and then check out one of our issues in the hotlist: community-help.