-
Notifications
You must be signed in to change notification settings - Fork 4.1k
Reduce the frequency and number of amphtml package upgrades #28322
Copy link
Copy link
Closed
Labels
P3: When PossibleType: Discussion/QuestionWG: Caching: TriagedInitial triage from wg-caching complete. Remove label if new input required.Initial triage from wg-caching complete. Remove label if new input required.WG: cachingWG: infra
Description
Background:
The amphtml repo has >150 dependencies in package.json. We use renovate to keep them up to date.
Advantages:
- Allows us to use the latest open-source tools
- Allows our
nodeenvironment to be auto-updated (see Discussion to avoid node version incompatibility with LTSs #19050, Upgrade node from ^10.0.0 to ^12.0.0 #25161 (comment), Userenovateto auto-update Node versions inpackage.jsonfiles #25209, and 📦 Update Node.js to 12 #28123) - Helps us avoid security vulnerabilities (🏗 Enable package updates for E2E and visual diff tests #23427 (comment), 🏗🐛Manually update
build-system/tasks/visual-diff/yarn.lockto address security vulnerabilities #23789 (comment), 🏗 Manually upgrade transitive validator dependencies with security vulnerabilities #25445 (comment), 🏗📦 Switch renovate updates foramphtmlfrom opt-in to opt-out #27692 (comment)).
Disadvantages:
- We need to manually merge a large number of renovate PRs each week
- Most
amphtmlPRs come fromrenovate - AMP release notes are filled with noise (example)
- Test speed-ups are less effective because of frequent cache busting
- There are no clear guidelines around what kind of dependencies we can / can't add (Clarify processes or guidelines around introducing devDependencies #24550)
Purpose of this issue:
To identify a way to reduce the number of PRs while continuing to keep dependencies up to date.
Some ideas:
- Reduce the number of
amphtmldependencies: This is easier said than done. We do frequent clean-ups of unnecessary packages, but our toolchain is large, and rewriting the functionality natively is not an option. - Merge all upgrades at night: Today upgrades that pass Travis are merged manually, so we can't rely on the presence of a developer during non-working hours. Also, this doesn't reduce the PR count.
- Allow upgrades that pass Travis to be auto-merged at night: This will require giving write permissions to
renovate, which we've been hesitant to do. This too doesn't reduce the PR count. - Consolidate all
MINORandPATCHupgrades into a single PR per day: This will reduce the number of PRs, but can substantially increase the trouble involved in debugging and fixing a breaking change. It can also require frequent auto-rebasing byrenovate. - Find some other meaningful grouping of package upgrades: Renovate has some native grouping functionality, but it isn't clear how we can use it.
Other ideas?
Reactions are currently unavailable
Metadata
Metadata
Labels
P3: When PossibleType: Discussion/QuestionWG: Caching: TriagedInitial triage from wg-caching complete. Remove label if new input required.Initial triage from wg-caching complete. Remove label if new input required.WG: cachingWG: infra