-
Notifications
You must be signed in to change notification settings - Fork 2.9k
chore(scripts): create separate configs for beachball releases #22091
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
chore(scripts): create separate configs for beachball releases #22091
Conversation
0bf787a to
7ff26b5
Compare
📊 Bundle size reportUnchanged fixtures
|
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 20a6176:
|
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| Avatar | mount | 898 | 923 | 5000 | |
| Button | mount | 543 | 569 | 5000 | |
| FluentProvider | mount | 1829 | 1856 | 5000 | |
| FluentProviderWithTheme | mount | 298 | 275 | 10 | |
| FluentProviderWithTheme | virtual-rerender | 245 | 244 | 10 | |
| FluentProviderWithTheme | virtual-rerender-with-unmount | 308 | 304 | 10 | |
| MakeStyles | mount | 1477 | 1609 | 50000 |
Asset size changesSize Auditor did not detect a change in bundle size for any component! Baseline commit: c089a26b502e3b2f34855a86e932156c9271e03a (build) |
Perf Analysis (
|
| Scenario | Current PR Ticks | Baseline Ticks | Ratio |
|---|---|---|---|
| TreeWith60ListItems.default | 202 | 173 | 1.17:1 |
| AttachmentMinimalPerf.default | 177 | 164 | 1.08:1 |
| ButtonMinimalPerf.default | 191 | 177 | 1.08:1 |
| ImageMinimalPerf.default | 430 | 400 | 1.08:1 |
| AnimationMinimalPerf.default | 615 | 580 | 1.06:1 |
| DividerMinimalPerf.default | 401 | 377 | 1.06:1 |
| BoxMinimalPerf.default | 381 | 364 | 1.05:1 |
| FlexMinimalPerf.default | 308 | 293 | 1.05:1 |
| ListCommonPerf.default | 721 | 686 | 1.05:1 |
| TableMinimalPerf.default | 449 | 427 | 1.05:1 |
| VideoMinimalPerf.default | 734 | 696 | 1.05:1 |
| ButtonSlotsPerf.default | 607 | 582 | 1.04:1 |
| PortalMinimalPerf.default | 174 | 168 | 1.04:1 |
| CheckboxMinimalPerf.default | 2937 | 2852 | 1.03:1 |
| SegmentMinimalPerf.default | 384 | 374 | 1.03:1 |
| AttachmentSlotsPerf.default | 1184 | 1156 | 1.02:1 |
| ButtonOverridesMissPerf.default | 1659 | 1633 | 1.02:1 |
| ChatMinimalPerf.default | 824 | 806 | 1.02:1 |
| GridMinimalPerf.default | 366 | 360 | 1.02:1 |
| LabelMinimalPerf.default | 435 | 426 | 1.02:1 |
| MenuButtonMinimalPerf.default | 1890 | 1853 | 1.02:1 |
| RosterPerf.default | 1272 | 1246 | 1.02:1 |
| SliderMinimalPerf.default | 1831 | 1795 | 1.02:1 |
| IconMinimalPerf.default | 684 | 670 | 1.02:1 |
| CardMinimalPerf.default | 640 | 636 | 1.01:1 |
| ChatDuplicateMessagesPerf.default | 319 | 316 | 1.01:1 |
| DialogMinimalPerf.default | 836 | 825 | 1.01:1 |
| DropdownMinimalPerf.default | 3199 | 3166 | 1.01:1 |
| FormMinimalPerf.default | 474 | 469 | 1.01:1 |
| HeaderSlotsPerf.default | 840 | 832 | 1.01:1 |
| LoaderMinimalPerf.default | 741 | 731 | 1.01:1 |
| ProviderMergeThemesPerf.default | 1297 | 1281 | 1.01:1 |
| SkeletonMinimalPerf.default | 385 | 383 | 1.01:1 |
| StatusMinimalPerf.default | 757 | 746 | 1.01:1 |
| TextMinimalPerf.default | 379 | 377 | 1.01:1 |
| CustomToolbarPrototype.default | 2877 | 2855 | 1.01:1 |
| CarouselMinimalPerf.default | 520 | 520 | 1:1 |
| DatepickerMinimalPerf.default | 6679 | 6647 | 1:1 |
| DropdownManyItemsPerf.default | 771 | 768 | 1:1 |
| EmbedMinimalPerf.default | 4461 | 4449 | 1:1 |
| InputMinimalPerf.default | 1400 | 1394 | 1:1 |
| MenuMinimalPerf.default | 943 | 939 | 1:1 |
| ReactionMinimalPerf.default | 407 | 408 | 1:1 |
| SplitButtonMinimalPerf.default | 4802 | 4787 | 1:1 |
| ToolbarMinimalPerf.default | 1100 | 1096 | 1:1 |
| HeaderMinimalPerf.default | 393 | 396 | 0.99:1 |
| ItemLayoutMinimalPerf.default | 1304 | 1322 | 0.99:1 |
| ListMinimalPerf.default | 552 | 555 | 0.99:1 |
| ListNestedPerf.default | 630 | 634 | 0.99:1 |
| PopupMinimalPerf.default | 657 | 663 | 0.99:1 |
| TooltipMinimalPerf.default | 1280 | 1289 | 0.99:1 |
| AvatarMinimalPerf.default | 208 | 212 | 0.98:1 |
| ChatWithPopoverPerf.default | 418 | 428 | 0.98:1 |
| LayoutMinimalPerf.default | 387 | 396 | 0.98:1 |
| ListWith60ListItems.default | 678 | 691 | 0.98:1 |
| RefMinimalPerf.default | 239 | 245 | 0.98:1 |
| TableManyItemsPerf.default | 2136 | 2178 | 0.98:1 |
| TreeMinimalPerf.default | 895 | 909 | 0.98:1 |
| AccordionMinimalPerf.default | 156 | 161 | 0.97:1 |
| RadioGroupMinimalPerf.default | 493 | 506 | 0.97:1 |
| TextAreaMinimalPerf.default | 567 | 582 | 0.97:1 |
| AlertMinimalPerf.default | 283 | 295 | 0.96:1 |
| ProviderMinimalPerf.default | 409 | 439 | 0.93:1 |
Perf Analysis (
|
| Scenario | Render type | Master Ticks | PR Ticks | Iterations | Status |
|---|---|---|---|---|---|
| BaseButton | mount | 1073 | 1094 | 5000 | |
| Breadcrumb | mount | 2946 | 3000 | 1000 | |
| Checkbox | mount | 1761 | 1744 | 5000 | |
| CheckboxBase | mount | 1540 | 1491 | 5000 | |
| ChoiceGroup | mount | 5383 | 5480 | 5000 | |
| ComboBox | mount | 1090 | 1167 | 1000 | |
| CommandBar | mount | 11460 | 11254 | 1000 | |
| ContextualMenu | mount | 12247 | 12194 | 1000 | |
| DefaultButton | mount | 1280 | 1321 | 5000 | |
| DetailsRow | mount | 4393 | 4289 | 5000 | |
| DetailsRowFast | mount | 4378 | 4304 | 5000 | |
| DetailsRowNoStyles | mount | 4178 | 4273 | 5000 | |
| Dialog | mount | 2519 | 2452 | 1000 | |
| DocumentCardTitle | mount | 196 | 245 | 1000 | |
| Dropdown | mount | 3707 | 3722 | 5000 | |
| FocusTrapZone | mount | 2142 | 2104 | 5000 | |
| FocusZone | mount | 2122 | 2048 | 5000 | |
| IconButton | mount | 2075 | 2028 | 5000 | |
| Label | mount | 377 | 390 | 5000 | |
| Layer | mount | 3310 | 3291 | 5000 | |
| Link | mount | 547 | 555 | 5000 | |
| MenuButton | mount | 1779 | 1736 | 5000 | |
| MessageBar | mount | 2330 | 2329 | 5000 | |
| Nav | mount | 3737 | 3731 | 1000 | |
| OverflowSet | mount | 1204 | 1200 | 5000 | |
| Panel | mount | 2403 | 2410 | 1000 | |
| Persona | mount | 1157 | 1126 | 1000 | |
| Pivot | mount | 1637 | 1633 | 1000 | |
| PrimaryButton | mount | 1507 | 1480 | 5000 | |
| Rating | mount | 9191 | 9194 | 5000 | |
| SearchBox | mount | 1566 | 1531 | 5000 | |
| Shimmer | mount | 2925 | 2886 | 5000 | |
| Slider | mount | 2172 | 2241 | 5000 | |
| SpinButton | mount | 5559 | 5649 | 5000 | |
| Spinner | mount | 488 | 476 | 5000 | |
| SplitButton | mount | 3637 | 3591 | 5000 | |
| Stack | mount | 599 | 591 | 5000 | |
| StackWithIntrinsicChildren | mount | 2900 | 2861 | 5000 | |
| StackWithTextChildren | mount | 6470 | 6425 | 5000 | |
| SwatchColorPicker | mount | 13078 | 13046 | 5000 | |
| TagPicker | mount | 3132 | 3150 | 5000 | |
| TeachingBubble | mount | 101039 | 102243 | 5000 | |
| Text | mount | 493 | 493 | 5000 | |
| TextField | mount | 1655 | 1583 | 5000 | |
| ThemeProvider | mount | 1301 | 1322 | 5000 | |
| ThemeProvider | virtual-rerender | 713 | 686 | 5000 | |
| ThemeProvider | virtual-rerender-with-unmount | 2176 | 2107 | 5000 | |
| Toggle | mount | 957 | 907 | 5000 | |
| buttonNative | mount | 146 | 142 | 5000 |
7ff26b5 to
62c3a28
Compare
| /** | ||
| * @type {jest.InitialOptions} | ||
| */ | ||
| module.exports = { |
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.
added common setup to enable test search intellisense and typescript support
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.
yeah, we might complain, but it is a good thing to test these scripts
| const vNextPackagePaths = getVNextPackagePaths(allPackageInfo); | ||
|
|
||
| if (process.env.RELEASE_VNEXT) { |
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.
no more env variables hacks
| core.exportVariable('BEACHBALL_VERSION', beachballVersion); | ||
| - run: | | ||
| cp scripts/beachball/.beachballrc.base.json .beachballrc.json |
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.
no more hacks needed
| export function getVNextPackagePaths(allPackageInfo: AllPackageInfo) { | ||
| return Object.values(allPackageInfo) | ||
| .map(packageInfo => { | ||
| if (packageInfo.packageJson.version.startsWith('9.')) { |
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.
unified the logic by leveraging isConverged
varholak-peter
left a comment
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.
Nice work mate! 👏
| import { renderHeader, renderEntry } from './customRenderers'; | ||
|
|
||
| const baseConfig: BeachballConfig = JSON.parse( | ||
| fs.readFileSync(path.resolve(__dirname, 'base.config.json'), { encoding: 'utf8' }), |
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.
What's the benefit of reading the file from FS instead of importing it directly as a JSON? 🤔
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.
good question!
- typescript config tweak which in context of
scriptmay be non trivial at the moment - using
requireto obtain static assets doesn't align with ESM modules
there are probably more reasons I cant think of ATM :D sorry about that
| scope: [...vNextPackagePaths], | ||
| groupConfig: { | ||
| masterPackageName: '@fluentui/react-components', | ||
| changelogPath: 'packages/react-components', | ||
| include: vNextPackagePaths, |
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.
We are spreading vNextPackagePaths in scope but not in include. I don't think spreading the array does much here so we might want to pass it directly.
| if (version === 'v8') { | ||
| const ignoreVNextScope = vNextPackagePaths.map(path => `!${path}`); | ||
|
|
||
| return { scope: [...ignoreVNextScope] }; |
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.
as above
ling1726
left a comment
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.
Left a few suggesions, but I like how much cleaner it is now
|
@Hotell are you still planning to get this in ? |
f03c78c to
2ef5774
Compare
Co-authored-by: ling1726 <[email protected]> Co-authored-by: Niko <[email protected]>
2ef5774 to
2c801bf
Compare
…soft#22091) * chore(scripts): create separate configs for release groups for beachball * test(scripts): add beachball config creation coverage * chore(scripts): remove getSharedPackagePaths as its not needed anymore * Apply suggestions from code review Co-authored-by: ling1726 <[email protected]> Co-authored-by: Niko <[email protected]> * test: update tests after rebase Co-authored-by: ling1726 <[email protected]> Co-authored-by: Niko <[email protected]>
Current Behavior
New Behavior
--configflagRelated Issue(s)
microsoft/beachball#647