Skip to content
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鈥檒l occasionally send you account related emails.

Already on GitHub? Sign in to your account

v1.0.0 Roadmap #306

Open
siddharthkp opened this issue May 22, 2019 · 27 comments
Open

v1.0.0 Roadmap #306

siddharthkp opened this issue May 22, 2019 · 27 comments

Comments

@siddharthkp
Copy link
Owner

siddharthkp commented May 22, 2019

Hi 馃憢

I built bundlesize in June 2017 to solve a problem I had at the time.

Since then, it has become pretty popular. Here's are some crazy numbers:

  • Bundlesize does about 50k builds every week
  • 1.5M builds in it's lifetime (2 years)
  • There are 10.8K public repositories (and unknown number of private repos 馃し鈥嶁檧) that have bundlesize as a dependency
  • Used by popular open source libraries like Bootstrap, lighthouse, styled-components, emotion, redux-saga, react-apollo, popper and a bunch more!

But I haven't been doing a good job at maintaining as after I moved projects. I'm really thankful to the ~50 contributors that have been generous with their time in improving bundlesize.

Maintaining an open source project requires consistent effort, not just with adding code, but also code reviews and support. I haven't been able to keep up with the changes in my career.

The Chrome Performance Fund might be able to help with that by paying contributors for their time 馃憦


There are a few themes that come up in the issues on the regular. Please give a 馃憤 to the problems you have faced and would like to see solved.

Feel free to create an issue to suggest additions to this roadmap as well

@siddharthkp
Copy link
Owner Author

siddharthkp commented May 22, 2019

Deeper GitHub integration

Right now, bundlesize requires a manual configuration with copy-pasting access tokens, which

  1. Prevents some folks from using it (Don't know how to, Don't have access, admins don't allow, etc.)
  2. Is very difficult to debug when it doesn't work.

Using GitHub Apps + Checks will solve both of these problems and allow us to use improved UX

Related issues: #223 #203 #148 #29

@siddharthkp
Copy link
Owner Author

siddharthkp commented May 22, 2019

Better configuration

bundlesize started with an array in package.json, this did not scale well 馃槄

We now have inconsistent support in package.json and the CLI (used with npx). One of the most popular request is to add a config file.

  1. We can tackle all these problems with a common format over all 3 mediums (most probably using cosmiconfig) published in 0.18.0

  2. On the same theme, better support toolkits where you don't have direct access to the files. Example: create-react-app, nextjs

Related issues: #304 #256 #225 #206 #173 #162

@siddharthkp
Copy link
Owner Author

siddharthkp commented May 22, 2019

Better error handling

Because bundlesize uses access token from environment variables, it can fail given any of these scenarios:

  1. Token was not set correctly
  2. Token does't have the correct permissions attached to it
  3. Token expired
  4. Incorrect parameters sent to GitHub for status

All of these scenarios result in a 404: Not Found error or the build hanging in CI which is not helpful. (GitHub returns 404 instead of 401)

We can take care of most of these in the tool itself and give more helpful error messages that can help folks fix their issue.

Related issues: #93 #245 #280 #284 #308

@siddharthkp
Copy link
Owner Author

siddharthkp commented May 22, 2019

Remove false negatives

Like any software, bundlesize has bugs. The scariest of them is when bundlesize should have failed but does not fail the build.

This stems from returning the wrong flag for a CI environment OR reading the file size incorrectly.

A few tests will take us a long way!

Related issues: #188 #229 #159 #281 #267

@siddharthkp
Copy link
Owner Author

siddharthkp commented May 22, 2019

Support bundlesize in forks

In every CI system, forks don't get environment variables which makes a lot of sense. This also means bundlesize can't report on pull requests submitted to the source repository. (Basically, every external contribution to an open source project)

I don't have a solution yet, but we might have to think of alternate ways of reporting like comments

Related issues: #219

I know @mxstbr and @developit have run into this amongst others

@siddharthkp
Copy link
Owner Author

siddharthkp commented May 22, 2019

Better reporting

bundlesize does an okay job at reporting when there are multiple files involved.

  1. The messages in GitHub status should be better
  2. Fix the details link when there are too many files

Related issues: #182 #208 #164 #285

@siddharthkp
Copy link
Owner Author

Make it easier to support more CI environments

Codefresh: #236
Teamcity #257
Sephamore #176
AppVeyor #234
GitLab #19

@siddharthkp
Copy link
Owner Author

Plugin system to extend/tweak core functionality via plugins

Every once in a while there's a feature request (or even a pull request) that makes a lot of sense for the contributor and their team but doesn't sit well in bundlesize core.

Example: Add check for minSize; Warn instead of failing build

It would make a lot of sense if you can intercept bundlesize and use it's output to set the message that fits your need

Related issues: #207 #271 #254

@siddharthkp siddharthkp changed the title (work in progress) v1.0.0 Roadmap v1.0.0 Roadmap May 22, 2019
@siddharthkp
Copy link
Owner Author

siddharthkp commented May 22, 2019

@karanjthakkar
Copy link
Contributor

馃憦

@siddharthkp siddharthkp pinned this issue May 22, 2019
@Haroenv
Copy link
Collaborator

Haroenv commented May 22, 2019

One thing which would make it a lot nicer too is if the comparison would be to the base branch on GitHub (instead of always master), since that way you get a pure diff

@Haroenv
Copy link
Collaborator

Haroenv commented May 22, 2019

Sometimes you want to compare why something changed, it would be nice to visually diff the two bundles somehow. This could be done by tracking the bundled files in git, but it鈥檚 not a nice solution

@kuldeepkeshwar
Copy link
Contributor

kuldeepkeshwar commented May 22, 2019

Support for Github Enterprise with a pluggable way to store stats. The storage solution can be Remote Server or FileSystem

@wardpeet
Copy link

I moved a few projects to https://github.com/GoogleChromeLabs/travis-size-report as I love the way how they report it. The downsize is that it's bound to travis-ci but it works in forks. Very cool that you're picking this up again.

@siddharthkp
Copy link
Owner Author

@wardpeet that looks really good!

@ForsakenHarmony
Copy link
Contributor

slight correction, preact currently doesn't use it anymore, because it didn't work for pull requests from forks 馃槙

@siddharthkp
Copy link
Owner Author

@ForsakenHarmony removed 馃憤

@njzjz
Copy link

njzjz commented May 23, 2019

I hope that bundlesize can support GitHub Actions.

updated: in fact, GitHub Actions have been supported.

@austinpray
Copy link

Wanted to make sure this issue didn't get buried: #202

@sumit-gupta91
Copy link

Hi 馃憢,

When are we starting on this roadmap, I would like to contribute.

@addyosmani
Copy link

addyosmani commented Jun 24, 2019

The Chrome Performance Fund might be able to help with that by paying contributors for their time

I'm happy to share Chrome is donating $10,000 to support bundlesize's 1.0 roadmap 馃帀 We think this project's goals align well with helping reduce the initial bundle size of modern web experiences.

In particular, we're excited to see the project explore the proposed work on:

  1. Deeper GitHub integration - easier installation + new checks UX
  2. Stability through better error handling and removing false negatives
  3. Easier to integrate with tools like create-react-app and Next.js (esp. stoked about this!)

Great work so far, @siddharthkp and team. Big fans of bundlesize. We hope this helps!

~ signed Addy, @stubbornella and @spanicker

@mxstbr
Copy link

mxstbr commented Jun 25, 2019

Yes yes yes yes yes 馃帀

@raunofreiberg
Copy link

Is there work to be continued with regards to the roadmap? The repository does not seem to be that active :/

@siddharthkp
Copy link
Owner Author

@raunofreiberg

Is there work to be continued with regards to the roadmap?

Yes!

The repository does not seem to be that active :/

No :(

Soon, though. I promise

@alecrae
Copy link

alecrae commented Feb 23, 2021

Any updates on 1.0? Very excited about bundlesize integration with next.js!

@ggwzrd
Copy link

ggwzrd commented Mar 30, 2022

@siddharthkp I hope you enjoyed the 10k 馃槅

@siddharthkp
Copy link
Owner Author

Sigh, I wish I did

Transactions: https://opencollective.com/bundlesize/transactions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests