Third-party sites such as Apple macOS | endoflife.date say the last three main releases are usually supported:
Major versions of macOS are released once a year now, and usually maintained for three years. Apple usually provides security updates for the latest 3 releases, but this isn’t consistently applied and some security fixes aren’t available for the non-latest releases.
(The three latest being macOS 11, 12 and 13.)
macOS version history - Wikipedia has something similar.
For Pillow, we nominally only support upstream supported OS releases, but for macOS we set MACOSX_DEPLOYMENT_TARGET=10.10
for Intel because we had quite a few people asking for older versions at some point, and it’s not too much extra effort (and MACOSX_DEPLOYMENT_TARGET=11.0
for Apple Silicon, the earliest).
Looking at pip installs for the newest Pillow 10.0.0 for the last 28 days (via pypinfo --days 28 --percent --limit 1000 --json "pillow==10.0.0" system distro-version
using pypinfo, and summarising with macos-versions.py):
system_name | distro_version | download_count | percent | summed_percent |
---|---|---|---|---|
Darwin | 10.7 | 2 | 0.00% | 100.00% |
Darwin | 10.9 | 16 | 0.00% | 100.00% |
Darwin | 10.10 | 54 | 0.01% | 100.00% |
Darwin | 10.11 | 134 | 0.01% | 99.99% |
Darwin | 10.12 | 292 | 0.03% | 99.98% |
Darwin | 10.13 | 1,664 | 0.17% | 99.95% |
Darwin | 10.14 | 2,066 | 0.22% | 99.78% |
Darwin | 10.15 | 11,597 | 1.21% | 99.56% |
Darwin | 11 | 195,519 | 20.38% | 98.35% |
Darwin | 12 | 426,878 | 44.49% | 77.97% |
Darwin | 13 | 312,566 | 32.57% | 33.48% |
Darwin | 14 | 8,715 | 0.91% | 0.91% |
Darwin | 15 | 7 | 0.00% | 0.00% |
Darwin | 16 | 19 | 0.00% | 0.00% |
Darwin | None | 31 | 0.00% | 0.00% |
This shows 98.35% is 11+, and 99.95% is 10.13+.