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
Mark IE11 as no longer supported browsers #18199
Conversation
@tsteur the command is documented here: https://developer.matomo.org/guides/asset-pipeline#browser-support There's no command specifically for Vue, we'd probably have to use their code at a specific tag. The output of the above command is based on https://github.com/matomo-org/matomo/blob/4.x-dev/.browserslistrc . |
@diosmosis @tsteur we might want to make that list more explicit rather than moving (ie remove rules like <1%, last 2 versions maybe) |
@justinvelluppillai see the linked documentation, you can run |
I reckon if it's possible it be great to lock in some browser versions or support them back a bit more as otherwise we might actually deprecate browsers pretty quickly? If easily possible could be good to support some even older versions? are |
@tsteur I'm not sure if each line is anded together. If it was not, IE would still be included, BUT Specific versions can be locked using the technique in the github issue I linked to above. |
@diosmosis that's kind of a great use of package-lock.json! Still wonder though if being more explicit in our .browserslistrc is a better approach for us |
@justinvelluppillai that means you'd have to periodically and manually determine which browsers match the (now unwritten) requirements which defeats the purpose of using browserslist. |
@diosmosis @justinvelluppillai would there be any harm to change the first line to If I understand correctly, this way we would support a lot more versions:
I would expect that quite a few users be on some of these older versions once you aggregate them all. And if it's just a matter of changing the percentage it be easy to keep compatibility? |
@tsteur the harm is bigger final build size from supporting older browsers with more polyfills and less modern features. I still favour a more explicit approach, just specifying which browsers we use because then it's very clear (but the package-lock suggestion @diosmosis made would work too) |
@justinvelluppillai it might be good to check how much of a difference in file size it actually makes to support these? |
@tsteur you can get an idea on 4.x-dev by:
The result will have to be extrapolated to get an idea of how much it will affect the finished migration. EDIT: Note that it may not actually make much of a difference overall, since it's probably hard to find modern browsers that don't support the features we use. |
I can take a quick look later today if no one takes a look by then. |
4.x-dev no changes: 4.x-dev w/ 0.05%: And just as a sanity check, 4.x-dev w/ 0.05% + including IE: Also note, that it is trivial to revert a change to .browserlistrc, as long as no public commitments have been made. |
Nice, that's effectively no change in size at all so we could easily define Using then the package lock mentioned in browserslist/browserslist#316 could be good additionally and we could update the browserlist in major releases or so? |
Yes looks like it. Double checked on caniuse, and most of the old browsers listed still support all the newer functionality we need. Most of the unsupported things are CSS related or large features like shadow dom support.
That should work 👍 |
@tsteur would you like me to update the PR w/ browserslist changes? |
Be great @diosmosis |
@tsteur actually I think the built JS size may end up greater since we don't auto-include polyfills (so we can have one JS files w/ polyfills instead of adding it to every plugin's UMD). I'll do cross browser testing and see what the result is. |
@tsteur updated so it supports most browsers at > 0.05% usage. I tested manually on the following browser versions:
I had to add one extra polyfill for Object.entries(). Asset sizes: |
browserslist is a dependency of @vue/cli-service so it will update when that package is updated, which can be done once per major version. |
Awesome. Can this one be reviewed @diosmosis ? |
@tsteur tests should be passing, put this into review. |
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.
Code looks fine for me. @diosmosis feel free to merge when it fits best for the other vue PRs
Description:
Fix #18011
Kept the other translation so we can reuse it in the future (which was the idea when we added it).
The notification will be no longer needed as they now will be seeing an unsupported browser error page.
@diosmosis I remember you mentioned there is a command to find out which browsers vue supports. I'd also adjust the other browser version numbers based on that but couldn't find anymore what the command was to get that information. Can you help me out there?
Review