Skip to content
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

Upgrade EUI to v87.1.0 #163961

Merged
merged 26 commits into from
Aug 21, 2023
Merged

Upgrade EUI to v87.1.0 #163961

merged 26 commits into from
Aug 21, 2023

Conversation

cee-chen
Copy link
Contributor

@cee-chen cee-chen commented Aug 15, 2023

v86.0.0v87.1.0

⚠️ The biggest set of type changes in this PR come from the breaking change that makes pageSize and pageSizeOptions now optional props for EuiBasicTable.pagination, EuiInMemoryTable.pagination and EuiDataGrid.pagination.

This caused several other components that were cloning EUI's pagination type to start throwing type warnings about pageSize being optional. Where I came across these errors, I modified the extended types to require pageSize. These types and their usages may end up changing again in any case once the Shared UX team looks into #56406.


87.1.0

  • Updated the underlying library powering EuiAutoSizer. This primarily affects typing around the disableHeight and disableWidth props (#6798)
  • Added new EuiAutoSize, EuiAutoSizeHorizontal, and EuiAutoSizeVertical types to support EuiAutoSizer's now-stricter typing (#6798)
  • Updated EuiDatePickerRange to support compressed display (#7058)
  • Updated EuiFlyoutBody with a new scrollableTabIndex prop (#7061)
  • Added a new panelMinWidth prop to EuiInputPopover (#7071)
  • Added a new inputPopoverProps prop for EuiRanges and EuiDualRanges with showInput="inputWithPopover" set (#7082)

Bug fixes

  • Fixed EuiToolTip overriding instead of merging its aria-describedby tooltip ID with any existing aria-describedbys (#7055)
  • Fixed EuiSuperDatePicker's compressed display (#7058)
  • Fixed EuiAccordion to remove tabbable children from sequential keyboard navigation when the accordion is closed (#7064)
  • Fixed EuiFlyouts to accept custom aria-describedby IDs (#7065)

Accessibility

  • Removed the default dialog role and tabIndex from push EuiFlyouts. Push flyouts, compared to overlay flyouts, require manual accessibility management. (#7065)

87.0.0

  • Added beta componentDefaults prop to EuiProvider, which will allow configuring certain default props globally. This list of components and defaults is still under consideration. (#6923)
  • EuiPortal's insert prop can now be configured globally via EuiProvider.componentDefaults (#6941)
  • EuiFocusTrap's crossFrame and gapMode props can now be configured globally via EuiProvider.componentDefaults (#6942)
  • EuiTablePagination's itemsPerPage, itemsPerPageOptions, and showPerPageOptions props can now be configured globally via EuiProvider.componentDefaults (#6951)
  • EuiBasicTable, EuiInMemoryTable, and EuiDataGrid now allow pagination.pageSize to be undefined. If undefined, pageSize defaults to EuiTablePagination's itemsPerPage component default. (#6993)
  • EuiBasicTable, EuiInMemoryTable, and EuiDataGrid's pagination.pageSizeOptions will now fall back to EuiTablePagination's itemsPerPageOptions component default. (#6993)
  • Updated EuiHeaderLinks's gutterSize spacings (#7005)
  • Updated EuiHeaderAlert's stacking styles (#7005)
  • Added toolTipProps to EuiListGroupItem that allows customizing item tooltips. (#7018)
  • Updated EuiBreadcrumbs to support breadcrumbs that toggle popovers via popoverContent and popoverProps (#7031)
  • Improved the contrast ratio of disabled titles within EuiSteps and EuiStepsHorizontal to meet WCAG AA guidelines. (#7032)
  • Updated EuiSteps and EuiStepsHorizontal to highlight and provide a more clear visual indication of the current step (#7048)

Bug fixes

  • Single uses of <EuiHeaderSectionItem side="right" /> now align right as expected without needing a previous side="left" sibling. (#7005)
  • EuiPageTemplate now correctly displays panelled={true} (#7044)

Breaking changes

  • EuiTablePagination's default itemsPerPage is now 10 (was previously 50). This can be configured through EuiProvider.componentDefaults. (#6993)
  • EuiTablePagination's default itemsPerPageOptions is now [10, 25, 50] (was previously [10, 20, 50, 100]). This can be configured through EuiProvider.componentDefaults. (#6993)
  • Removed border prop from EuiHeaderSectionItem (unused since Amsterdam theme) (#7005)
  • Removed borders object configuration from EuiHeader.sections (#7005)

CSS-in-JS conversions

  • Converted EuiHeaderAlert to Emotion; Removed unused .euiHeaderAlert__dismiss CSS (#7005)
  • Converted EuiHeaderSection, EuiHeaderSectionItem, and EuiHeaderSectionItemButton to Emotion (#7005)
  • Converted EuiHeaderLinks and EuiHeaderLink to Emotion; Removed $euiHeaderLinksGutterSizes Sass variables (#7005)
  • Removed $euiHeaderBackgroundColor Sass variable; use $euiColorEmptyShade instead (#7005)
  • Removed $euiHeaderChildSize Sass variable; use $euiSizeXXL instead (#7005)

@cee-chen cee-chen added EUI v8.11.0 release_note:skip Skip the PR/issue when compiling release notes labels Aug 15, 2023
@cee-chen cee-chen force-pushed the eui-v87.1.x branch 2 times, most recently from 860bea3 to 73b2b0a Compare August 15, 2023 21:29
- note: to take advantage of the new table pagination defaults, consider removing the initially set `pageSize` state
@cee-chen
Copy link
Contributor Author

@elasticmachine merge upstream

@cee-chen
Copy link
Contributor Author

@elasticmachine merge upstream

@cee-chen
Copy link
Contributor Author

@elasticmachine merge upstream

Copy link
Contributor

@maxcold maxcold left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cloud_security_posture changes looks good

"#a6afbf",
"#8c95a5",
"#757c8b",
"#c3c9d4",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could not find any changes in the logs that resulting in color picker snapshot changes. Can you explain why these hex codes changed? The are generated with euiPaletteGray.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey Nathan! I was a little confused about this snapshot change too, but it looks like the change likely occurred due to our underlying chroma.js dependency upgrade: elastic/eui#7039

@tkajtoch, do you mind jumping in here if you would consider these changes expected? FWIW, I'm looking at our docs' palettes before and after and I can barely detect a difference to the human eye, so it's likely not a major impact.

Copy link
Contributor Author

@cee-chen cee-chen Aug 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, just wanted to mention our general changelog philosophy - we've historically skipped logging tech debt items / only log items that would directly impact consumer usage. We didn't expect this one to impact consumers or end-users, but the JS dependency ecosystem being what it is, an unexpected side effect emerged 😬 (although it's fortunately fairly benign in this case).

From a general developer experience perspective, I'd be curious to hear if you think it's worth logging all changes, including dependency upgrades, and whether the extra noise would be worth the extra traceability!

Copy link
Member

@tkajtoch tkajtoch Aug 17, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I looked into the changes and compared updated colors. Usually, tools like chroma.js convert input colors to a broader color space before calculating color variations, specifically to have a long enough bit depth for the colors to look correct after processing. 64-bit float values in HSL color space are way more precise than 8-bit RGB. I'm 99% sure it's caused by switching to using a binomial of degree n in this commit. We see the changes in chroma.scale because it's used here and probably in other places as well that eventually affect chroma.scale results.

The color difference can't realistically be noticed to the naked eye and even though hue and saturation are updated for each color it just looks like some kind of gamma correction while keeping luminance the same.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the explanation.

From a general developer experience perspective, I'd be curious to hear if you think it's worth logging all changes, including dependency upgrades, and whether the extra noise would be worth the extra traceability!

I think its worth putting all changes in the change log. So there is a single comprehensive list of differences to consult.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks Nathan! I'll take that feedback back to the team and discuss. No promises on timelines, but agreed that it's bitten us in the past before and will potentially make a difference in the future for debugging.

Copy link
Contributor

@nreese nreese left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kibana-gis changes LGTM
code review only

Copy link
Contributor

@yctercero yctercero left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM - security-detection-engine changes. Pulled down and tested rule creation, exceptions.

Copy link
Contributor

@logeekal logeekal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@elastic/security-threat-hunting-investigations changes look good. 👍

@darnautov
Copy link
Contributor

@cee-chen perhaps because of the EuiPageTemplate changes, the Data Visualizer page has this issue with a box shadow around the panel.

on main:
image

this branch:
image

@cee-chen
Copy link
Contributor Author

@darnautov Thanks a million for catching this! Should be fixed with d3b45ad.

Copy link
Contributor

@darnautov darnautov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ML and Transform changes tested and LGTM

Copy link
Contributor

@andreadelrio andreadelrio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@cee-chen cee-chen enabled auto-merge (squash) August 21, 2023 15:26
@kibana-ci
Copy link
Collaborator

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #57 / aiops change point detection shows multiple results when split field is selected

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
canvas 1020.3KB 1020.3KB +2.0B
charts 9.8KB 9.8KB +2.0B
dataVisualizer 605.0KB 605.0KB -12.0B
enterpriseSearch 2.6MB 2.6MB -22.0B
eventAnnotation 176.7KB 176.7KB +2.0B
expressionPartitionVis 32.1KB 32.1KB +2.0B
graph 407.8KB 407.8KB +2.0B
lens 1.4MB 1.4MB +2.0B
maps 2.8MB 2.8MB +2.0B
mapsEms 105.5KB 105.5KB +2.0B
securitySolution 15.7MB 15.7MB -30.0B
visTypeTimelion 38.8KB 38.8KB +2.0B
total -46.0B

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
core 379.0KB 379.4KB +453.0B
kbnUiSharedDeps-css 293.5KB 291.0KB -2.5KB
kbnUiSharedDeps-npmDll 6.1MB 6.2MB +73.8KB
kbnUiSharedDeps-srcJs 2.2MB 2.2MB +2.0B
total +71.7KB

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

@cee-chen cee-chen merged commit 84ca85d into elastic:main Aug 21, 2023
@cee-chen cee-chen deleted the eui-v87.1.x branch August 21, 2023 22:16
@kibanamachine kibanamachine added the backport:skip This commit does not require backporting label Aug 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:skip This commit does not require backporting EUI release_note:skip Skip the PR/issue when compiling release notes v8.11.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.