-
Notifications
You must be signed in to change notification settings - Fork 5.2k
feat: Add --features
option to legacy build system CLI
#33485
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
base: main
Are you sure you want to change the base?
Conversation
Builds ready [25539ed]
UI Startup Metrics (1232 ± 62 ms)
Benchmark value 24 exceeds gate value 18 for chrome browserify home p95 backgroundConnect Benchmark value 2556 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 1647 exceeds gate value 1615 for firefox webpack home mean uiStartup Benchmark value 1428 exceeds gate value 1380 for firefox webpack home mean load Benchmark value 1428 exceeds gate value 1380 for firefox webpack home mean domContentLoaded Benchmark value 44 exceeds gate value 38 for firefox webpack home mean firstReactRender Benchmark value 1407 exceeds gate value 1360 for firefox webpack home mean loadScripts Benchmark value 2031 exceeds gate value 1935 for firefox webpack home p95 uiStartup Benchmark value 1829 exceeds gate value 1660 for firefox webpack home p95 load Benchmark value 1828 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded Benchmark value 1805 exceeds gate value 1630 for firefox webpack home p95 loadScripts Sum of mean exceeds: 183ms | Sum of p95 exceeds: 716ms Sum of all benchmark exceeds: 899ms Bundle size diffs
|
Builds ready [fc59f41]
UI Startup Metrics (1206 ± 62 ms)
Benchmark value 2541 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 264 exceeds gate value 65 for chrome webpack home p95 setupStore Benchmark value 42 exceeds gate value 38 for firefox webpack home mean firstReactRender Benchmark value 1970 exceeds gate value 1935 for firefox webpack home p95 uiStartup Benchmark value 1727 exceeds gate value 1660 for firefox webpack home p95 load Benchmark value 1727 exceeds gate value 1660 for firefox webpack home p95 domContentLoaded Benchmark value 1706 exceeds gate value 1630 for firefox webpack home p95 loadScripts Sum of mean exceeds: 4ms | Sum of p95 exceeds: 539ms Sum of all benchmark exceeds: 543ms Bundle size diffs
|
fc59f41
to
2cd977d
Compare
Builds ready [2cd977d]
UI Startup Metrics (1206 ± 57 ms)
Benchmark value 53 exceeds gate value 32 for chrome webpack home mean setupStore Benchmark value 2477 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 309 exceeds gate value 65 for chrome webpack home p95 setupStore Benchmark value 12 exceeds gate value 9 for firefox browserify home mean setupStore Benchmark value 36 exceeds gate value 24 for firefox browserify home p95 getState Benchmark value 28 exceeds gate value 27 for firefox browserify home p95 setupStore Benchmark value 41 exceeds gate value 38 for firefox webpack home mean firstReactRender Sum of mean exceeds: 27ms | Sum of p95 exceeds: 289ms Sum of all benchmark exceeds: 316ms Bundle size diffs
|
Can we do this through the My goal is to reduce and simplify the number of independent configuration systems we have. |
@HowardBraham no, that's not possible. This PR concerns the build-time feature flags of |
(Yes, I fat-fingered "Close pull request".) |
Builds ready [2cd977d]
UI Startup Metrics (1233 ± 75 ms)
Benchmark value 22 exceeds gate value 18 for chrome browserify home p95 backgroundConnect Benchmark value 43 exceeds gate value 32 for chrome webpack home mean setupStore Benchmark value 2484 exceeds gate value 2454 for chrome webpack home p95 uiStartup Benchmark value 311 exceeds gate value 65 for chrome webpack home p95 setupStore Benchmark value 12 exceeds gate value 11 for firefox browserify home mean getState Benchmark value 41 exceeds gate value 38 for firefox webpack home mean firstReactRender Sum of mean exceeds: 15ms | Sum of p95 exceeds: 287ms Sum of all benchmark exceeds: 302ms Bundle size diffs [🚨 Warning! Bundle size has increased!]
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ah got it, approved then!
Description
Teams have been testing features in different build types by modifying
builds.yml
without committing the changes. To improve upon this situation, this PR adds a--features
option to the legacy build system CLI. You can specify any feature defined under the top-levelfeatures
property ofbuilds.yml
. Redundantly specified features are permitted.The "active features" are implemented as a frozen array private to
development/build/config.js
. This array is set once, bysetActiveFeatures()
duringparseArgv()
indevelopment/build/index.js
. Attempting to set the array multiple times will throw. Rather than threading the active features through the various build system functions, we always retrieve mutable copies of the computed active features viagetActiveFeatures()
.Manual testing steps
Additional features
Any feature not in the active build type will do, but for example:
yarn start --features bitcoin
Redundant features
yarn start --features build-main
yarn start
Non-existent features
yarn start --features foo
Pre-merge author checklist
Pre-merge reviewer checklist