Tooling to accept payload size changes
- Lenguaje dominante
- JavaScript
- Estrellas
- 77
- Forks
- 83
- Merge medio
- 2 d 5 h
- PR fusionados (30 d)
- 37
Descripción
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?
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
Línea de trabajo
Empieza por el archivo golden integration-payloads.json y el punto de entrada existente yarn symbol-extractor:update. Traza cómo CI compara el payload de cada aplicación de prueba y por qué el error aparece más de una vez; se considera terminado cuando un comando de tooling actualiza los tamaños registrados para todas las aplicaciones afectadas sin ediciones manuales repetidas.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- angular, javascript
- Área
- build-system, ci-cd, tooling
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 38/100