[webkit-dev] Meaning of '7' in WebKit Versioning

강수진 rkdthd1234 at naver.com
Sun Dec 17 18:14:43 PST 2023

Hi Timothy,
Thank you for your answer. I understand that the prefix was added to differentiate versions with different feature flags based on the target SDK version. For example, Safari was built for 10.6 Snow Leopard and was versioned as 6616.1.20, and Safari was built for 10.7 Lion and was versioned as 7616.1.20.
And I have a few follow-up questions:
You said, "Safari updates, which shipped to older OS versions, were also included in new OS releases."
I understand that Safari is automatically updated when I upgrade to a new OS. So, I don't understand what you mean by "Safari updates for older OS versions were also included in new OS releases."
After some research, I found that Safari may need to be updated on all OSes for security reasons. For example, there are both Lion and Snow Leopard versions of Safari 5.1.7 update for Adobe Flash Player (https://support.apple.com/en-vn/103351)
Is this the situation you were describing?
You also said, "the version number's prefix was introduced to differentiate these versions and ensure proper file updates during installation."
How does this versioning ensure correct updates? Does the OS installer have Safari programs built for different target SDKs, and does it check the currently installed OS environment to install the Safari version corresponding to that environment? For example, if the current OS version is 10.7, does it download the Safari program with a version number starting with 7?
Finally, why isn't this versioning scheme needed anymore? Could you give me an example?
Thanks, Sujin

-----Original Message-----
From: "Timothy Hatcher"<timothy at apple.com>
To: "강수진"<rkdthd1234 at naver.com>;
Cc: <webkit-dev at lists.webkit.org>;
Sent: 2023-12-16 (토) 02:18:57 (GMT+09:00)
Subject: Re: [webkit-dev] Meaning of '7' in WebKit Versioning

Your research is on the right track. The prefix originally reflected the minor dot-number from Mac OS X's version naming convention.

I implemented this versioning scheme many years ago to address versioning conflicts with the OS X installer. Safari updates, which shipped to older OS versions, were also included in new OS releases. To ensure the OS installer updated WebKit and Safari correctly, distinct bundle version numbers were necessary, as these components were built with different feature flags depending on the target SDK version (they were not intended for use outside the OS version they were compiled against). Thus, the version number's prefix was introduced to differentiate these versions and ensure proper file updates during installation (since 7616.1.20 is larger, thus newer to the installer, than 6616.1.20).

This versioning scheme isn't needed anymore, which is why the prefix number hasn't changed in the last few years.

— Timothy Hatcher

On Oct 29, 2023, at 10:07 PM, 강수진 via webkit-dev <webkit-dev at lists.webkit.org> wrote:

Meaning of '7' in WebKit Versioning
I have a question about the versioning rules in WebKit.
I am aware that the version of WebKit used varies based on the iOS version. For example, in iOS 17.0, the WebKit framework's WebKit.tbd file shows the current version as 616.1.27, while in iOS 16.4, it's 615.1.26.
When I checked the corresponding source for each version on WebKit's GitHub, I noticed that the tags for these versions are labeled as WebKit-7616.1.20.
Upon inspecting Version.xcconfig, I found that 616.1.20 represents the Major, Minor, and Tiny versions, respectively. However, I couldn't determine the significance of '7'.
I speculated that '7' might represent the SYSTEM_VERSION_PREFIX since BUNDLE_VERSION_Production is set to $(SYSTEM_VERSION_PREFIX)$(FULL_VERSION); in the same file. But considering the system version prefix for iPhone SDK is set to 8, '7' couldn't denote that.
After some research, I found that '7' signifies the release year of Mac OS 10.7 (Lion), which was launched in 2011.
Could you please clarify the meaning of '7' in tags like WebKit-7616.1.20?
webkit-dev mailing list
webkit-dev at lists.webkit.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20231218/394e8de6/attachment.htm>

More information about the webkit-dev mailing list