Skip to content

[RFC] Support only last n browser versions #15496

@eps1lon

Description

@eps1lon

Current state

We transpile for the following targets:

ie 11
edge >= 14
firefox >= 52
chrome >= 49 // this should be 41 which is used by the google crawler
safari >= 10
node 8.0

Proposal

We use every major release to update the list to include only the last 31 versions and use this snapshot throughout the lifetime of the release. For v4 this would mean

ie 11
edge >= 16
firefox >= 65
chrome >= 71
safari >= 11
node 10.0

1 Somewhat arbitrary. Used the default "last 2 versions" from browserslist and relaxed it by 1.

Rationale

  1. This is transpilation only. We can still support layout quirks in older browsers. If it is really important for app authors to support older versions they can always transpile node_modules. We can include a guide in our docs.
  2. Firefox, edge and safari (and chrome) are evergreen browsers meaning users automatically get updates. Usage numbers for outdated versions of these evergreen browsers is very low.
  3. Transpilation adds a considerable amount of bundle bloat. E.g. transform-destructuring accounts for around 2-3% of our bundle.
  4. Once google updates their crawler to use a newer chrome version we can think about publishing a separate IE11 bundle. Edit: crawler runs on chrome 74 which means it already matches last 3 versions.

/cc @mui-org/community-partners @mui-org/core-contributors

Metadata

Metadata

Assignees

No one assigned

    Labels

    breaking changeIntroduces changes that are not backward compatible.discussion

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions