Tooling to accept payload size changes
- Langage dominant
- JavaScript
- Étoiles
- 77
- Forks
- 83
- Merge moyen
- 2 j 5 h
- PR mergées (30 j)
- 37
Description
Currently in the angular/angular repo, when a change affects payload size for integration test app or AIO, an error is thrown on CI ([example CI failure](https://app.circleci.com/pipelines/github/angular/angular/43342/workflows/f4014ab1-aff3-4298-944b-f64c6a615e5f/jobs/1130977)):
```
FAIL: Commit undefined uncompressed main fell below expected size by 500 bytes or >1% (expected: 231381, actual: 230780).
If this is a desired change, please update the size limits in file '../.cache/bazel/_bazel_circleci/9ce5c2144ecf75d11717c0aa41e45a8d/execroot/angular/bazel-out/k8-fastbuild/bin/integration/cli-hello-world-lazy/test.sh.runfiles/angular/goldens/size-tracking/integration-payloads.json'.
```
We have a number of test apps (~10) for which we track payload size, thus it takes time to manually update everything. Also, minor payload size deltas between the main and a patch branches causes issues during the merge (when merge is requested to both main and patch branches), thus engineers end up creating a new PR and re-do all the manual updates to payload sizes once again.
It'd be great if we can have a tooling to update payload sizes, similar to what we have for tracking the symbols (via `yarn symbol-extractor:update`). That'd improve the quality of life for us, reduce CI reruns and save a bunch of time.
Also, I noticed that the payload size error for each app is present in [the CI output](https://app.circleci.com/pipelines/github/angular/angular/43342/workflows/f4014ab1-aff3-4298-944b-f64c6a615e5f/jobs/1130977) more than once. Do we run it multiple times for some reasons?
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par le fichier golden integration-payloads.json et le point d’entrée existant yarn symbol-extractor:update. Suivez la manière dont CI compare le payload de chaque application de test et pourquoi l’erreur apparaît plusieurs fois ; le travail est terminé lorsqu’une commande de tooling met à jour les tailles suivies pour toutes les applications concernées sans modifications manuelles répétées.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- angular, javascript
- Domaine
- build-system, ci-cd, tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 38/100