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

Support only last 3 iOS versions and drop Android Browser in jQuery 4.0+ #3950

Closed
mgol opened this issue Jan 22, 2018 · 12 comments · Fixed by #4347
Closed

Support only last 3 iOS versions and drop Android Browser in jQuery 4.0+ #3950

mgol opened this issue Jan 22, 2018 · 12 comments · Fixed by #4347

Comments

@mgol
Copy link
Member

mgol commented Jan 22, 2018

Description

We currently support most browsers in their current & current-1 versions. The exceptions are IE, iOS & Android. Wrt to IE it's obvious we can't switch to the "current & current-1" scheme as this browser is dead and we support it for legacy reasons. Android Browser 4.0-4.3 still has around 6.1% of Android Browser market share (91.8% of which are Android 4.1-4.3) so we can't drop Android Browser just yet.

iOS is different. It doesn't progress as quickly as desktop rolling-release browsers as Safari cannot be updated separately from the OS but people update the OS pretty quickly. Stats show hardly anyone uses an iOS version older than current-2 at any given moment. Apple stats provide some insight but they don't separate current-2 from older versions.

Currently we explicitly support iOS 7+. This means as long as we don't release a new major jQuery version we have to test on more & more iOS versions (currently 4 of them). Could we limit ourselves to a specific number of iOS versions supported in line with most of the desktop browsers? I feel current & current-1 might be too little but perhaps we can limit ourselves to last 3 stable versions?

This would have to happen in jQuery 4.0 & newer as we try to not limit https://jquery.com/browser-support/ in patch/minor releases.

Link to test case

N/A

@mgol mgol added this to the 4.0.0 milestone Jan 22, 2018
@timmywil
Copy link
Member

Decided on last 3 stable for iOS. Android 4.0 will go away.

@thecodingdude
Copy link

In issue #3886 timmy said "A complete rewrite using next generation JavaScript...we want to use es2015 modules."

Would it not make sense to remove support for browsers that don't implement the latest web features and let them continue using jQuery 3.x? That way a huge amount of cruft can be removed for such old and dated browsers.

@mgol
Copy link
Member Author

mgol commented Feb 1, 2018

@thecodingdude We'll still have to support IE in the foreseeable future (at least IE 11; currently IE 9+ but it doesn't change that much) so we can't do that, unfortunately.

@thecodingdude
Copy link

thecodingdude commented Feb 1, 2018

I mean, there's already president for removing browsers - your blog post mentions "If you need to support older browsers like Internet Explorer 6-8, Opera 12.1x or Safari 5.1+, use jQuery 1.12." so it would be no different here right? If you want IE 9-11 use jQuery 3.x

IE 11 literally supports no modern web platform features so how you plan on using next generation JS like modules and supporting IE11 is a mystery. Starting from a modern foundation (not IE) would be much easier to attract pull requests and such rather than working with such an old codebase.

There's no conceivable reason I can think of to support IE in any capacity in version 4, and not require people to use v3 if they want that support. The idea is to let go of browsers over time, and IE has certainly had its day by now...

Just my thoughts...

@mgol
Copy link
Member Author

mgol commented Feb 1, 2018

how you plan on using next generation JS like modules and supporting IE11 is a mystery

We'd use modules during development but we'd transpile using something like rollup so that the final bundle is one JS script that doesn't use modules.

There's no conceivable reason I can think of to support IE in any capacity in version 4, and not require people to use v3 if they want that support.

We only work on the latest version of jQuery. Releasing version 4 that doesn't support IE would mean 95% of users wouldn't upgrade to this version, they wouldn't get new features & bug fixes. It's not worth it, basically every library in the world supports IE 11. There are just way too many users of that browser.

@thecodingdude
Copy link

Makes sense - thanks for the clarification. I'd imagine in that case we would be able to make our own builds with the config we want (such as removing any code designed for IE11), that could satisfy the best of both worlds :)

@coliff
Copy link
Contributor

coliff commented Feb 6, 2018

IE 11 is still more popular than Edge with 6.2% desktop marketshare (more than Safari!) . REF: http://gs.statcounter.com/browser-version-partially-combined-market-share/desktop/worldwide/#monthly-201801-201801-bar

IE11 is the only available Microsoft browser on Windows 7 and 8 (which are still supported by Microsoft). It's really too early to think about dropping IE11 support imho.

Back on topic - I think it makes sense to support last 3 versions of iOS. iOS 8 (combined) has less than 1% market share of iOS according to this: https://data.apteligent.com/ios/

@mgol mgol changed the title Support only last n (3?) iOS versions in jQuery 4.0+ Support only last 3 iOS versions and Android Browser >=4.1 in jQuery 4.0+ Feb 12, 2018
@mgol
Copy link
Member Author

mgol commented Mar 23, 2018

It turns out BrowserStack is in the process of removing emulators for mobile devices in favor of real ones. They seem to work really well which is why I was able to add Android 8.0 to our main run instead of the periodic one.

Unfortunately, this planned removal of emulators means all Android Browser instances will disappear (as Android <4.4 is only available via emulators). This will happen in the next 3 months so we even need to figure out how to handle this in 3.x where we still support those browsers.

Sauce Labs has already removed Android Browser some time ago. In light of all this I think we definitely should drop all Android <4.4 in jQuery 4.0. Marking as Needs review for a discussion.

@mgol
Copy link
Member Author

mgol commented Mar 23, 2018

FWIW, Androids older than 4.4 currently have 5.7% of market share of all Android devices according to https://developer.android.com/about/dashboards/index.html.

@mgol mgol changed the title Support only last 3 iOS versions and Android Browser >=4.1 in jQuery 4.0+ Support only last 3 iOS versions and drop Android Browser in jQuery 4.0+ Mar 26, 2018
@mgol
Copy link
Member Author

mgol commented Mar 26, 2018

At the today's meeting we agreed to drop the Android Browser completely in jQuery 4.0, meaning we will only support recent Chrome for Android but not the old Android Browser from Android <4.4.

If BrowserStack removes Android Browser from its emulator list before we release jQuery 4.0 (which they plan to do as of now) we'll run manual tests pre-release locally on those browsers as long as we develop jQuery 3.x.

@mgol mgol removed the Needs review label Mar 26, 2018
@imkremen
Copy link

Is it possible to support ie11 with external polyfill?
Angular use similar solution (https://angular.io/guide/browser-support#polyfill-libs).

@mgol
Copy link
Member Author

mgol commented Feb 18, 2019

See #4299 for a discussion about dropping IE<11 in jQuery 4.0.

@mgol mgol added Core and removed Docs labels Apr 10, 2019
mgol added a commit to mgol/jquery that referenced this issue Apr 10, 2019
Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 10, 2019
Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 10, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 10, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 10, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 13, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 15, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
@mgol mgol self-assigned this Apr 15, 2019
mgol added a commit to mgol/jquery that referenced this issue Apr 17, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 23, 2019
Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Further size reductions will be achieved when we drop Firefox 60, iOS 10
and pre-Chromium Edge versions.

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit to mgol/jquery that referenced this issue Apr 29, 2019
…& PhantomJS

Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Fixes jquerygh-3950
Fixes jquerygh-4299
mgol added a commit that referenced this issue Apr 29, 2019
…& PhantomJS

Also, update support comments format to match format described in:
jquery/contribute.jquery.org#95 (comment)
with the change from:
jquery/contribute.jquery.org#95 (comment)
(open-ended ranges end with `+`).

Fixes gh-3950
Fixes gh-4299
Closes gh-4347
@lock lock bot locked as resolved and limited conversation to collaborators Oct 26, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.