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

build: announce end of support for old macOS releases #23011

Open
bradfitz opened this issue Dec 6, 2017 · 36 comments
Open

build: announce end of support for old macOS releases #23011

bradfitz opened this issue Dec 6, 2017 · 36 comments

Comments

@bradfitz
Copy link
Contributor

@bradfitz bradfitz commented Dec 6, 2017

Apple continues to put out new macOS releases. We can't run builders for all of them forever.

I propose we announce in the Go 1.10 release notes that Go 1.10 will be the last release to officially support macOS 10.8 (Mountain Lion).

macOS 10.8 was last updated Oct 3, 2013, over 4 years ago.

(macOS 10.9 was last updated Mar 21, 2016, 19 months ago, which is somewhat more recent)

Apple doesn't publish official End-of-Life dates for macOS versions, but I read that their security policy is that they issue security updates for the past 3 releases.

Given that they're on 10.13 now, that means 10.13, 10.12, and 10.11 are supported by them.

Our policy of additionally supporting 10.10 and 10.9 in Go 1.11 would be even more.

/cc @rsc @ianlancetaylor

@rsc
Copy link
Contributor

@rsc rsc commented Dec 6, 2017

I just came here to suggest the same thing. SGTM.

@rsc rsc added NeedsFix and removed NeedsDecision labels Dec 6, 2017
@gopherbot
Copy link

@gopherbot gopherbot commented Dec 6, 2017

Change https://golang.org/cl/82275 mentions this issue: doc/go1.10: preannounce removal of OS X 10.8 support in Go 1.11

gopherbot pushed a commit that referenced this issue Dec 6, 2017
For #23011.

Change-Id: Ibd934f32e41cb8dddbd3d68a324536cf29a97916
Reviewed-on: https://go-review.googlesource.com/82275
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@rsc
Copy link
Contributor

@rsc rsc commented Dec 13, 2017

Looks like we could plausibly drop support in Go 1.11 for both Mountain Lion (as previously agreed) and also Mavericks. By the time Go 1.11 comes out in August 2018, Mavericks will have gone two years since its last security update.

version released updated security update
OS X 10.8 Mountain Lion Jul 2012 Oct 2013 (10.8.5) Aug 2015 (2015-006)
OS X 10.9 Mavericks Oct 2013 Sep 2014 (10.9.5) Jul 2016 (2016-004)
OS X 10.10 Yosemite Oct 2014 Aug 2015 (10.10.5) Jul 2017 (2017-003)
OS X 10.11 El Capitan Sep 2015 Jul 2016 (10.11.6) Dec 2017 (2017-005)
macOS 10.12 Sierra Sep 2016 Jul 2017 (10.12.6) Dec 2017 (2017-002)
macOS 10.13 High Sierra Sep 2017 Dec 2017 (10.13.2)
@gopherbot
Copy link

@gopherbot gopherbot commented Dec 13, 2017

Change https://golang.org/cl/83795 mentions this issue: doc/go1.10: preannounce deprecation of OS X 10.9 Mavericks

gopherbot pushed a commit that referenced this issue Dec 13, 2017
By the time Go 1.11 is released, OS X 10.9 Mavericks will have gone
two years with no security updates.

For #23011.

Change-Id: I6482852a14477985769b72c45c92416aae8be100
Reviewed-on: https://go-review.googlesource.com/83795
Run-TryBot: Russ Cox <rsc@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
@rsc
Copy link
Contributor

@rsc rsc commented Dec 13, 2017

Filed #23122 for the actual removal work (whatever that is). Looks like we'll be caught up once Go 1.11 is out and then once caught up we should probably plan to deprecate one Mac OS version each year, alternating between preannounce and remove.

Go 1.12 preannounces dropping Yosemite
Go 1.13 drops Yosemite
Go 1.14 preannounces dropping El Capitan
Go 1.15 drops El Capitan
Go 1.16 preannounces dropping High Sierra
etc.

@rsc
Copy link
Contributor

@rsc rsc commented Dec 13, 2017

Let's make this issue the open-forever tracking bug for this sequence. Moving to Go 1.11; once Go 1.12 milestone is created, can move to Go 1.12.

@rsc rsc modified the milestones: Go1.10, Go1.11 Dec 13, 2017
@rasky
Copy link
Member

@rasky rasky commented Dec 14, 2017

One bit of information ignored by the above table is which Mac hardware is dropped by each OS versions. Some macOS versions are "tocks" that drop hardware support, others are "ticks" that don't drop hardware support. I think this should be analyzed when taking decisions.

Also this page reports the usage share between different macOS versions:
http://gs.statcounter.com/macos-version-market-share/desktop/worldwide

Mavericks is about 5% of all Macs, while Mountain Lion is non existing.

@rsc
Copy link
Contributor

@rsc rsc commented Dec 14, 2017

The statcounter.com page makes no sense to me. I don't believe their numbers at all.

@gopherbot
Copy link

@gopherbot gopherbot commented Nov 28, 2018

Change https://golang.org/cl/151360 mentions this issue: doc: preannounce dropping macOS 10.10 support

@ianlancetaylor ianlancetaylor modified the milestones: Go1.12, Go1.13 Nov 28, 2018
gopherbot pushed a commit that referenced this issue Nov 28, 2018
Updates #23011

Change-Id: I0eccea5d08a8758585f183540787b78fb80aa36a
Reviewed-on: https://go-review.googlesource.com/c/151360
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
@gopherbot
Copy link

@gopherbot gopherbot commented Nov 28, 2018

Change https://golang.org/cl/151361 mentions this issue: doc: fix formatting for Darwin entry

gopherbot pushed a commit that referenced this issue Nov 28, 2018
Updates #23011

Change-Id: I38360501c772ddf7cc4bd1b5d7b0225387ead535
Reviewed-on: https://go-review.googlesource.com/c/151361
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
@robaho
Copy link

@robaho robaho commented Feb 5, 2019

@rsc what is wrong with the statcounter? you just read it down in a line - they all seem to add to 100% (or close enough to it - there are probably lots of versions in use that they drop due to very low usage, and combined maybe less than 5% ?).

@probonopd
Copy link

@probonopd probonopd commented Nov 1, 2019

Please never drop any Mac OS X, OS X, and macOS releases. Ever. One of Go's main advantages is that it builds static binaries, and hence binaries don't rely on the libraries that come with the OS. By mandating that the resulting binaries need to run on all Mac OS X, OS X, and macOS releases, Go would have a huge advantage over other languages.

Binaries that can run on, say, Mac OS X 10.4 can still run on whatever ever-changing macOS is out there today, right? (Apart from 386 vs. x86_64). Apple users are sick and tired of the constant urge to update not only the software, but also the machines.

Point in case: 2007-ish Macs that would otherwise be perfectly capable machines (e.g., when using Linux) do not even get the latest macOS anymore. This is not only expensive, but also planned obsolescence which is evil to the environment.

@probonopd
Copy link

@probonopd probonopd commented Nov 1, 2019

Looks like we could plausibly drop support in Go 1.11 for both Mountain Lion (as previously agreed) and also Mavericks.

Why? To force users on the latest macOS releases, and hence force them to throw away perfectly good machines and buy new hardware?

Apple continues to put out new macOS releases. We can't run builders for all of them forever.

Why not just build on the oldest one, the binaries should also run on newer systems.

@bradfitz
Copy link
Contributor Author

@bradfitz bradfitz commented Nov 1, 2019

@probonopd, sorry, that's not happening.

There's a maintenance cost for each operating system we support, especially for older ones, holding us back, making us keep workarounds alive, forcing us to keep multiple codepaths for old APIs (when new ones aren't available) vs newer APIs (when the older ones have been removed later), etc.

@probonopd
Copy link

@probonopd probonopd commented Nov 1, 2019

Why not build only for the old Mac OS X versions? Binaries built on older Mac OS X shall run on newer macOS versions, too (unless Apple broke them).

Never use new APIs when old ones are there. Because not everyone has the new ones, but everyone has the old ones. This is how "backward compatibility" works. My 2 cents.

@randall77
Copy link
Contributor

@randall77 randall77 commented Nov 1, 2019

Binaries built on older Mac OS X shall run on newer macOS versions, too (unless Apple broke them).

Apple is actively trying to break them. They are intentionally forcing people off of old APIs. In most cases the binaries will still work, but they won't be signable/notarizeable/whatever they call it.

So we have to move to newer APIs so that people can notarize their binaries.
So that means we can't support older OS versions that don't have the new APIs. Unless we keep multiple implementations and have a build-time switch. Or we give up on Go binaries being notarized. None of these are great options, but we have to pick one.

@probonopd
Copy link

@probonopd probonopd commented Nov 2, 2019

Notarized. This is exactly the kind of stuff why I am trying to stay away from the recent macOS releases and am still on 10.9. From release to release, macOS seems to become more cumbersome. Personally, I could live very well without app store and notarization, but I guess it may be important for some users. Oh well.

@robaho
Copy link

@robaho robaho commented Nov 2, 2019

@robaho
Copy link

@robaho robaho commented Nov 2, 2019

@gopherbot
Copy link

@gopherbot gopherbot commented Dec 5, 2019

Change https://golang.org/cl/210137 mentions this issue: doc/go1.14: preannounce dropping macOS 10.11 support

@ianlancetaylor ianlancetaylor modified the milestones: Go1.14, Go1.15 Dec 5, 2019
@gopherbot
Copy link

@gopherbot gopherbot commented Jan 8, 2020

Change https://golang.org/cl/213878 mentions this issue: doc: update the minimum supported macOS version to 10.11

@gopherbot
Copy link

@gopherbot gopherbot commented Jan 9, 2020

Change https://golang.org/cl/214057 mentions this issue: misc/cgo/test: re-enable darwin cgo tests in race mode

@gopherbot
Copy link

@gopherbot gopherbot commented Jan 9, 2020

Change https://golang.org/cl/214058 mentions this issue: runtime: re-enable TestArenaCollision on darwin in race mode

@gopherbot
Copy link

@gopherbot gopherbot commented Jan 9, 2020

Change https://golang.org/cl/214059 mentions this issue: crypto/x509: bump minimum macOS version to 10.11

gopherbot pushed a commit that referenced this issue Jan 10, 2020
Go 1.14 will be the last to support macOS 10.11.
Go 1.15 will require macOS 10.12 (Sierra).

Updates #23011

Change-Id: I8fff555e5b8fffe088e7e960e77fac9558cb74e4
Reviewed-on: https://go-review.googlesource.com/c/go/+/210137
Reviewed-by: Andrew Bonventre <andybons@golang.org>
gopherbot pushed a commit that referenced this issue Jan 10, 2020
Go 1.14 will drop support for macOS 10.10, see #23011

This reverts CL 125304

Updates #26475
Updates #26513

Change-Id: Ia13eef30f22d67103f7ae45424124fbb116e1261
Reviewed-on: https://go-review.googlesource.com/c/go/+/214057
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
gopherbot pushed a commit that referenced this issue Jan 15, 2020
Go 1.14 will drop support for macOS 10.10, see #23011

This reverts CL 155097

Updates #26475
Updates #29340

Change-Id: I64d0275141407313b73068436ee81d13eacc4c76
Reviewed-on: https://go-review.googlesource.com/c/go/+/214058
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
gopherbot pushed a commit that referenced this issue Mar 19, 2020
The minimum macOS supported version is 10.11 as of Go 1.14, see #23011.
Thus, bump macosx-version-min to 10.11

While at it, drop __MAC_OS_X_VERSION_MAX_ALLOWED as suggested by
Filippo:

  In general, I can see why we'd want to tell the libraries which
  minimum version we target so they drop compatibility with older
  versions. No idea why we'd specify a max version, unless it's to make
  sure we don't use APIs added after that version, but then it would
  have to be 1011 not 1015.

  Let's try dropping that define and see if anything blows up? ¯\_(ツ)_/¯

Change-Id: I6b76623a9404724ccda40311ff95b3475ae8a60c
Reviewed-on: https://go-review.googlesource.com/c/go/+/214059
Run-TryBot: Tobias Klauser <tobias.klauser@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Filippo Valsorda <filippo@golang.org>
gopherbot pushed a commit that referenced this issue Apr 1, 2020
Update minimum macOS supported version from 10.10 to 10.11.

Updates #23011

Change-Id: Ie10c40e882c9d309ff56041d9768afc288d0204f
Reviewed-on: https://go-review.googlesource.com/c/go/+/213878
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
@gopherbot
Copy link

@gopherbot gopherbot commented Apr 1, 2020

Change https://golang.org/cl/226859 mentions this issue: [release-branch.go1.14] doc: update the minimum supported macOS version to 10.11

gopherbot pushed a commit that referenced this issue Apr 7, 2020
…on to 10.11

Update minimum macOS supported version from 10.10 to 10.11.

Updates #23011

Change-Id: Ie10c40e882c9d309ff56041d9768afc288d0204f
Reviewed-on: https://go-review.googlesource.com/c/go/+/213878
Reviewed-by: Alexander Rakoczy <alex@golang.org>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Alexander Rakoczy <alex@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
(cherry picked from commit a1bc781)
Reviewed-on: https://go-review.googlesource.com/c/go/+/226859
Run-TryBot: Carlos Amedee <carlos@golang.org>
@gopherbot
Copy link

@gopherbot gopherbot commented May 19, 2020

Change https://golang.org/cl/234521 mentions this issue: doc: require macOS 10.12 or later

@gopherbot
Copy link

@gopherbot gopherbot commented May 19, 2020

Change https://golang.org/cl/234522 mentions this issue: internal/dl: update minimum macOS version to 10.12

@ianlancetaylor ianlancetaylor modified the milestones: Go1.15, Go1.16 May 19, 2020
gopherbot pushed a commit that referenced this issue May 19, 2020
For #23011

Change-Id: I3137820af975301e251b0a23a9349c544b42c70b
Reviewed-on: https://go-review.googlesource.com/c/go/+/234521
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
@andybons andybons added the recurring label Jul 30, 2020
gopherbot pushed a commit to golang/website that referenced this issue Aug 12, 2020
Featured downloads on golang.org/dl use the latest Go release, which
is now Go 1.15. Per golang.org/doc/go1.15#darwin, Go 1.15 requires
macOS 10.12 Sierra or later.

For golang/go#23011.

Change-Id: I9e1fabe459d74bf59661d84e4b40d39d29ce2638
Reviewed-on: https://go-review.googlesource.com/c/website/+/234522
Reviewed-by: Carlos Amedee <carlos@golang.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
9 participants
You can’t perform that action at this time.