Skip to content

Conversation

@Hotell
Copy link
Contributor

@Hotell Hotell commented Feb 16, 2023

Previous Behavior

task graph:

flowchart LR
    classDef someclass fill:#f96

    S((start))
    E((X))
    L[lint]
    TC[type-check]
    B[^build]
    BU[bundle]
    BS[bundle-size]
    T[test]
   E2E(e2e test)

    S --> B
    S --> E2E --> E
    B --> BU --> E
    B --> BS --> E
    B --> T --> E
    B --> TC --> E
    B:::someclass --> L:::someclass --> E
Loading

details:

To be able to run lint task all dependencies needs to build. This slows down/mitigates task parallelization on CI and slows it down.

This "approach" is used for 2 reasons:

  • lint-imports script that is ran as part of lint task needs to have physically present js build assets, although necessary for small scope of the repo which is v8 docsite and examples
  • public-docsite contains custom just configuration that imports from another monorepo package. Although that is not part of lint it is required during just-scripts call.

New Behavior

task graph:

flowchart LR

    classDef someclass fill:#f96

    S((start))
    E((X))
    L[lint]
    TC[type-check]
    B[^build]
    BU[bundle]
    BS[bundle-size]
    T[test]
   E2E(e2e test)

    S --> B
    S --> E2E --> E
    S --> L:::someclass --> E
    B --> BU --> E
    B --> BS --> E
    B --> T --> E
    B --> TC --> E
Loading

details:

  • lint task runs without any pre-requirement tasks, which enables better parallelization and pipeline speeds
  • lint-imports has been refactored to execute as part of build task with proper project scope:
    • for v8 packages, lint-imports will be invoked as previously
    • for v9 packages lint-imports wont be executed
    • for v9 packages that need to ship AMD (because they are dependencies of v8 package ) lint-imports will be executed only to check AMD violations
    • for v9 packages that have v8 as dependency lint-imports will be executed only to check AMD violations

Related Issue(s)

  • Fixes #

@size-auditor
Copy link

size-auditor bot commented Feb 16, 2023

Asset size changes

Size Auditor did not detect a change in bundle size for any component!

Baseline commit: d858041352851ffdeb5ac8d51e18cd44b46414ab (build)

@fabricteam
Copy link
Collaborator

fabricteam commented Feb 16, 2023

Perf Analysis (@fluentui/react-components)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
Avatar mount 1641 1633 5000
Button mount 1124 1120 5000
Field mount 2519 2592 5000
FluentProvider mount 1998 2015 5000
FluentProviderWithTheme mount 685 714 10
FluentProviderWithTheme virtual-rerender 659 667 10
FluentProviderWithTheme virtual-rerender-with-unmount 723 712 10
InfoButton mount 631 644 5000
MakeStyles mount 2260 2290 50000
Persona mount 3855 3823 5000
SpinButton mount 3124 3013 5000

@codesandbox-ci
Copy link

codesandbox-ci bot commented Feb 16, 2023

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 177dcdd:

Sandbox Source
@fluentui/react 8 starter Configuration
@fluentui/react-components 9 starter Configuration

@fabricteam
Copy link
Collaborator

fabricteam commented Feb 16, 2023

📊 Bundle size report

Unchanged fixtures
Package & Exports Size (minified/GZIP)
global-context
createContext
533 B
341 B
global-context
createContextSelector
554 B
348 B
priority-overflow
createOverflowManager
3.194 kB
1.314 kB
react-accordion
Accordion (including children components)
85.876 kB
26.019 kB
react-alert
Alert
87.465 kB
21.569 kB
react-avatar
Avatar
51.192 kB
14.043 kB
react-avatar
AvatarGroup
15.42 kB
6.167 kB
react-avatar
AvatarGroupItem
67.414 kB
18.551 kB
react-badge
Badge
23.113 kB
7.069 kB
react-badge
CounterBadge
24.002 kB
7.374 kB
react-badge
PresenceBadge
25.438 kB
7.254 kB
react-button
Button
36.888 kB
9.412 kB
react-button
CompoundButton
44.063 kB
10.885 kB
react-button
MenuButton
41.568 kB
10.742 kB
react-button
SplitButton
49.997 kB
12.321 kB
react-button
ToggleButton
55.252 kB
11.331 kB
react-card
Card - All
83.548 kB
23.894 kB
react-card
Card
78.317 kB
22.433 kB
react-card
CardFooter
9.045 kB
3.806 kB
react-card
CardHeader
10.984 kB
4.509 kB
react-card
CardPreview
9.852 kB
4.159 kB
react-checkbox
Checkbox
33.091 kB
10.319 kB
react-checkbox
CheckboxField
39.996 kB
12.206 kB
react-combobox
Combobox (including child components)
85.289 kB
27.363 kB
react-combobox
ComboboxField
81.706 kB
27.152 kB
react-combobox
Dropdown (including child components)
83.976 kB
27.116 kB
react-components
react-components: Button, FluentProvider & webLightTheme
64.09 kB
17.544 kB
react-components
react-components: Accordion, Button, FluentProvider, Image, Menu, Popover
201.998 kB
56.27 kB
react-components
react-components: FluentProvider & webLightTheme
35.049 kB
11.533 kB
react-dialog
Dialog (including children components)
89.719 kB
26.685 kB
react-divider
Divider
17.11 kB
6.18 kB
react-field
Field
17.673 kB
6.543 kB
react-image
Image
11.259 kB
4.473 kB
react-infobutton
InfoButton
127.204 kB
38.739 kB
react-input
Input
22.94 kB
7.214 kB
react-input
InputField
32.819 kB
10.111 kB
react-label
Label
9.822 kB
4.066 kB
react-link
Link
12.306 kB
5.073 kB
react-menu
Menu (including children components)
126.535 kB
38.735 kB
react-menu
Menu (including selectable components)
129.604 kB
39.248 kB
react-overflow
hooks only
11.214 kB
4.271 kB
react-persona
Persona
58.207 kB
15.986 kB
react-popover
Popover
114.277 kB
35.179 kB
react-portal
Portal
11.377 kB
4.179 kB
react-portal-compat
PortalCompatProvider
6.324 kB
2.129 kB
react-positioning
usePositioning
22.985 kB
8.528 kB
react-progress
ProgressBar
13.59 kB
5.24 kB
react-progress
ProgressField
23.885 kB
8.385 kB
react-provider
FluentProvider
17.116 kB
6.332 kB
react-radio
Radio
32.676 kB
10.616 kB
react-radio
RadioGroup
14.885 kB
5.933 kB
react-radio
RadioGroupField
24.963 kB
9.07 kB
react-select
Select
24.145 kB
8.271 kB
react-select
SelectField
33.384 kB
10.779 kB
react-slider
Slider
33.091 kB
10.555 kB
react-slider
SliderField
42.922 kB
13.465 kB
react-spinbutton
SpinButton
32.83 kB
9.864 kB
react-spinbutton
SpinButtonField
41.766 kB
12.254 kB
react-spinner
Spinner
20.62 kB
6.682 kB
react-switch
Switch
28.225 kB
8.755 kB
react-switch
SwitchField
35.01 kB
10.655 kB
react-table
DataGrid
143.646 kB
39.157 kB
react-table
Table (Primitives only)
43.776 kB
12.063 kB
react-table
Table as DataGrid
134.4 kB
34.514 kB
react-table
Table (Selection only)
82.316 kB
20.576 kB
react-table
Table (Sort only)
81.637 kB
20.386 kB
react-text
Text - Default
12.261 kB
4.819 kB
react-text
Text - Wrappers
15.571 kB
5.23 kB
react-textarea
Textarea
26.336 kB
8.585 kB
react-textarea
TextareaField
36.537 kB
11.504 kB
react-theme
Single theme token import
69 B
89 B
react-theme
Teams: all themes
30.908 kB
6.714 kB
react-theme
Teams: Light theme
17.776 kB
5.141 kB
react-tooltip
Tooltip
46.095 kB
16.14 kB
react-utilities
SSRProvider
180 B
159 B
🤖 This report was generated against d858041352851ffdeb5ac8d51e18cd44b46414ab

@fabricteam
Copy link
Collaborator

Perf Analysis (@fluentui/react-northstar)

⚠️ No perf measurements available

@fabricteam
Copy link
Collaborator

fabricteam commented Feb 16, 2023

🕵 fluentuiv9 No visual regressions between this PR and main

@fabricteam
Copy link
Collaborator

fabricteam commented Feb 16, 2023

Perf Analysis (@fluentui/react)

No significant results to display.

All results

Scenario Render type Master Ticks PR Ticks Iterations Status
BaseButton mount 1067 1139 5000
Breadcrumb mount 2697 2926 1000
Checkbox mount 2553 2471 5000
CheckboxBase mount 2362 2236 5000
ChoiceGroup mount 4196 4316 5000
ComboBox mount 1245 1260 1000
CommandBar mount 9012 9023 1000
ContextualMenu mount 13055 13786 1000
DefaultButton mount 1305 1364 5000
DetailsRow mount 3362 3125 5000
DetailsRowFast mount 3516 3210 5000
DetailsRowNoStyles mount 3000 3327 5000
Dialog mount 3034 3050 1000
DocumentCardTitle mount 585 564 1000
Dropdown mount 3120 3213 5000
FocusTrapZone mount 1995 1979 5000
FocusZone mount 1883 1854 5000
GroupedList mount 50872 55861 2
GroupedList virtual-rerender 23690 24125 2
GroupedList virtual-rerender-with-unmount 89036 89793 2
GroupedListV2 mount 541 544 2
GroupedListV2 virtual-rerender 490 512 2
GroupedListV2 virtual-rerender-with-unmount 574 564 2
IconButton mount 1827 1803 5000
Label mount 736 691 5000
Layer mount 4155 4177 5000
Link mount 842 756 5000
MenuButton mount 1634 1663 5000
MessageBar mount 2317 2296 5000
Nav mount 3264 3136 1000
OverflowSet mount 1359 1290 5000
Panel mount 2492 2455 1000
Persona mount 1306 1253 1000
Pivot mount 1649 1707 1000
PrimaryButton mount 1492 1519 5000
Rating mount 6874 6576 5000
SearchBox mount 1513 1532 5000
Shimmer mount 2820 2859 5000
Slider mount 2105 2166 5000
SpinButton mount 4461 4452 5000
Spinner mount 800 818 5000
SplitButton mount 2909 3006 5000
Stack mount 829 802 5000
StackWithIntrinsicChildren mount 2291 2094 5000
StackWithTextChildren mount 4759 4677 5000
SwatchColorPicker mount 10222 10187 5000
TagPicker mount 2551 2476 5000
TeachingBubble mount 81279 80823 5000
Text mount 744 777 5000
TextField mount 1579 1663 5000
ThemeProvider mount 1451 1448 5000
ThemeProvider virtual-rerender 1048 1105 5000
ThemeProvider virtual-rerender-with-unmount 2108 2108 5000
Toggle mount 1046 1103 5000
buttonNative mount 508 552 5000

@Hotell Hotell force-pushed the hotell/build/task-orchestration/lint-separation branch 5 times, most recently from 3526007 to d4036cf Compare February 17, 2023 11:54
@Hotell Hotell force-pushed the hotell/build/task-orchestration/lint-separation branch from 3934146 to 7d2c26a Compare February 17, 2023 15:52
@fabricteam
Copy link
Collaborator

fabricteam commented Feb 17, 2023

🕵 FluentUI-v0 No visual regressions between this PR and main

@Hotell Hotell marked this pull request as ready for review February 17, 2023 16:50
@Hotell Hotell requested review from a team as code owners February 17, 2023 16:50
@Hotell Hotell requested a review from a team as a code owner February 17, 2023 16:50
@Hotell Hotell force-pushed the hotell/build/task-orchestration/lint-separation branch from e0ec596 to 177dcdd Compare February 24, 2023 10:39
@Hotell Hotell enabled auto-merge (squash) February 24, 2023 10:41
@Hotell Hotell changed the title chore: make lint task run without need of build ci: make lint task run without need of build Feb 24, 2023
@Hotell Hotell merged commit db203b7 into microsoft:master Feb 24, 2023
marcosmoura added a commit to marcosmoura/fluentui that referenced this pull request Feb 24, 2023
* master: (93 commits)
  chore: migrate to jest 27 (microsoft#26835)
  chore: make lint task run without need of build (microsoft#26872)
  chore(react-table): exports UseTableSelectionOptions (microsoft#26892)
  applying package updates
  fix(react-card): allow elements to grow to fill the available space (microsoft#26616)
  fix: Popover without focus trap should not be aria-hidden (microsoft#26932)
  applying package updates
  applying package updates
  fix(react-combobox): Remove _getAriaActiveDescendantValue, compute aria-activedescendantvalue in state, and update currentPendingValue when the options change (microsoft#26574)
  fix: v8 Combobox role and accname for non-hidden icon button (microsoft#26905)
  fix: Removing possible recursive loop in Coachmark (microsoft#26934)
  Combobox: Fix cursor jumping to the end of input (microsoft#26931)
  Fix missing icons on website (microsoft#26797)
  fix: Fix the width of Input's focus border with appearance=underline (microsoft#26881)
  chore: Clean up Input's interactive styles (microsoft#26865)
  Remove codeowners from change files (microsoft#26935)
  chore: add splitbutton error warning to docs, remove button ariaDescription example (microsoft#26904)
  docs: Remove testing code from MenuList example (microsoft#26929)
  chore: refactor SpinButton to use makeResetStyles (microsoft#26867)
  feat: Set overflow on positioned element when `autosize` is applied (microsoft#26868)
  ...
marcosmoura added a commit to marcosmoura/fluentui that referenced this pull request Mar 15, 2023
…r-component

* feat/drawer-base-component: (141 commits)
  remove DrawerContainer
  feat: WIP add initial draft for Drawer and DrawerContainer
  chore: migrate to jest 27 (microsoft#26835)
  chore: make lint task run without need of build (microsoft#26872)
  chore(react-table): exports UseTableSelectionOptions (microsoft#26892)
  applying package updates
  fix(react-card): allow elements to grow to fill the available space (microsoft#26616)
  fix: Popover without focus trap should not be aria-hidden (microsoft#26932)
  applying package updates
  applying package updates
  fix(react-combobox): Remove _getAriaActiveDescendantValue, compute aria-activedescendantvalue in state, and update currentPendingValue when the options change (microsoft#26574)
  fix: v8 Combobox role and accname for non-hidden icon button (microsoft#26905)
  fix: Removing possible recursive loop in Coachmark (microsoft#26934)
  Combobox: Fix cursor jumping to the end of input (microsoft#26931)
  Fix missing icons on website (microsoft#26797)
  fix: Fix the width of Input's focus border with appearance=underline (microsoft#26881)
  chore: Clean up Input's interactive styles (microsoft#26865)
  Remove codeowners from change files (microsoft#26935)
  chore: add splitbutton error warning to docs, remove button ariaDescription example (microsoft#26904)
  docs: Remove testing code from MenuList example (microsoft#26929)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants