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

Revisit our browserslist config #30986

Merged
merged 5 commits into from Dec 2, 2020
Merged

Revisit our browserslist config #30986

merged 5 commits into from Dec 2, 2020

Conversation

XhmikosR
Copy link
Member

@XhmikosR XhmikosR commented Jun 9, 2020

Closes #29314.

I kept the Edge patch separate because ATM the update hasn't shipped on all supported Windows versions: https://support.microsoft.com/en-us/help/4541302/the-new-microsoft-edge-is-available (see also my last point)

master branch:

Browsers:
  Chrome for Android: 81
  Firefox for Android: 68
  And_qq: 10.4
  UC for Android: 12.12
  Android: 81
  Baidu: 7.12
  Chrome: 83, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  Edge: 83, 81, 80, 79, 18, 17
  Firefox: 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  iOS: 13.4, 13.3, 13.2, 13.0-13.1, 12.2-12.4, 12.0-12.1, 11.3-11.4, 11.0-11.2, 10.3, 10.0-10.2
  Kaios: 2.5
  Opera Mini: all
  Opera Mobile: 46
  Opera: 68
  Safari: 13.1, 13, 12.1, 12, 11.1, 11, 10.1, 10
  Samsung: 11.1

These browsers account for 92.74% of all users globally

This branch:

Browsers:
  Chrome for Android: 81
  Firefox for Android: 68
  And_qq: 10.4
  UC for Android: 12.12
  Android: 81
  Baidu: 7.12
  Chrome: 83, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  Edge: 83, 81
  Firefox: 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  iOS: 13.4, 13.3, 13.2, 13.0-13.1, 12.2-12.4, 12.0-12.1, 11.3-11.4, 11.0-11.2, 10.3, 10.0-10.2
  Kaios: 2.5
  Opera Mini: all
  Opera Mobile: 46
  Opera: 68, 67
  Safari: 13.1, 13, 12.1, 12, 11.1, 11, 10.1, 10
  Samsung: 11.1, 10.1

These browsers account for 91.88% of all users globally

This branch without the Edge patch:

C:\Users\xmr\Desktop\bootstrap>npx autoprefixer --info
Browsers:
  Chrome for Android: 81
  Firefox for Android: 68
  And_qq: 10.4
  UC for Android: 12.12
  Android: 81
  Baidu: 7.12
  Chrome: 83, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  Edge: 83, 81, 80, 79, 18, 17
  Firefox: 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  iOS: 13.4, 13.3, 13.2, 13.0-13.1, 12.2-12.4, 12.0-12.1, 11.3-11.4, 11.0-11.2, 10.3, 10.0-10.2
  Kaios: 2.5
  Opera Mini: all
  Opera Mobile: 46
  Opera: 68, 67
  Safari: 13.1, 13, 12.1, 12, 11.1, 11, 10.1, 10
  Samsung: 11.1, 10.1

These browsers account for 93.97% of all users globally

Notes:

  1. Do note that dropping Opera Mini does not gain us anything, i.e. no prefix is removed/added.
  2. We could drop the defaults change, but IMO we should change what we were using because 1 last version isn't proper
  3. I'd also argue about the Edge change, but I don't want to hold us back in v5 either. That being said, it does feel too soon to drop it, but depends to when we will actually ship v5.0.0 stable.

Preview: https://deploy-preview-30986--twbs-bootstrap.netlify.app/

EDIT: actually dropping Opera Mini should allow us to use const/let. I will experiment with that later.

@XhmikosR XhmikosR changed the title Master xmr browserslist Revisit our browserslist config Jun 9, 2020
@XhmikosR XhmikosR added this to Inbox in v5 Jun 9, 2020
@mdo
Copy link
Member

mdo commented Jun 10, 2020

Hmm, makes me think we could drop legacy Edge (17 and 18) given the difference there in those %s.

@ffoodd ffoodd mentioned this pull request Jun 10, 2020
55 tasks
@mdo
Copy link
Member

mdo commented Jun 15, 2020

Is this okay to review and get merged @XhmikosR?

@XhmikosR
Copy link
Member Author

I'm still not sure if it's the right time to drop Legacy Edge. The percentage, which might seem small, does not reflect the real number. I'm just thinking out loud here so that we make the right choice for our users and the project.

Also, I wanted to make another change, I'll do it later.

@ffoodd
Copy link
Member

ffoodd commented Jun 15, 2020

Despite the fact that I'd love to use logical properties for RTL, I'm not sure about dropping Legacy Edge.

The New Edge is only available for every Windows for a few weeks, isn't it?

@XhmikosR
Copy link
Member Author

XhmikosR commented Jun 15, 2020

Yeah, it hasn't shipped to all supported Windows 10 versions yet AFAICT and I don't know where they track this.

Also, there might be more stuff we can remove if we go with the Edge removal and ideally I'd like all the related changes to be in the same PR (not this one).

EDIT: Also, do note that the Legacy Edge removal saves us a significant amount of bytes from the JS dist files. CSS doesn't save a lot.
EDIT2: It's because the arrow functions and other ES6+ features are no longer transpiled because they are supported by the target browserslist config.

So, I'm not sure how to proceed.

@XhmikosR XhmikosR force-pushed the master-xmr-browserslist branch 3 times, most recently from 6e23ef7 to a12ee41 Compare June 15, 2020 13:48
@mdo mdo added this to Inbox in v5.0.0-alpha2 via automation Jun 15, 2020
@mdo mdo removed this from Inbox in v5 Jun 15, 2020
@mdo
Copy link
Member

mdo commented Jun 15, 2020

Chatted with @XhmikosR about this in Slack and wanted to reiterate here. I'm in favor of dropping this knowing that it'll be a couple months to stable v5 and we're going to be working on this for at least a year, hopefully a little more. Having some foresight into what things will look like at that point is what I'm hoping to rally around. if that makes sense.

@mdo
Copy link
Member

mdo commented Jun 15, 2020

Also slating this for alpha 2 now to make sure we're all aligned on it :).

@mdo mdo changed the base branch from master to main June 16, 2020 19:32
@XhmikosR XhmikosR force-pushed the master-xmr-browserslist branch 4 times, most recently from 57ee6c1 to 66cee3b Compare June 19, 2020 14:32
@XhmikosR XhmikosR force-pushed the master-xmr-browserslist branch 2 times, most recently from 1d5f4e3 to 736d1ce Compare September 14, 2020 08:06
@XhmikosR
Copy link
Member Author

So, here's the current situation:

  • use browserslist defaults which is > 0.2%, last 2 versions, Firefox ESR, not dead
  • remove Android since Android WebView is Chromium based
  • drop Legacy Edge support; Microsoft will ship the new version to Windows >= 1803
C:\Users\xmr\Desktop\bootstrap>npx autoprefixer --info
Browsers:
  Chrome for Android: 84
  Firefox for Android: 79
  And_qq: 10.4
  UC for Android: 12.12
  Android: 81
  Baidu: 7.12
  Chrome: 85, 84, 83, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 49
  Edge: 84, 83
  Firefox: 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  iOS: 13.4-13.5, 13.3, 13.2, 13.0-13.1, 12.2-12.4, 12.0-12.1, 11.3-11.4, 11.0-11.2, 10.3, 10.0-10.2, 9.3
  Kaios: 2.5
  Opera Mini: all
  Opera Mobile: 46
  Opera: 70, 69
  Safari: 13.1, 13, 12.1, 12, 11.1, 11, 10.1, 10
  Samsung: 12.0, 11.1-11.2

These browsers account for 93.64% of all users globally

The only "issue" I see is iOS 9.3 being included, and some other browsers we might not care about.

I think if we switch to >= 0.25% and last 3 major versions it might be better?

Browsers:
  Chrome for Android: 84
  Firefox for Android: 79
  And_qq: 10.4
  UC for Android: 12.12
  Android: 81
  Baidu: 7.12
  Chrome: 85, 84, 83, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60, 49
  Edge: 84, 83, 81
  Firefox: 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  iOS: 13.4-13.5, 13.3, 13.2, 13.0-13.1, 12.2-12.4, 12.0-12.1, 11.3-11.4, 11.0-11.2, 10.3, 10.0-10.2
  Kaios: 2.5
  Opera Mini: all
  Opera Mobile: 46
  Opera: 70, 69, 68
  Safari: 13.1, 13, 12.1, 12, 11.1, 11, 10.1, 10
  Samsung: 12.0, 11.1-11.2, 10.1

These browsers account for 93.72% of all users globally

/CC @twbs/team

@XhmikosR
Copy link
Member Author

XhmikosR commented Sep 14, 2020

Also, do note that with this patch as is the generated JS files use const/let and ES6+. Not sure if that's OK for the consumers of the dist files.

EDIT: scratch that, it was due to another local change I had (>= 0.25% and last 3 major versions)

@mdo
Copy link
Member

mdo commented Sep 14, 2020

Let's roll with the second option I think @XhmikosR. We can drop iOS 9.3 IMO.

@XhmikosR
Copy link
Member Author

I need to revisit this thoroughly because 1) iOS 10 tests fail and 2) I see const/let and more ES6 features in our dist files.

Copy link
Member

@mdo mdo left a comment

Choose a reason for hiding this comment

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

Pre-approving for when this comes up for review.

v5.0.0-alpha3 automation moved this from Inbox to Approved Oct 28, 2020
@XhmikosR XhmikosR removed this from Approved in v5.0.0-alpha3 Nov 3, 2020
@XhmikosR XhmikosR added this to Inbox in v5.0.0-beta1 via automation Nov 3, 2020
@XhmikosR XhmikosR force-pushed the master-xmr-browserslist branch 2 times, most recently from 423783c to 42a9bad Compare November 14, 2020 14:12
Use browserslist defaults which is `> 0.5%, last 2 versions, Firefox ESR, not dead`
@XhmikosR
Copy link
Member Author

XhmikosR commented Nov 23, 2020

C:\Users\xmr\Desktop\bootstrap>npx autoprefixer --info
Browsers:
  Chrome for Android: 86
  Firefox for Android: 82
  And_qq: 10.4
  UC for Android: 12.12
  Android: 81
  Baidu: 7.12
  Chrome: 86, 85, 84, 83, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  Edge: 86
  Firefox: 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  iOS: 14, 13.4-13.7, 13.3, 13.2, 13.0-13.1, 12.2-12.4, 12.0-12.1, 11.3-11.4, 11.0-11.2, 10.3, 10.0-10.2
  Kaios: 2.5
  Opera Mini: all
  Opera Mobile: 59
  Opera: 72
  Safari: 14, 13.1, 13, 12.1, 12, 11.1, 11, 10.1, 10
  Samsung: 12.0

These browsers account for 92.57% of all users globally
C:\Users\xmr\Desktop\bootstrap>npx autoprefixer --info
Browsers:
  Chrome for Android: 86
  Firefox for Android: 82
  And_qq: 10.4
  UC for Android: 12.12
  Android: 81
  Baidu: 7.12
  Chrome: 86, 85, 84, 83, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  Edge: 86, 85
  Firefox: 82, 81, 80, 79, 78, 77, 76, 75, 74, 73, 72, 71, 70, 69, 68, 67, 66, 65, 64, 63, 62, 61, 60
  iOS: 14, 13.4-13.7, 13.3, 13.2, 13.0-13.1, 12.2-12.4, 12.0-12.1, 11.3-11.4, 11.0-11.2, 10.3, 10.0-10.2
  Kaios: 2.5
  Opera Mini: all
  Opera Mobile: 59
  Opera: 72, 71
  Safari: 14, 13.1, 13, 12.1, 12, 11.1, 11, 10.1, 10
  Samsung: 12.0, 11.1-11.2

These browsers account for 94.65% of all users globally

Let's land this as is; it doesn't really change anything in the dist files as is. Due to the issue we are having when removing Android, I say we revisit this later.

@XhmikosR XhmikosR marked this pull request as ready for review November 23, 2020 20:55
@XhmikosR XhmikosR moved this from Inbox to Review in v5.0.0-beta1 Nov 25, 2020
v5.0.0-beta1 automation moved this from Review to Approved Dec 1, 2020
@XhmikosR XhmikosR merged commit bb369ca into main Dec 2, 2020
v5.0.0-beta1 automation moved this from Approved to Done Dec 2, 2020
@XhmikosR XhmikosR deleted the master-xmr-browserslist branch December 2, 2020 04:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
v5.0.0-beta1
  
Done
Development

Successfully merging this pull request may close these issues.

Review v5 browsers
5 participants