Supporting older versions of macOS for MacVim (10.9 - 10.12)

24 views
Skip to first unread message

Yee Cheng Chin

unread,
Sep 15, 2022, 5:44:25 PM9/15/22
to vim...@googlegroups.com
Hi macOS Vim users, just casting a wide net here. I mentioned this (future support of older versions of macOS) in the release notes, but there may be people who update MacVim using other methods and don't see it.

Below is copied from https://github.com/macvim-dev/macvim/discussions/1288. If you could, reply to the GitHub discussion thread, but if you reply here that is fine too (I don't have email list forwarding set up for MacVim):


In a philosophy borrowed from Vim, MacVim has always tried to support macOS versions as old as possible to allow for people using these older versions of OSX / macOS to still be able to use the latest versions of MacVim. Currently, MacVim supports 10.9 Mavericks (released in 2013) or above, which I believe is relatively rare among macOS software (VLC is a good example of supporting even older versions of macOS, however). However, in the near future, we would likely need to bump the minimum fully supported version up to 10.13 High Sierra (released in 2017) and move towards deprecating 10.9 - 10.12 support. If this could affect you, read on.

Rationale

The main reason why we need to think about deprecating 10.9 - 10.12 support is that Xcode 14 will only support 10.13 or above (see release notes and version support table). If we want to use new features from macOS 13.0 Ventura, we have to use Xcode 14, which would mean the generated binary won't work on older macOS.

We also use Sparkle for updating our software, and Sparkle 2 has been bumped to only support 10.13 and above (for similar reasons). We are currently using Sparkle 1 for now but eventually we do want to upgrade for various features.

Other than that there are generic maintenance pains with supporting features across this many versions, as Apple has been aggressive in deprecating features, meaning that sometimes we have to write multiple versions of the code. It's also hard to test on older versions of macOS meaning that sometimes they silently break with us only finding out much later.

Plan

Dropping 4 versions of macOS in one go is quite harsh, and as such we would be providing "legacy" binaries when we do releases. This means there will be a MacVim.app and a MacVim_10.9.app. I think we should still be able to get the legacy version to update via the Sparkle updater as well using Sparkle 1. However, because it's built separately, it's more likely to break, and you as the user would need to be more proactive in filing issues.

Eventually though, it may be hard to build binaries for 10.9, if our CI drops support for Xcode 13 in their hosted runners (we could investigate other options like GitLab if there's a strong desire to keep 10.9 support / binary release running). That likely won't happen for a couple more years, but once that happens we may stop building binaries for 10.9 - 10.12. When that happens 10.9 may still be supported in source code form where you need to build MacVim manually.

I don't see any immediate technical reason why we would drop source code support for 10.9 for now, other than the maintenance pain I mentioned earlier. However, it's hard to see ahead too much as Apple may try to incentivize usage of newer features (e.g. Swift UI) that makes it hard to maintain backward compatibility in the future.

RFC / Summary

If this affects you, feel free to comment below! It's sometimes hard to get a feel of how many users still use these older versions of macOS unless something breaks (see #1212). As I mentioned above, in the immediate future 10.9 - 10.12 will still work as we still provide a legacy build, and I would like to gather some feedbacks on this.

Reply all
Reply to author
Forward
0 new messages