Releasing the Debugger to MC is the process of landing a new version of the Debugger in MC. It is basically automating the steps :)
- checkout the latest release branch
- create a new branch off of it and cherry-pick new commits from master
- go to firefox repo and create a new branch off of mozilla/central
- create a new bug in the debugger component for the release
- run
yarn copy --mc <path to firefox>to copy the files and assets to mc - go to firefox and commit the changes with the title
Bug <ID> - Update Debugger Frontend v<relaease #> r=<reviewer> - go back to the debugger and commit the
assets-manifestand push the branchg push --set-upstream origin -f --no-verify release-<Release Number>
The simplest way to see the size of the bundle, and which packages are taking up space is to look at the webpack visualizer.
vis=true node bin/copy-assets.js --mc ../gecko --assetscd ../gecko/devtools/client/debugger/newopen webpack-stats.html
When you see that a package is included that you feel should not be in the bundle, you can open the WebPack Analyzer and look.
- go to analyzer
- select open find the latest stats.json output
<debugger.html>/webpack-stats/stats-<sha>.json
The analyzer is a bit complicated, so here are some things to look for:
- assets/chunks - what chunk number is each asset. The
debuggeris often chunk0 - modules - Which modules appear. Which modules are the largest. Note, you are often looking at just the modules for chunk 0
- module - What are the reasons the module was imported. What are the dependencies of the module. It is often useful to start at a large module, see who imported it, until you find the user code.
Notes:
- When modules like
reactare excluded, they show up asexternal ...with a small byte size user-requestis a good way to see what the first request was. For instanceprop-typesresulted in./node_modules/prop-types/index.js


