Giter VIP home page Giter VIP logo

service's Introduction



npm bundlewatch All Contributors

node Libraries.io dependency status for latest release builds test


npm-chart contributors license

BundleWatch

BundleWatch checks file sizes, ensuring bundled browser assets don't jump in file size.
Sharp increases in BundleWatch can signal that something is wrong - adding a package that bloats the slug, a wrong import, or forgetting to minify.

Inspired by Siddharth Kshetrapal bundlesize

Getting Started

Install the BundleWatch package:

  • NPM: npm install bundlewatch --save-dev
  • Yarn: yarn add bundlewatch --dev

Add some basic configuration to your package.json

{
    "name": "my package name",
    "version": "0.0.1",
    "bundlewatch": {
        "files": [
            {
                "path": "myfolder/*.js",
                "maxSize": "100kB"
            }
        ]
    }
}

Usage:

  • NPM: npm run bundlewatch
  • Yarn: yarn run bundlewatch

This will give you command line output. If you want BundleWatch to report build status on your pull requests, see below.

Adding Build Status

BundleWatch can report its status on your GitHub Pull Requests.

build status preview

CI Auth Variables Needed by BundleWatch

  • BUNDLEWATCH_GITHUB_TOKEN

You will need to give BundleWatch access to your GitHub Statuses, which can be done by heading to: https://service.bundlewatch.io/setup-github

This will give you your BUNDLEWATCH_GITHUB_TOKEN. You will need to set this as an environment variable in CI.

CI Variables Needed by BundleWatch

The most efficient way to get this running is to ensure that some environment variables are available for BundleWatch to find.

  • CI_REPO_OWNER github.com/facebook/react
  • CI_REPO_NAME github.com/facebook/react
  • CI_COMMIT_SHA
  • CI_BRANCH

If you're using, Travis, CircleCI, Wrecker, Drone or GitHub Actions these should all work out of the box.

Have a look at the source code to see which variables are automatically found: getCIVars

Viewing the results breakdown

After setting up the above you will have BuildStatus on your Pull Requests. Clicking the details link on the reported status will show you a results file breakdown.

build results preview

Additional Documentation

Full documentation available on bundlewatch.io

I use bundlesize, why should I switch to BundleWatch

  • Bundlesize has entered maintenance mode and pull requests are left hanging, so we wanted to reboot the community through creating BundleWatch
  • New BundleWatch service with infrastructure as code
  • Launched bundlewatch.io documentation website
  • Enough test coverage to support CD
  • Node API Support
  • Lower barrier to contributing (automated testing and publishing), build a trusted community of contributors to have continuous improvement

Additional Features

  • Config validation to stop users from guessing why BundleWatch won't work
  • Support for config file path
  • Better results breakdown page
  • Better comparisons between branches, support branches other than master
  • Support for your own server for storing data
  • New and improved CI behaviour
  • Show history of BundleWatchs over time

Contributors

Thanks goes to these wonderful people (emoji key):


Jake Bolam

๐Ÿ’ป

Shouvik DCosta

๐Ÿ’ป

Tyler Benning

๐ŸŽจ

Leila Rosenthal

๐Ÿ“–

Francois Campbell

๐Ÿ’ป

Emmanuel Ogbizi

๐Ÿšง ๐Ÿ’ป ๐Ÿ›ก๏ธ

Pascal Iske

๐Ÿ›

Oleksii Leonov

๐Ÿ’ป

Nicolas Charpentier

๐Ÿ’ป ๐Ÿšง ๐Ÿ›ก๏ธ

This project follows the all-contributors specification. Contributions of any kind welcome!

Want to Help? Become a Contributor

Contributions of any kind are welcome! See the Contributing docs.

service's People

Contributors

allcontributors[bot] avatar charpeni avatar dependabot-preview[bot] avatar dependabot[bot] avatar francoiscampbell avatar gavinsharp avatar iamogbz avatar jakebolam avatar leilarosenthal avatar sdcosta avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

service's Issues

Domain bundlewatch.io have expired

@jakebolam @charpeni it seems the main domain and its subdomains have expired:
https://whois.gandi.net/en/results?search=bundlewatch.io

Domain Name: bundlewatch.io
Registry Domain ID: D503300000099273120-LRMS
Registrar WHOIS Server: whois.gandi.net
Registrar URL: http://www.gandi.net
Updated Date: 2024-04-30T23:36:23Z
Creation Date: 2018-04-30T23:34:54Z
Registrar Registration Expiration Date: 2024-05-01T01:34:54Z

I hope it can be sorted out.

Please also consider enabling some way to sponsor the project/organization.

Thanks a lot! ๐Ÿ™

Set-up instructions

Please give us some instructions about how to set this up.

I'd love to self-host this so that I can use it for personal projects, but the only instructions (in PR #112) are for AWS.

Add sentry

As the backend gets more complicated, and more service are dependent on it, the need for sentry (and readable stack traces increases)

We are using node8, so In order to do this, it would be best to remove webpack, which involves:

  • Converting imports to commonjs,
  • Remove any code that spreads
  • remove babel and webpack

URL request params prohibitively long

Motivation

Bundlewatch was working fine, and now appears to be failing to process. The suspect we have is that our computed URL is really long (but not ruling out something on our end).

Background

Hey all, @cheapsteak and myself recently started a migration company wide over to Webpack, which involved us also going through and trimming a bunch of our dependencies etc.

One such one was swapping Bundlewatch for Bundlesize. Initially this was painless and almost a 1 for 1 plug and play sort of scenario.

However, we just recently ran into an issues which appears to be causing Bundlewatch to break painfully.

Notes

  • The most obvious guess we have is that our computed URL is ~10400 characters long...which seems...excessive.
  • We know that presently we have many bundles which is most likely exacerbating the problem (we're using Monaco and this results in some fiddling to get it to calm down).
    • We have ~75 bundles... ๐Ÿ˜ฌ
  • Full url for this is here (we vetted that nothing terribly sensitive is present in it):
https://service.bundlewatch.io/results?d=details%7CrepoOwner%7Cmdg-private%7CrepoName%7Cengine-frontend%7CrepoCurrentBranch%7Cchang%2Ftest-right-align-requests%7CrepoBranchBase%7Cmaster%7CcommitSha%7C4aefb461947228021cd2c616e1d63d3edbb090b1%7Cresults%7Cstatus%7Cpass%7CfullResults%7CfilePath%7Cbuild%2Fstatic%2Fjs%2F1.dc6d54c2a81e18654ffa.js%7Csize%7CbaseBranchSize%7CmaxSize%7Cbuild%2Fstatic%2Fjs%2F10.3abf2fc3520da5543937.js%7Cbuild%2Fstatic%2Fjs%2F11.9672396a8970258112fd.js%7Cbuild%2Fstatic%2Fjs%2F12.5441a760ddb21bc23655.js%7Cbuild%2Fstatic%2Fjs%2F13.d683316b2d9bc17ccc76.js%7Cbuild%2Fstatic%2Fjs%2F14.68a4361a17c23b96204d.js%7Cbuild%2Fstatic%2Fjs%2F15.0fe824bf94597011ab20.js%7Cbuild%2Fstatic%2Fjs%2F16.32179e52756d40354cc2.js%7Cbuild%2Fstatic%2Fjs%2F17.b3ea2cd85efb27295226.js%7Cbuild%2Fstatic%2Fjs%2F18.6b828284e20b8f1e1ea2.js%7Cbuild%2Fstatic%2Fjs%2F19.7a448fc7b9d37f8a321a.js%7Cbuild%2Fstatic%2Fjs%2F20.b2b19a7dbb0902b5ae94.js%7Cbuild%2Fstatic%2Fjs%2F21.c933d620e0a1acaae1f0.js%7Cbuild%2Fstatic%2Fjs%2F22.53f6615cd3800c6c3384.js%7Cbuild%2Fstatic%2Fjs%2F23.377a1d0f2bc71db8594c.js%7Cbuild%2Fstatic%2Fjs%2F24.b452603ae39034a70946.js%7Cbuild%2Fstatic%2Fjs%2F25.c8e27ef963be2b88de93.js%7Cbuild%2Fstatic%2Fjs%2F26.d243b2c824e989c2db7e.js%7Cbuild%2Fstatic%2Fjs%2F27.47dfc6d0546a13d6d46b.js%7Cbuild%2Fstatic%2Fjs%2F28.1b09e687ee71226b6c76.js%7Cbuild%2Fstatic%2Fjs%2F29.02276f3e3fcb9307b65a.js%7Cbuild%2Fstatic%2Fjs%2F30.a2065e718444c71b567e.js%7Cbuild%2Fstatic%2Fjs%2F31.17db07825683b1803418.js%7Cbuild%2Fstatic%2Fjs%2F32.42582305edcf480bbf5e.js%7Cbuild%2Fstatic%2Fjs%2F33.c389e1108ee2b214365d.js%7Cbuild%2Fstatic%2Fjs%2F34.7f07e796b08713778a5b.js%7Cbuild%2Fstatic%2Fjs%2F35.51114dfb33755ce6f896.js%7Cbuild%2Fstatic%2Fjs%2F36.d542132bc218b58eece3.js%7Cbuild%2Fstatic%2Fjs%2F37.7d4cb5300fbba0b8f1e1.js%7Cbuild%2Fstatic%2Fjs%2F38.f3bd25724288146da557.js%7Cbuild%2Fstatic%2Fjs%2F39.4351e58571dc0486fe0a.js%7Cbuild%2Fstatic%2Fjs%2F4.6f2d2d75e2b3d692f6b7.js%7Cbuild%2Fstatic%2Fjs%2F40.2c90db7f2ef155da204a.js%7Cbuild%2Fstatic%2Fjs%2F41.65a2b1ed1ac72e1ac2e9.js%7Cbuild%2Fstatic%2Fjs%2F42.84d5e2031981e70ab4a2.js%7Cbuild%2Fstatic%2Fjs%2F43.8cabaaf42b3767e0ae67.js%7Cbuild%2Fstatic%2Fjs%2F44.fab0167480dde59f7884.js%7Cbuild%2Fstatic%2Fjs%2F45.6e683ed142f44b8a1bf3.js%7Cbuild%2Fstatic%2Fjs%2F46.9e9a1f8b8238e08ffe89.js%7Cbuild%2Fstatic%2Fjs%2F47.bf79d47db374e2d5a2b2.js%7Cbuild%2Fstatic%2Fjs%2F48.3149f8c5e92ae94a62ab.js%7Cbuild%2Fstatic%2Fjs%2F49.f50520d2c601c1545df9.js%7Cbuild%2Fstatic%2Fjs%2F5.dff53ad9a3ea67e1827f.js%7Cbuild%2Fstatic%2Fjs%2F50.1370ab56dd336857c1bb.js%7Cbuild%2Fstatic%2Fjs%2F51.7956e2b7dec0d32daba7.js%7Cbuild%2Fstatic%2Fjs%2F52.cf41652b95153741a2c5.js%7Cbuild%2Fstatic%2Fjs%2F53.e0c468277e1b0c922635.js%7Cbuild%2Fstatic%2Fjs%2F54.7129a0ff24d65eb5baae.js%7Cbuild%2Fstatic%2Fjs%2F55.392cbb8b5db3f6e94f19.js%7Cbuild%2Fstatic%2Fjs%2F56.2b656ee385014d880aa5.js%7Cbuild%2Fstatic%2Fjs%2F57.4bcbd20e4fdb849d741c.js%7Cbuild%2Fstatic%2Fjs%2F58.d3ba4a661817c1d417d7.js%7Cbuild%2Fstatic%2Fjs%2F59.3aee9513a29e853c618e.js%7Cbuild%2Fstatic%2Fjs%2F6.29b62117dccf26507a00.js%7Cbuild%2Fstatic%2Fjs%2F60.f9340194056e3c8d15d7.js%7Cbuild%2Fstatic%2Fjs%2F61.76f074d6c7767617669a.js%7Cbuild%2Fstatic%2Fjs%2F62.3c849c38131a5502f854.js%7Cbuild%2Fstatic%2Fjs%2F63.a66e064603f561bed039.js%7Cbuild%2Fstatic%2Fjs%2F64.fa358c9cf0a70861fb36.js%7Cbuild%2Fstatic%2Fjs%2F65.e2f8a6ffa06ca7799fd7.js%7Cbuild%2Fstatic%2Fjs%2F66.bccce96ed750504cdce4.js%7Cbuild%2Fstatic%2Fjs%2F67.c7047e449e6c6efc3ccd.js%7Cbuild%2Fstatic%2Fjs%2F68.64fc96b273b9556d7baf.js%7Cbuild%2Fstatic%2Fjs%2F69.cef812af5774cb7bf054.js%7Cbuild%2Fstatic%2Fjs%2F7.d68a4cabe602b743bd82.js%7Cbuild%2Fstatic%2Fjs%2F70.7b83fe46f321ce2ad6c5.js%7Cbuild%2Fstatic%2Fjs%2F71.74007f5296dc77e0b2c3.js%7Cbuild%2Fstatic%2Fjs%2F72.ad2b6d569d82876ed91a.js%7Cbuild%2Fstatic%2Fjs%2F73.917ec27009e30f74ffad.js%7Cbuild%2Fstatic%2Fjs%2F74.f4a4c4a18f2a5f7cbb32.js%7Cbuild%2Fstatic%2Fjs%2F8.8ed99882c230e66b9b60.js%7Cbuild%2Fstatic%2Fjs%2F9.6ac742baecf9e9be214d.js%7Cbuild%2Fstatic%2Fjs%2Fapp.2655efaa65bbe710ee8b.js%7Cbuild%2Fstatic%2Fjs%2Fcss.8eb5638aa3a2dd69793f.js%7Cbuild%2Fstatic%2Fjs%2Fruntime.a1190080173469676b6b.js%7Cbuild%2Fassets%2Fmonaco.editor.main.min.css%7Cbuild%2Fstatic%2Fcss%2F3.aff054bd9f2d0d6384dc.css%7Cbuild%2Fstatic%2Fcss%2F4.0df0a75e8cae1e5adb1d.css%7Cbuild%2Fstatic%2Fcss%2F5.b35df145b6d5f3c1f54e.css%7Cbuild%2Fstatic%2Fcss%2F6.46feb81a3096ab375de8.css%7Cbuild%2Fstatic%2Fjs%2F6.8bec48a6759443949be8.js%7Cremoved%7Cbuild%2Fstatic%2Fjs%2Fruntime.3682a8815cda27bcc8fe.js%7Csummary%7CEverything%2Bis%2Bin%2Bcheck%2B(%252B138.34KB%2C%2B-138.29KB%2C%2B%252B0.0%2525)%5E1OO%7C1OO%7C2HWCG%7CL8E%7CL8E%7C2HWCG%7C69I%7C69I%7C2HWCG%7C1Q3%7C1Q3%7C2HWCG%7C2YGN%7C2YGN%7C2HWCG%7C21G7%7C21G7%7C2HWCG%7C1RZ%7C1RZ%7C2HWCG%7C1HB%7C1HB%7C2HWCG%7CDK%7CDK%7C2HWCG%7CSB%7CSB%7C2HWCG%7CTS%7CTS%7C2HWCG%7C2WE%7C2WE%7C2HWCG%7C14P%7C14P%7C2HWCG%7C1GJ%7C1GJ%7C2HWCG%7CJ2%7CJ2%7C2HWCG%7C16J%7C16J%7C2HWCG%7CMR%7CMR%7C2HWCG%7C150%7C150%7C2HWCG%7C103%7C103%7C2HWCG%7CWY%7CWY%7C2HWCG%7C15H%7C15H%7C2HWCG%7C119%7C119%7C2HWCG%7CJ9%7CJ9%7C2HWCG%7C15D%7C15D%7C2HWCG%7C195%7C195%7C2HWCG%7C17K%7C17K%7C2HWCG%7CU2%7CU2%7C2HWCG%7C16T%7C16T%7C2HWCG%7CYB%7CYB%7C2HWCG%7C1MP%7C1MP%7C2HWCG%7C42F%7C42F%7C2HWCG%7CGZ8F%7CGZ8F%7C2HWCG%7CXM%7CXM%7C2HWCG%7C171%7C171%7C2HWCG%7CTN%7CTN%7C2HWCG%7C2IF%7C2IF%7C2HWCG%7C4ZH%7C4ZH%7C2HWCG%7C1PH%7C1PH%7C2HWCG%7C1ZG%7C1ZG%7C2HWCG%7C3VG%7C3VG%7C2HWCG%7C16H%7C16H%7C2HWCG%7C1E2%7C1E2%7C2HWCG%7C3GDO%7C3GDO%7C2HWCG%7C16B%7C16B%7C2HWCG%7C10T%7C10T%7C2HWCG%7C1QI%7C1QI%7C2HWCG%7C19I%7C19I%7C2HWCG%7C3G7%7C3G7%7C2HWCG%7C16V%7C16V%7C2HWCG%7C23A%7C23A%7C2HWCG%7C1GY%7C1GY%7C2HWCG%7CRA%7CRA%7C2HWCG%7CQW%7CQW%7C2HWCG%7C2Z2P%7C0%7C2HWCG%7C1GS%7C1GS%7C2HWCG%7C10D%7C10D%7C2HWCG%7C3JN%7C3JN%7C2HWCG%7C11M%7C11M%7C2HWCG%7C561%7C561%7C2HWCG%7C1U8%7C1U8%7C2HWCG%7C1EM%7C1EM%7C2HWCG%7C164%7C164%7C2HWCG%7C1AQ%7C1AQ%7C2HWCG%7C1MC%7C1MC%7C2HWCG%7CACV%7CACV%7C2HWCG%7C1Q9%7C1Q9%7C2HWCG%7CLV%7CLV%7C2HWCG%7C12G%7C12G%7C2HWCG%7CZ5%7CZ5%7C2HWCG%7C4JF%7C4JF%7C2HWCG%7C5H9%7C5H9%7C2HWCG%7C8IQ5%7C8IQ5%7C2HWCG%7C7AF6%7C7AF6%7C2HWCG%7CHC%7CHC%7C2HWCG%7C288%7C0%7C2HWCG%7CCVA%7CCVA%7C4E0W%7CF8V%7CF8V%7C4E0W%7C3A6%7C3A6%7C4E0W%7C7O%7C7O%7C4E0W%7C15Q%7C15Q%7C4E0W%7C0%7C2Z1B%7C0%7C0%7C285%7C0%5E%5E%240%7C%241%7C2%7C3%7C4%7C5%7C6%7C7%7C8%7C9%7CA%5D%7CB%7C%24C%7CD%7CE%7C%40%24F%7CG%7CC%7CD%7CH%7C2W%7CI%7C2X%7CJ%7C2Y%5D%7C%24F%7CK%7CC%7CD%7CH%7C2Z%7CI%7C30%7CJ%7C31%5D%7C%24F%7CL%7CC%7CD%7CH%7C32%7CI%7C33%7CJ%7C34%5D%7C%24F%7CM%7CC%7CD%7CH%7C35%7CI%7C36%7CJ%7C37%5D%7C%24F%7CN%7CC%7CD%7CH%7C38%7CI%7C39%7CJ%7C3A%5D%7C%24F%7CO%7CC%7CD%7CH%7C3B%7CI%7C3C%7CJ%7C3D%5D%7C%24F%7CP%7CC%7CD%7CH%7C3E%7CI%7C3F%7CJ%7C3G%5D%7C%24F%7CQ%7CC%7CD%7CH%7C3H%7CI%7C3I%7CJ%7C3J%5D%7C%24F%7CR%7CC%7CD%7CH%7C3K%7CI%7C3L%7CJ%7C3M%5D%7C%24F%7CS%7CC%7CD%7CH%7C3N%7CI%7C3O%7CJ%7C3P%5D%7C%24F%7CT%7CC%7CD%7CH%7C3Q%7CI%7C3R%7CJ%7C3S%5D%7C%24F%7CU%7CC%7CD%7CH%7C3T%7CI%7C3U%7CJ%7C3V%5D%7C%24F%7CV%7CC%7CD%7CH%7C3W%7CI%7C3X%7CJ%7C3Y%5D%7C%24F%7CW%7CC%7CD%7CH%7C3Z%7CI%7C40%7CJ%7C41%5D%7C%24F%7CX%7CC%7CD%7CH%7C42%7CI%7C43%7CJ%7C44%5D%7C%24F%7CY%7CC%7CD%7CH%7C45%7CI%7C46%7CJ%7C47%5D%7C%24F%7CZ%7CC%7CD%7CH%7C48%7CI%7C49%7CJ%7C4A%5D%7C%24F%7C10%7CC%7CD%7CH%7C4B%7CI%7C4C%7CJ%7C4D%5D%7C%24F%7C11%7CC%7CD%7CH%7C4E%7CI%7C4F%7CJ%7C4G%5D%7C%24F%7C12%7CC%7CD%7CH%7C4H%7CI%7C4I%7CJ%7C4J%5D%7C%24F%7C13%7CC%7CD%7CH%7C4K%7CI%7C4L%7CJ%7C4M%5D%7C%24F%7C14%7CC%7CD%7CH%7C4N%7CI%7C4O%7CJ%7C4P%5D%7C%24F%7C15%7CC%7CD%7CH%7C4Q%7CI%7C4R%7CJ%7C4S%5D%7C%24F%7C16%7CC%7CD%7CH%7C4T%7CI%7C4U%7CJ%7C4V%5D%7C%24F%7C17%7CC%7CD%7CH%7C4W%7CI%7C4X%7CJ%7C4Y%5D%7C%24F%7C18%7CC%7CD%7CH%7C4Z%7CI%7C50%7CJ%7C51%5D%7C%24F%7C19%7CC%7CD%7CH%7C52%7CI%7C53%7CJ%7C54%5D%7C%24F%7C1A%7CC%7CD%7CH%7C55%7CI%7C56%7CJ%7C57%5D%7C%24F%7C1B%7CC%7CD%7CH%7C58%7CI%7C59%7CJ%7C5A%5D%7C%24F%7C1C%7CC%7CD%7CH%7C5B%7CI%7C5C%7CJ%7C5D%5D%7C%24F%7C1D%7CC%7CD%7CH%7C5E%7CI%7C5F%7CJ%7C5G%5D%7C%24F%7C1E%7CC%7CD%7CH%7C5H%7CI%7C5I%7CJ%7C5J%5D%7C%24F%7C1F%7CC%7CD%7CH%7C5K%7CI%7C5L%7CJ%7C5M%5D%7C%24F%7C1G%7CC%7CD%7CH%7C5N%7CI%7C5O%7CJ%7C5P%5D%7C%24F%7C1H%7CC%7CD%7CH%7C5Q%7CI%7C5R%7CJ%7C5S%5D%7C%24F%7C1I%7CC%7CD%7CH%7C5T%7CI%7C5U%7CJ%7C5V%5D%7C%24F%7C1J%7CC%7CD%7CH%7C5W%7CI%7C5X%7CJ%7C5Y%5D%7C%24F%7C1K%7CC%7CD%7CH%7C5Z%7CI%7C60%7CJ%7C61%5D%7C%24F%7C1L%7CC%7CD%7CH%7C62%7CI%7C63%7CJ%7C64%5D%7C%24F%7C1M%7CC%7CD%7CH%7C65%7CI%7C66%7CJ%7C67%5D%7C%24F%7C1N%7CC%7CD%7CH%7C68%7CI%7C69%7CJ%7C6A%5D%7C%24F%7C1O%7CC%7CD%7CH%7C6B%7CI%7C6C%7CJ%7C6D%5D%7C%24F%7C1P%7CC%7CD%7CH%7C6E%7CI%7C6F%7CJ%7C6G%5D%7C%24F%7C1Q%7CC%7CD%7CH%7C6H%7CI%7C6I%7CJ%7C6J%5D%7C%24F%7C1R%7CC%7CD%7CH%7C6K%7CI%7C6L%7CJ%7C6M%5D%7C%24F%7C1S%7CC%7CD%7CH%7C6N%7CI%7C6O%7CJ%7C6P%5D%7C%24F%7C1T%7CC%7CD%7CH%7C6Q%7CI%7C6R%7CJ%7C6S%5D%7C%24F%7C1U%7CC%7CD%7CH%7C6T%7CI%7C6U%7CJ%7C6V%5D%7C%24F%7C1V%7CC%7CD%7CH%7C6W%7CI%7C6X%7CJ%7C6Y%5D%7C%24F%7C1W%7CC%7CD%7CH%7C6Z%7CI%7C70%7CJ%7C71%5D%7C%24F%7C1X%7CC%7CD%7CH%7C72%7CI%7C73%7CJ%7C74%5D%7C%24F%7C1Y%7CC%7CD%7CH%7C75%7CI%7C76%7CJ%7C77%5D%7C%24F%7C1Z%7CC%7CD%7CH%7C78%7CI%7C79%7CJ%7C7A%5D%7C%24F%7C20%7CC%7CD%7CH%7C7B%7CI%7C7C%7CJ%7C7D%5D%7C%24F%7C21%7CC%7CD%7CH%7C7E%7CI%7C7F%7CJ%7C7G%5D%7C%24F%7C22%7CC%7CD%7CH%7C7H%7CI%7C7I%7CJ%7C7J%5D%7C%24F%7C23%7CC%7CD%7CH%7C7K%7CI%7C7L%7CJ%7C7M%5D%7C%24F%7C24%7CC%7CD%7CH%7C7N%7CI%7C7O%7CJ%7C7P%5D%7C%24F%7C25%7CC%7CD%7CH%7C7Q%7CI%7C7R%7CJ%7C7S%5D%7C%24F%7C26%7CC%7CD%7CH%7C7T%7CI%7C7U%7CJ%7C7V%5D%7C%24F%7C27%7CC%7CD%7CH%7C7W%7CI%7C7X%7CJ%7C7Y%5D%7C%24F%7C28%7CC%7CD%7CH%7C7Z%7CI%7C80%7CJ%7C81%5D%7C%24F%7C29%7CC%7CD%7CH%7C82%7CI%7C83%7CJ%7C84%5D%7C%24F%7C2A%7CC%7CD%7CH%7C85%7CI%7C86%7CJ%7C87%5D%7C%24F%7C2B%7CC%7CD%7CH%7C88%7CI%7C89%7CJ%7C8A%5D%7C%24F%7C2C%7CC%7CD%7CH%7C8B%7CI%7C8C%7CJ%7C8D%5D%7C%24F%7C2D%7CC%7CD%7CH%7C8E%7CI%7C8F%7CJ%7C8G%5D%7C%24F%7C2E%7CC%7CD%7CH%7C8H%7CI%7C8I%7CJ%7C8J%5D%7C%24F%7C2F%7CC%7CD%7CH%7C8K%7CI%7C8L%7CJ%7C8M%5D%7C%24F%7C2G%7CC%7CD%7CH%7C8N%7CI%7C8O%7CJ%7C8P%5D%7C%24F%7C2H%7CC%7CD%7CH%7C8Q%7CI%7C8R%7CJ%7C8S%5D%7C%24F%7C2I%7CC%7CD%7CH%7C8T%7CI%7C8U%7CJ%7C8V%5D%7C%24F%7C2J%7CC%7CD%7CH%7C8W%7CI%7C8X%7CJ%7C8Y%5D%7C%24F%7C2K%7CC%7CD%7CH%7C8Z%7CI%7C90%7CJ%7C91%5D%7C%24F%7C2L%7CC%7CD%7CH%7C92%7CI%7C93%7CJ%7C94%5D%7C%24F%7C2M%7CC%7CD%7CH%7C95%7CI%7C96%7CJ%7C97%5D%7C%24F%7C2N%7CC%7CD%7CH%7C98%7CI%7C99%7CJ%7C9A%5D%7C%24F%7C2O%7CC%7CD%7CH%7C9B%7CI%7C9C%7CJ%7C9D%5D%7C%24F%7C2P%7CC%7CD%7CH%7C9E%7CI%7C9F%7CJ%7C9G%5D%7C%24F%7C2Q%7CC%7CD%7CH%7C9H%7CI%7C9I%7CJ%7C9J%5D%7C%24F%7C2R%7CC%7C2S%7CH%7C9K%7CI%7C9L%7CJ%7C9M%5D%7C%24F%7C2T%7CC%7C2S%7CH%7C9N%7CI%7C9O%7CJ%7C9P%5D%5D%7C2U%7C2V%5D%5D

Suggested Musical Pairing

https://soundcloud.com/four-tet/kh-my-moneys-gone

master !== main, no results saved

In preparation for the upcoming Github feature described in github/roadmap#63 I renamed the base branch of my new repo to main instead of the default master.

Bundlewatch reported the following failure on that repo.

$ bundlewatch

[INFO] Retrieving comparison

[ERROR] Unable to fetch fileDetails for baseBranch=master from https://service.bundlewatch.io/store code=Request failed with status code 404

[INFO] master !== main, no results saved

[INFO] Saving results

The error can also be seen live on CI: https://travis-ci.com/github/nilfalse/ctf/jobs/370145494

Steps to reproduce

  1. Setup Github repo to have main as a default branch instead of master.
  2. Delete master branch.

What is the expected behavior?

Bundlewatch should be able to compare size to any default branch in the Github repo even if it's not called master.

Occasional timeout

Hi - first of thanks for building bundlewatch and maintaining it. It's been super helpful for us to keep bundle size reasonable.

We run bundlewatch in CI and we recently started to see occasional timeout (currently happens about once a day). Is there a way to increase timeout or somehow avoid timeout?

Here is error message we see in CI (we use circleci). I replaced our repository name with "" because the repo is private.

We don't use any custom server. config.js contains files config for our 6 files.

Thanks in advance for help!

> ../node_modules/.bin/bundlewatch --config config/bundlewatch.config.js

Error: connect ETIMEDOUT 140.82.112.5:443
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1056:14) {
  errno: 'ETIMEDOUT',
  code: 'ETIMEDOUT',
  syscall: 'connect',
  address: '140.82.112.5',
  port: 443,
  config: {
    url: '<masked>',
    method: 'post',
    data: '{"state":"pending","description":"Checking bundlewatch...","context":"bundlewatch"}',
    headers: {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json;charset=utf-8',
      Authorization: 'token ****************************************',
      'User-Agent': 'axios/0.19.2',
      'Content-Length': 83
    },
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 5000,
    adapter: [Function: httpAdapter],
    responseType: 'json',
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    validateStatus: [Function: validateStatus]
  },
  request: Writable {
    _writableState: WritableState {
      objectMode: false,
      highWaterMark: 16384,
      finalCalled: false,
      needDrain: false,
      ending: false,
      ended: false,
      finished: false,
      destroyed: false,
      decodeStrings: true,
      defaultEncoding: 'utf8',
      length: 0,
      writing: false,
      corked: 0,
      sync: true,
      bufferProcessing: false,
      onwrite: [Function: bound onwrite],
      writecb: null,
      writelen: 0,
      bufferedRequest: null,
      lastBufferedRequest: null,
      pendingcb: 0,
      prefinished: false,
      errorEmitted: false,
      emitClose: true,
      autoDestroy: false,
      bufferedRequestCount: 0,
      corkedRequestsFree: [Object]
    },
    writable: true,
    _events: [Object: null prototype] {
      response: [Function: handleResponse],
      error: [Function: handleRequestError]
    },
    _eventsCount: 2,
    _maxListeners: undefined,
    _options: {
      protocol: 'https:',
      maxRedirects: 21,
      maxBodyLength: 10485760,
      path: '<masked>',
      method: 'POST',
      headers: [Object],
      agent: undefined,
      agents: [Object],
      auth: undefined,
      hostname: 'api.github.com',
      port: null,
      nativeProtocols: [Object],
      pathname: '<masked>'
    },
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 83,
    _requestBodyBuffers: [ [Object] ],
    _onNativeResponse: [Function],
    _currentRequest: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 6,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      _last: true,
      chunkedEncoding: false,
      shouldKeepAlive: false,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      _contentLength: null,
      _hasBody: true,
      _trailer: '',
      finished: false,
      _headerSent: true,
      socket: [TLSSocket],
      connection: [TLSSocket],
      _header: 'POST <masked> HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json;charset=utf-8\r\n' +
        'Authorization: token ****************************************\r\n' +
        'User-Agent: axios/0.19.2\r\n' +
        'Content-Length: 83\r\n' +
        'Host: api.github.com\r\n' +
        'Connection: close\r\n' +
        '\r\n',
      _onPendingData: [Function: noopPendingOutput],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      path: '<masked>',
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: [Function: emitRequestTimeout],
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      _redirectable: [Circular],
      [Symbol(kNeedDrain)]: false,
      [Symbol(isCorked)]: false,
      [Symbol(kOutHeaders)]: [Object: null prototype]
    },
    _currentUrl: '<masked>'
  },
  response: undefined,
  isAxiosError: true,
  toJSON: [Function]
}
[FATAL] Uncaught exception
npm ERR! code ELIFECYCLE
npm ERR! errno 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.