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

Drop OS X 10.5 and 10.6 support in 6.0 #5731

Closed
ofrobots opened this issue Mar 15, 2016 · 43 comments
Closed

Drop OS X 10.5 and 10.6 support in 6.0 #5731

ofrobots opened this issue Mar 15, 2016 · 43 comments
Labels
discuss Issues opened for discussions and feedbacks. macos Issues and PRs related to the macOS platform / OSX.

Comments

@ofrobots
Copy link
Contributor

Similar to #3804 proposing dropping support for Windows XP and Vista in 6.0. This would be a good time to also consider dropping support for Mac OS X 10.5 and 10.6.

  • OS X 10.5 (Leopard) has been unsupported as of June 23, 2011 and OS X 10.6 (Snow Leopard) has been unsupported as of Feb 2014.
  • I couldn't find any existing documentation on the minimum version of OS X we support for Node – are these even supported today?
  • Chrome dropped support for OS X 10.5 a long time ago and in November 2015 announced end of support for 10.6, 10.7 and 10.8.
  • I anticipate that V8 will start depending on C++11 library features going forward. On a Mac, this requires linking against libc++ which is only available from 10.7 onwards.
  • Do we have some status (e.g. from npm) if there is a non-trivial number of users affected by this? Unlike Windows, I don't expect a significant number of users stuck on old versions. If the usage numbers are low for 10.7 and 10.8, we should consider if we should still continue supporting those in 6.0.

/cc @nodejs/ctc

EDIT: typos.

@ofrobots ofrobots added discuss Issues opened for discussions and feedbacks. macos Issues and PRs related to the macOS platform / OSX. labels Mar 15, 2016
@rvagg
Copy link
Member

rvagg commented Mar 15, 2016

/cc @nodejs/build we were discussing OSX CI today and talking about going for a new hosting option that may enable testing back to 10.7. atm we only test 10.10 so it's hard to say we have "official" support for anything else.

@Fishrock123
Copy link
Contributor

I don't think we officially support anything besides 10.10 and 10.11 right now, so I don't see much problem in us "dropping" working functionality on < 10.7

@jbergstroem
Copy link
Member

Can we confirm that node.js even builds on 10.5,10.6?

We might encounter issues deviating from Chrome's (upstream's) decision process, but sticking with 10.7 as long as possible (libc++) would be nice. Hopefully we'll have test coverage for this soon enough.

@mhdawson
Copy link
Member

We build internally on 10.8 but that's as far back as we go.

@ChALkeR
Copy link
Member

ChALkeR commented Mar 17, 2016

Note that everything up to 10.8 does not even receive security updates from Apple (for quite a long time, btw).

Not exactly sure about 10.9, but it also looks like it's not supported by Apple anymore (I'm talking about the secruity updates now).

10.10 and 10.11 are fine.

@ChALkeR
Copy link
Member

ChALkeR commented Mar 17, 2016

Chrome dropped support for OS X 10.5 a long time ago and in November 2015 announced end of support for 10.6, 10.7 and 10.8.

Why not drop everything up to 10.8 then? As I understood it, those are not supported by Chrome, and are not supported by Apple.

@ofrobots
Copy link
Contributor Author

@ChALkeR As I haven't seen node usage data for old Mac OS X versions, I didn't want to take a too aggressive stance in dropping support. I am comfortable asserting that we should not support <= 10.6. Based on the feedback here, this sound uncontroversial.

There might be some value in being a bit more aggressive here and dropping support for <= 10.8. The build WG has decided to test as far back as 10.7, so we should align with or adjust that decision. @jbergstroem: was there a reason 10.7 was picked?

@jbergstroem
Copy link
Member

@ofrobots just to make it clear: 10.7 is my opinion and not representing the build group. I'm happy to have a chat with the other guys and give a slightly more formal decision. The main problem for us right now is that we don't have enough hardware/os'es to test on. If your conclusion is that 10.8 is the better option then lets have that as baseline in this discussion instead.

@mhdawson
Copy link
Member

mhdawson commented Mar 18, 2016

FYI - https://groups.google.com/forum/#!topic/v8-users/Io_bXZ2bGG4

v8 is raising minimum to 10.7 for 5.1.

I think that's a good rational for moving to 10.7 as well but does not mean we can't pick a later one like 10.8 if that makes sense.

@corbinu
Copy link

corbinu commented Mar 18, 2016

Based on a quick look at OS support for Intel Macs I would recommend 10.7 as it seems every mac that can run 10.8 can be upgraded to 10.11

So 10.7 is the most likely case for a user being excluded by their hardware.

@jbergstroem
Copy link
Member

Libuv is gunning for 10.7 as well: libuv/libuv#758

@rvagg
Copy link
Member

rvagg commented Mar 22, 2016

+1 on 10.7 onward then, but do we actually need to document this anywhere? afaik we don't maintain an official list, but we probably should do .. maybe this is something @nodejs/build should maintain.

@jbergstroem
Copy link
Member

I'd preferably want to avoid taking this decision until we're actually testing OS X properly, but thats unrealistic in the near future.

@rvagg: Yeah, might be time to revamp a supported os/toolchain list (as well as "known to work" which we with enough maturity/test coverage can grow into supported). That likely belongs with the @nodejs/build group.

@ChALkeR
Copy link
Member

ChALkeR commented Apr 17, 2016

Note that Google dropped 10.7 and 10.8 support in Chrome 50. And we are using v8 5.0 in Node.js 6.0.
Also, 10.7 and 10.8 do not receive security updates from Apple.

I would vote for dropping support for 10.7 and 10.8 in 6.0 (if it's not too late).

@jasnell
Copy link
Member

jasnell commented Apr 19, 2016

Agreed. It's not too late. v6 isn't out the door yet :-)

@bnoordhuis
Copy link
Member

Is the idea to raise MACOSX_DEPLOYMENT_TARGET in common.gypi to 10.9 so the binary will refuse to run on older OS X versions? Or is it a "you're on your own with <= 10.8"?

@ChALkeR
Copy link
Member

ChALkeR commented Apr 19, 2016

@bnoordhuis Could we make it a warning instead? Both in the installer and in the console, perhaps.

@bnoordhuis
Copy link
Member

@ChALkeR Warning on start-up? Can do. From the installer? Don't know, not an installer guru.

@jbergstroem
Copy link
Member

We're treading on loose ground. No testing in CI for 10.7 or 8 (or 9). Hard to tell what's working or not, what's tested or not.

@ChALkeR
Copy link
Member

ChALkeR commented Apr 22, 2016

@jbergstroem Am I correct that the only tested version is 10.10?

@jbergstroem
Copy link
Member

@ChALkeR yes.

@ChALkeR
Copy link
Member

ChALkeR commented Apr 23, 2016

@jbergstroem So, what's your considerations, then? Are you saying that introducing a warning in 10.8 but not in 10.9 would make it seem like we actually test 10.9?

@bnoordhuis Considering that, I think I would be fine with just bumping MACOSX_DEPLOYMENT_TARGET instead (probably to 10.9) and give the users the opportunity to build for 10.7/10.8 themselves, if they really need it (as with Windows XP).

Perhaps we should discuss that at the next CTC meeting? We don't have much time before 6.0 release.

@ChALkeR ChALkeR added this to the 6.0.0 milestone Apr 23, 2016
@bnoordhuis
Copy link
Member

I think I would be fine with just bumping MACOSX_DEPLOYMENT_TARGET instead (probably to 10.9) and give the users the opportunity to build for 10.7/10.8 themselves

Just so there is no misunderstanding here, raising MACOSX_DEPLOYMENT_TARGET means the binary won't run on older systems, even when you build from source. You'd have to go in and back out the changes to the *.gyp and *.gypi files in order to make it work again.

@ChALkeR
Copy link
Member

ChALkeR commented Apr 23, 2016

@bnoordhuis Yes, that's exactly what I was thinking.

@ofrobots
Copy link
Contributor Author

I would rather suggest a documentation change saying that bugs reported with unsupported OS versions might not be supportable. Let us not go out of way to make it very hard for users to run this on older systems.

@jasnell
Copy link
Member

jasnell commented Apr 23, 2016

+1 to the doc change for the time being.
On Apr 23, 2016 7:06 AM, "Ali Ijaz Sheikh" [email protected] wrote:

I would rather suggest a documentation change saying that bugs reported
with unsupported OS versions might not be supportable. Let us not go out of
way to make it very hard for users to run this on older systems.


You are receiving this because you are on a team that was mentioned.
Reply to this email directly or view it on GitHub
#5731 (comment)

@ChALkeR
Copy link
Member

ChALkeR commented Apr 24, 2016

@ofrobots @jasnell Perhaps we could mix it? E.g. exclude 10.5 and 10.6 via MACOSX_DEPLOYMENT_TARGET and other ones though the documentation?

Though, as @jbergstroem noted, it's not clear what OS X versions are actually «supported», except for 10.10.

@jbergstroem
Copy link
Member

@ChALkeR I'm just generally uncomfortable making claims or arguments on versions we don't test properly. The build group are trying to fill this space but until then I'm relying on others (like voices in this thread) to make a decision.

@jasnell
Copy link
Member

jasnell commented Apr 25, 2016

If we're going to do this in v6 we need to get this in today. For now, I think I'm most comfortable only documenting that we do not guarantee that things will run on lower OSX levels. We can officially pull support for those later on.

@ChALkeR
Copy link
Member

ChALkeR commented Apr 25, 2016

@jasnell Lower than which version? 10.10?

@jasnell
Copy link
Member

jasnell commented Apr 25, 2016

Yes, given that we only test on 10.10 that's the minimum we can guarantee currently

@ChALkeR
Copy link
Member

ChALkeR commented Apr 25, 2016

@jasnell That does look reasonable to me given the current situation with tests.

@ChALkeR
Copy link
Member

ChALkeR commented Apr 25, 2016

@jasnell Would that mean that we will be able to bump MACOSX_DEPLOYMENT_TARGET later in 6.x branch or not?

@ChALkeR
Copy link
Member

ChALkeR commented Apr 25, 2016

/cc @nodejs/documentation

@jasnell
Copy link
Member

jasnell commented Apr 26, 2016

Since there's been no action on this yet I need to pull this off the 6.0.0 milestone. It would be great if we had a documentation update but this can't hold up the v6 release.

@jasnell jasnell removed this from the 6.0.0 milestone Apr 26, 2016
@ChALkeR
Copy link
Member

ChALkeR commented Apr 26, 2016

@ofrobots @jbergstroem @bnoordhuis
One last attempt.

We can't state the supported versions in the documentation until those are actually tested — that is understood.

But is there any chance that we could bump MACOSX_DEPLOYMENT_TARGET to 10.7 in 6.0? We can deal with documentation changes later, covering 10.7, 10.8 and 10.9, whatever we decide to do with those.

We currently target 10.5.

Libuv is going to drop 10.6 in v2: libuv/libuv#758. Would an update to libuv v2 force us to make a semver-major bump (i.e. 7.x)?

@bnoordhuis
Copy link
Member

But is there any chance that we could bump MACOSX_DEPLOYMENT_TARGET to 10.7 in 6.0?

Bumping it is trivial, that's just this patch:

diff --git a/common.gypi b/common.gypi
index c06af68..4174e8c 100644
--- a/common.gypi
+++ b/common.gypi
@@ -311,7 +311,7 @@
           'GCC_ENABLE_PASCAL_STRINGS': 'NO',        # No -mpascal-strings
           'GCC_THREADSAFE_STATICS': 'NO',           # -fno-threadsafe-statics
           'PREBINDING': 'NO',                       # No -Wl,-prebind
-          'MACOSX_DEPLOYMENT_TARGET': '10.5',       # -mmacosx-version-min=10.5
+          'MACOSX_DEPLOYMENT_TARGET': '10.7',       # -mmacosx-version-min=10.7
           'USE_HEADERMAP': 'NO',
           'OTHER_CFLAGS': [
             '-fno-strict-aliasing',

Feel free to steal and PR if you feel strongly about the subject.

@ChALkeR
Copy link
Member

ChALkeR commented Apr 26, 2016

@bnoordhuis Yes, I am aware that bumping is trivial (thanks for the exact patch, though!), but @ofrobots above explicitly stated that he is against a non-documentation change: #5731 (comment).

This is why I decided to ask first.

@bnoordhuis
Copy link
Member

Oh, like that. I personally don't have a very strong opinion but if I had to make the decision, I'd refrain from bumping until we know for sure it doesn't build on older versions anymore. Just advertise clearly in the release notes that only OS X >= 10.8 (or 10.9 or 10.10) is supported.

@ChALkeR
Copy link
Member

ChALkeR commented Apr 26, 2016

@bnoordhuis

Just advertise clearly in the release notes that only OS X >= 10.8 (or 10.9 or 10.10) is supported.

That we can't do for any version prior to 10.10, for the reasons @jbergstroem stated — CI only has 10.10. And stating that only 10.10 is supported would be a bit too harsh, perhaps.

@bnoordhuis
Copy link
Member

I can live with that (but then I don't use OS X much.) We'd have the same issue if we bumped MACOSX_DEPLOYMENT_TARGET to anything < 10.10.

@ofrobots
Copy link
Contributor Author

There is consensus on this issue that the minimum version should be bumped to at least 10.7. There has been some debate whether we should be more aggressive.

I'm fine with the patch #5731 (comment) as proposed by @bnoordhuis.

ChALkeR referenced this issue Apr 26, 2016
Refs: nodejs/build#367

libuv is going to drop 10.6 in v2.
Ref: libuv/libuv#758

OS X versions below 10.9 are not supported by Apple anymore and do not
receive security patches.

PR-URL: #6402
Reviewed-By: Ali Ijaz Sheikh <[email protected]>
Reviewed-By: Evan Lucas <[email protected]>
Reviewed-By: Ben Noordhuis <[email protected]>
Reviewed-By: Colin Ihrig <[email protected]>
Reviewed-By: Fedor Indutny <[email protected]>
Reviewed-By: Myles Borins <[email protected]>
@jasnell
Copy link
Member

jasnell commented Apr 26, 2016

this was landed. Closing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discuss Issues opened for discussions and feedbacks. macos Issues and PRs related to the macOS platform / OSX.
Projects
None yet
Development

No branches or pull requests

9 participants