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

Safari iOS releases #2006

Closed
connorshea opened this issue May 11, 2018 · 17 comments
Closed

Safari iOS releases #2006

connorshea opened this issue May 11, 2018 · 17 comments
Labels
data:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation.

Comments

@connorshea
Copy link
Contributor

So, the Safari iOS release data is really weird.

Right now there are a bunch of releases which don't actually exist, best I can tell:

{
"browsers": {
"safari_ios": {
"releases": {
"1": {
"status": "retired"
},
"2": {
"status": "retired"
},
"3": {
"status": "retired"
},
"3.1": {
"status": "retired"
},
"3.2": {
"status": "retired"
},
"4": {
"status": "retired"
},
"4.2": {
"status": "retired"
},
"4.3": {
"status": "retired"
},
"5": {
"status": "retired"
},
"5.1": {
"status": "retired"
},
"6": {
"status": "retired"
},
"6.1": {
"status": "retired"
},
"7": {
"status": "retired"
},
"7.1": {
"status": "retired"
},
"8": {
"status": "retired"
},
"8.1": {
"status": "retired"
},
"8.4": {
"status": "retired"
},
"9": {
"status": "retired"
},
"9.1": {
"status": "retired"
},
"9.2": {
"status": "retired"
},
"9.3": {
"status": "retired"
},
"10": {
"status": "retired"
},
"10.1": {
"status": "retired"
},
"10.2": {
"status": "retired"
},
"10.3": {
"status": "retired"
},
"11": {
"status": "retired"
},
"11.1": {
"status": "current"
}
}
}
}
}

The list includes the following releases:

  • 1
  • 2
  • 3
  • 3.1
  • 3.2
  • 4
  • 4.2
  • 4.3
  • 5
  • 5.1
  • 6
  • 6.1
  • 7
  • 7.1
  • 8
  • 8.1
  • 8.4
  • 9
  • 9.1
  • 9.2
  • 9.3
  • 10
  • 10.1
  • 10.2
  • 10.3
  • 11
  • 11.1

Of these, a few don't seem to actually exist:

  • Safari 10.1 has a release post, no other 10.x releases exist. 10.2 and 10.3 are iOS versions, but no iOS Safari version exists with those names. The release notes back me up on this.
  • While the Safari blog does refer to Safari 9.1 as "Safari on iOS 9.3", the Safari release notes only have a section for Safari 9.1. 9.2 and 9.3 do not exist.

At least for the most recent few releases, Safari and iOS are versioned separately. Every major iOS release, e.g. iOS 9, 10, 11, comes with a corresponding Safari release, but minor versions, e.g. 9.1, 9.2, only sometimes come with a Safari release, and regardless of the iOS version number only increment the minor release number by 1 (e.g. iOS 11.3 came with Safari 11.1).

There are also some from very old versions which I'm not sure about, namely 1 and 2. Safari for iOS seems to have started on version 3.0 since that's where Safari for macOS was, at least if the Wikipedia article is correct.

@connorshea
Copy link
Contributor Author

Also, if we assume caniuse's data is correct, of Safari 8.1 and 8.4 only one actually exists. There was a release of Safari in iOS 8.4, though I'm not entirely sure which version number it was given.

@Elchi3 Elchi3 added the data:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation. label May 31, 2018
@Elchi3
Copy link
Member

Elchi3 commented Aug 29, 2018

Hey Jon (@apple-web-evangelist),
could you maybe shed some light and give us feedback on whether we got Safari iOS versions right?
See also the linked PR #2007.

The file mentioned above is our allow-list for valid Safari iOS versions. The versions specified there are allowed to be used in MDN compat tables (which appear on about 6000 MDN doc pages).

@a2sheppy
Copy link
Contributor

Another issue here is that Safari on iOS generally is treated as sharing a version number with iOS, while its user agent reports a different number entirely. For example, Safari on my iPhone right now reports this UA:

Mozilla/5.0 (iPhone; CPU iPhone OS 12_1_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1

We need to sort out how to let people understand which iOS version the mobile Safari we list matches with, since that's more important than anything else the version number might tell us in that scenario.

@jdatapple
Copy link
Contributor

Apple refers to it as "Safari for iOS". I've discussed this with others at MDN that labels should be updated to "Safari for iOS" and version numbers should reflect the iOS version. In this case Safari for iOS 10.3 would be accurate.

Regarding the UA string @a2sheppy mentioned, the correct label would be "Safari for iOS" with version "12.1".

@a2sheppy
Copy link
Contributor

@apple-web-evangelist - Yeah, that's what I have been generally getting at, but you've done it much better than I have.

This is something we need to update our schema and/or presentation on MDN for, but the bigger issue is actually getting good data for Safari into BCD. There's a great deal to be done and I don't know who will be doing it.

@jdatapple
Copy link
Contributor

I am preparing data to supply to MDN by landing it in the repo. That said, there are some hurdles for me to overcome, most importantly finding a reliable way to map feature implementations to shipped versions of Safari for iOS and Safari for desktop. It's going to take me time to build a map that will help me do it efficiently so that I can make the most of those spare cycles. Be patient with me.

@a2sheppy
Copy link
Contributor

@apple-web-evangelist - I hear you. Getting a system in place to get the data into a usable form takes time. We're still trying to perfect it ourselves and we've been working on this for a while now. :)

@apepper
Copy link
Contributor

apepper commented Mar 28, 2019

What is the current state of this? At least two other PRs are waiting for this issue to be resolved.

@Elchi3
Copy link
Member

Elchi3 commented Mar 28, 2019

Hey @apple-web-evangelist, are still you planning on following up on this? Or can you point us to someone else who could help? We really would like to get Safari and Safari iOS versions correct and need a list of releases here.

Currently, we assume that the data in the following two files is correct:
https://github.com/mdn/browser-compat-data/blob/master/browsers/safari.json
https://github.com/mdn/browser-compat-data/blob/master/browsers/safari_ios.json
However, as this issue (and others) state, these releases can't be quite right.

This data is now used by VS Code, webhint.io, WebStorm IDE and more (https://github.com/mdn/browser-compat-data#projects-using-the-data). Also, of course, it is seen by millions of web developers who visit MDN every month. It would be great to make sure we all talk about correct Safari versions.

@queengooborg
Copy link
Collaborator

Whilst working on the browser engine versions, I found a page that documents the exact WebKit versions of all iOS releases from iOS 2.0 to 11.4.1.

@ddbeck
Copy link
Collaborator

ddbeck commented Apr 15, 2019

Just spitballing here, but I noticed recently that Safari's User-Agent string provides a lot of information that might help cross-reference various version numbers that we care about.

For example, on my MacBook Air, the UA string is Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Safari/605.1.15 — this gives us the operating system version (macOS 10.14.4), Safari version (12.1), and WebKit engine version (605.1.15). iOS Safari's user strings look similar.

Admittedly, these numbers don't come in consistent triples (e.g., OS upgrades don't necessarily bump Safari version numbers). But if somebody had a fair amount of traffic and a lot of historic access logs (admittedly, a big if), it might be possible to get a pretty good idea of which Safari versions landed with which iOS releases.

@queengooborg
Copy link
Collaborator

queengooborg commented Apr 17, 2019

YES. If we can get our hands on said logs, we’d have information from the most credible sources possible! In fact, I think that I found the perfect database. It's literally a collection of all the user agents overtime, which is exactly what we're looking for.
https://developers.whatismybrowser.com/useragents/explore/software_name/safari/

I'm parsing through the data right now to get something rolling! (Unfortunately, there seems to be a lot of junk data in the user agents, filled with "420"s and "69"s that jerks thought was funny...urgh. I'll be making sure to parse through the data based upon the number of times the user agent, and similar user agents, were recorded.)

@queengooborg
Copy link
Collaborator

Whew... List is complete! I sorted through each iOS version to find the most popular user agents reported, and as a result obtained the most likely WebKit engine versions. (I made sure to strip out all the junk data as carefully as possible -- there was a LOT of it, unfortunately.)

I've uploaded it as a Google Drive spreadsheet for anyone to take a look at and review.

P.S. related PR: #3877

@shimondoodkin
Copy link

release notes for opera are here:
https://github.com/operasoftware/devopera/tree/master/src/blog/_posts search "opera-18" and look around. to search for "opera 10.5" search "opera 10-5" see date in filename.

found some release notes for safari here:, but not sure how to match the release version to actual version
https://developer.apple.com/safari/technology-preview/release-notes/

@Elchi3
Copy link
Member

Elchi3 commented Aug 1, 2019

Thank you! 👍

found some release notes for safari here:, but not sure how to match the release version to actual version
https://developer.apple.com/safari/technology-preview/release-notes/

There is #2991 to research a mapping.

@queengooborg
Copy link
Collaborator

I have just gone through and removed a number of Safari iOS versions after 6.0 that don't match up with desktop releases, as to help clean up our data. This should also assist eliminating some confusion about whether to use iOS or Safari versions for Safari iOS data. They are as follows:

#4832
#4835
#4857
#4858
#4859
#4860
#4861
#4862

@queengooborg
Copy link
Collaborator

So I think that we're all good on this one now, and our Safari iOS data is cleaned up! I'm going to go ahead and close this issue, as I don't think there's anything else that needs to be done for this. Happy to reopen if I'm incorrect, though!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data:browsers 🌍 Data about browsers (versions, release dates, etc). This data is used for validation.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants