-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bundle Analysis] FEATURE: gate configuration option for PR based on bundle size and/or changes #1491
Comments
feedback review notes, post review WIP: configuration criteria:
gate outcomes:
|
MVP review:
|
MVP draft for bundle gate feature
PR comment designsView current + updated copy – the copy aims to be descriptive helping user understand why the message is shown, while not being prescriptive about next steps: questions, considerations, and later iterationsmore open questions and considerations
issues for later:
|
My thoughts on open questions
This can be later |
Just noting some stuff down after chatting with @giovanni-guidini
|
TODO: 1st PR message confirming config is OK Maybe we can add a tag to the URL and trigger a quick tour of the UI? TODO: Handle missing comparison
That's a good condition to add. "some bundle must have been uploaded before sending notifications" |
Customizes the bundle analysis PR comment based on the commit status outcome. matches designs in codecov/engineering-team#1491 except for the table warnings (we can't get a per-bundle percentage yet) Removing some unit tests in favor of larger scoped ones in `test_bundle_analysis.py`
The design for codecov/engineering-team#1491 includes warnings in the bundle table for individual bundles. In order to do that we need a percentage change on the bundle level. The calculation of percentage follows the same idea as the `Comparison`: the percentage is taken using the base bundle size as the 100%
* feat: add percentage change for bundles The design for codecov/engineering-team#1491 includes warnings in the bundle table for individual bundles. In order to do that we need a percentage change on the bundle level. The calculation of percentage follows the same idea as the `Comparison`: the percentage is taken using the base bundle size as the 100% * remove incorrect comment
Problem to solve
As projects grow, maintaining performance standards becomes increasingly challenging. One way to ensure code quality is by gating PRs based on criteria such as bundle size, changes, and/or newly added dependencies.
Exploration here is around 1) implementing a gate that triggers specific actions (ex: fail the check, or pass with warning) when a PR's bundle size exceeds and/or other predefined thresholds and 2) a gating system to prevent performance degradation by enforcing conditional bundle limits as set by org/repo owner/maintainer.
related discovery: #1420
Solution discovery
MVP draft for bundle gate feature
gating item
gating criteria
configuration
PR comment designs
View current + updated copy – the copy aims to be descriptive helping user understand why the message is shown, while not being prescriptive about next steps:
view designs
questions, considerations, and later iterations
more open questions and considerations
neutral
?issues for later:
type-specific thresholds, if this is a gating item then info-display in PR comment needs updating;
out of box could be type: js, css, images and/or 1st loading (removing lazy loading)
handling new vs. existing assets: do we want the system to differentiate between increases due to new assets versus changes to existing ones
ideation
What is the criteria and/or configuration options for gate?
What are the gate outcomes and/or configuration options for gate?
ideation
Another consideration is: should the system display suggestions about actions to take if gate fails and/or there are warnings? or maybe that could be input by customer?
Summary of Considerations for Initial Iteration:
configuration criteria:
gate outcomes:
- further about configuring in package as alternative?
WIP designs
Next Steps
The text was updated successfully, but these errors were encountered: