Files
angular__angular/renovate.json
T
George Kalpakas 7243564499 build(docs-infra): ensure all boilerplate dependencies are in sync (#47009)
All docs examples share the same `node_modules/` (symlinked into each
example from `aio/tools/examples/shared/node_modules/`). However, each
example type has a different `package.json`, which comes from
`aio/tools/examples/shared/boilerplate/*`). In order to ensure that the
dependencies in each example's `package.json` are the same as the ones
in the symlinked `node_modules/` (i.e. the ones that CI tests are run
with), we have a script (`yarn run sync-deps`) that can sync
dependencies from `shared/package.json` into the boilerplate
`package.json` files.

Previously, this script had to be run manually, which was easy to
forget/not know about and resulted in the boilerplate dependencies
often being out-of-sync with the ones in `shared/package.json` (and by
extension, the ones that were actually installed in `node_modules/`).

This commit helps keep the boilerplate dependencies up-to-date in the
following ways:
- Adds the `sync-deps` script to the `postinstall` scripts.
  This ensures that dependencies remain in sync whenever someone
  manually updates dependencies in `shared/package.json`.
- Runs the `sync-deps` script as a Renovate post-upgrade task.
  This ensures that the depenencies remain in sync whenever Renovate
  updates dependencies in `shared/package.json`.
  For more info on configuring post-upgrade tasks in Renovate, see:
  - [postUpgradeTasks][1]
  - [allowedPostUpgradeCommands][2]
  - [allowPostUpgradeCommandTemplating][3]

NOTE:
For the Renovate change to take effect, the [global config][4] in
`angular/dev-infra` also needs to be updated. This will be done in a
separate PR.

[1]: https://docs.renovatebot.com/configuration-options/#postupgradetasks
[2]: https://docs.renovatebot.com/self-hosted-configuration/#allowedpostupgradecommands
[3]: https://docs.renovatebot.com/self-hosted-configuration/#allowpostupgradecommandtemplating
[4]: https://github.com/angular/dev-infra/blob/22d3067021130271afcfd02d063828c5bdd9c2d7/.github/ng-renovate/runner-config.js

PR Close #47009
2022-08-02 11:58:51 -07:00

105 lines
2.9 KiB
JSON

{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"baseBranches": ["main"],
"enabledManagers": ["npm", "bazel", "github-actions"],
"stopUpdatingLabel": "action: merge",
"rangeStrategy": "replace",
"pinDigests": true,
"semanticCommits": "enabled",
"semanticCommitScope": "",
"semanticCommitType": "build",
"dependencyDashboard": true,
"commitBody": "See associated pull request for more information.",
"separateMajorMinor": false,
"prHourlyLimit": 3,
"timezone": "America/Tijuana",
"lockFileMaintenance": {"enabled": true},
"labels": ["target: patch", "comp: build & ci", "action: review"],
"ignoreDeps": [
"@angular/animations-12",
"@angular/common-12",
"@angular/core-12",
"@angular/forms-12",
"@angular/platform-browser-12",
"@angular/platform-browser-dynamic-12",
"@angular/platform-server-12",
"@angular/router-12",
"@types/node",
"@types/selenium-webdriver",
"angular-1.5",
"angular-1.6",
"angular-1.7",
"angular-1.8",
"angular-mocks-1.5",
"angular-mocks-1.6",
"angular-mocks-1.7",
"angular-mocks-1.8",
"puppeteer",
"remark",
"remark-html",
"selenium-webdriver",
"watchr"
],
"packageRules": [
{
"matchPackagePatterns": ["*"],
"matchUpdateTypes": ["minor", "patch"],
"groupName": "all non-major dependencies",
"schedule": ["after 10:00pm on monday", "before 04:00am on tuesday"]
},
{
"matchPackagePatterns": ["^@bazel/.*", "^build_bazel.*"],
"groupName": "bazel setup",
"schedule": ["at any time"]
},
{
"matchPackagePrefixes": ["@angular/", "angular/", "@angular-devkit", "@schematics/"],
"followTag": "next",
"groupName": "cross-repo Angular dependencies",
"schedule": ["at any time"]
},
{
"matchPackagePrefixes": ["@angular/", "angular/", "@angular-devkit", "@schematics/"],
"matchPaths": ["packages/**"],
"followTag": null
},
{
"matchPackagePrefixes": ["@babel/"],
"groupName": "babel dependencies"
},
{
"matchPackagePrefixes": ["@angular-eslint/", "@typescript-eslint/"],
"groupName": "eslint dependencies"
},
{
"matchPackageNames": ["typescript", "tslib"],
"groupName": "typescript dependencies"
},
{
"matchPaths": [".github/workflows/scorecard.yml"],
"groupName": "scorecard action dependencies",
"groupSlug": "scorecard-action"
},
{
"matchPaths": ["aio/tools/examples/shared/*"],
"postUpgradeTasks": {
"commands": ["yarn run sync-deps"],
"fileFilters": ["aio/tools/examples/shared/boilerplate/**"]
}
},
{"matchCurrentVersion": "0.0.0-PLACEHOLDER", "enabled": false},
{"matchPaths": ["integration/**"], "enabled": false},
{"matchPaths": ["integration/bazel_workspace_tests/**/WORKSPACE"], "enabled": true}
]
}