angular/aio/tools/examples/shared
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]: 22d3067021/.github/ng-renovate/runner-config.js

PR Close #47009
2022-08-02 11:58:51 -07:00
..
boilerplate refactor(docs-infra): update boilerplate to have proper angular.js types (#46819) 2022-07-13 16:32:25 +00:00
example-scaffold build(docs-infra): add a tool to create new examples (#39283) 2020-10-16 08:14:38 -07:00
.npmrc build: rely on engines to prevent using npm for dependency install (#41477) 2021-04-07 12:05:01 -07:00
package.json build(docs-infra): ensure all boilerplate dependencies are in sync (#47009) 2022-08-02 11:58:51 -07:00
sync-boilerplate-dependencies.js build(docs-infra): ensure all boilerplate dependencies are in sync (#47009) 2022-08-02 11:58:51 -07:00
tsconfig.json build(docs-infra): update docs examples to Angular v12.1.3 (#42949) 2021-08-09 09:41:00 -07:00
yarn.lock build: lock file maintenance (#46691) 2022-07-13 17:07:57 +00:00