codecov / engineering-team

This is a general repo to use with GH Projects
1 stars 1 forks source link

Bundle Analysis V1 #1121

Open codecovdesign opened 6 months ago

codecovdesign commented 6 months ago

Problem to Solve

The current MVP of our bundle analysis tool includes configuration guides in the UI and provides commit/PR reports within the app, as well as directly in GitHub pull request comments.

As we look to build upon this foundation, our next iterations shift to address a part of the developer workflow not covered by the MVP: repo-level reporting. This feature aims to provide a helpful view of bundle trends and compositions over time, which is a key area for further exploration in this discovery.

When I'm managing or contributing to a project, I want to easily understand how our bundles are trending over time in terms of size and composition, so that I can make informed decisions about optimizations, refactoring, or the necessity of adding/removing dependencies.

related: https://github.com/codecov/engineering-team/issues/1115#issuecomment-1999853453

We also want to provide teams with the ability to gate Pull Requests based on configurable bundle size thresholds.

Q2 quarterly items focus:

  1. Bundle gate & report segmenting
  2. Repo-level data visual trends: show how bundle sizes change over time due to code updates

Non Q2 Items

### Polish
- [ ] https://github.com/codecov/engineering-team/issues/1781
- [ ] https://github.com/codecov/engineering-team/issues/1782
- [ ] https://github.com/codecov/engineering-team/issues/1783
- [ ] https://github.com/codecov/engineering-team/issues/1785
- [ ] https://github.com/codecov/engineering-team/issues/1856
- [ ] https://github.com/codecov/engineering-team/issues/1917
Carryover Under Review Issues - TBD - https://github.com/codecov/engineering-team/issues/1423 (by bundle) **Filtering and grouping of assets** - https://github.com/codecov/engineering-team/issues/1422 - https://github.com/codecov/engineering-team/issues/1421 **Configuration** - https://github.com/codecov/engineering-team/issues/1412 (onboarding) - https://github.com/codecov/engineering-team/issues/1485 (user preference) **Docs improvement** - https://github.com/codecov/engineering-team/issues/1386 **Actionable insights** - https://github.com/codecov/engineering-team/issues/1420
codecovdesign commented 6 months ago

next steps:

get MVP out and review adoption in late q1

ideation on next iterations from existing display with 1) branch context selector, 2) bundle selector, 3) trends, 4) bundle gate?

Screenshot 2024-02-09 at 9 25 43 AM
codecovdesign commented 6 months ago

from slack 2/13 focus on version 2:

aj-codecov commented 4 months ago

Coming out of quarterly planning - gates based on bundle size or change are a necessary part of V2

nicholas-codecov commented 3 months ago

One thing that is not noted in here, is the introduction of "Bundle Caching" (which is similar to carry-forward for coverage)

codecovdesign commented 3 months ago

"Bundle Caching"

@nicholas-codecov is there an issue for this already?

nicholas-codecov commented 3 months ago

Not that I know of, I poked @aj-codecov and he's not aware of one either

aj-codecov commented 3 months ago

@codecovdesign I added this in under item #2 at the top - it was discussed a couple places but never made it in to an issue, that's remedied now. It'll be a crucial step to enabling reliable bundle size over time reporting.

codecovdesign commented 3 months ago

got it, will check it out - thanks!

trent-codecov commented 3 months ago

Attaching

@adrian-codecov for general advice/expertise/assistance on the platform side @giovanni-guidini to do some/most of the implementation