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

Platform Requirements for 15.x #2423

Closed
1 of 2 tasks
AshCripps opened this issue Sep 1, 2020 · 17 comments
Closed
1 of 2 tasks

Platform Requirements for 15.x #2423

AshCripps opened this issue Sep 1, 2020 · 17 comments

Comments

@AshCripps
Copy link
Member

AshCripps commented Sep 1, 2020

This issue is to discuss the platform requirements for 15.x. Node.js 15 is scheduled to be released in October 2020 and End-of-Life in June 2021.

As this is a non-LTS release we dont have to worry too much about making changes to platform levels as the version is not supported very long.

Based on https://github.com/nodejs/node/blob/master/BUILDING.md, https://github.com/nodejs/build/blob/master/jenkins/scripts/VersionSelectorScript.groovy we have:

What we build and test on

Only current Tier 1 and Tier 2 platforms shown.

os-arch release machine tested on supported on
aix-ppc64 AIX 7.1 TL05 on PPC64BE with GCC 6 AIX 7.1 TL05 AIX >= 7.2 TL02
darwin-x64 macOS 10.15, Xcode Command Line Tools 10 with -mmacosx-version-min=10.13 macOS 10.14 + 10.15 macOS >= 10.11
linux-arm64 CentOS 7 with devtoolset-8 / GCC 8   kernel >= 4.5, glibc >= 2.17
linux-armv7l Cross-compiled on Ubuntu 18.04 x64 with custom GCC toolchain   kernel >= 4.14, glibc >= 2.24
linux-ppc64le CentOS 7 with devtoolset-6 / GCC 6   >=Power 8, kernel >= 3.10.0, glibc >= 2.17
linux-s390x RHEL 7 with devtoolset-6 / GCC 6 RHEL 7 with devtoolset-6 / GCC 6 kernel >= 3.10.0, glibc >= 2.17
linux-x64 CentOS 7 with devtoolset-6 / GCC 6   kernel >= 3.10, glibc >= 2.17
sunos-x64   >= 18
win-x64 and win-x86 Windows 2012 R2 (x64) with Visual Studio 2019   >= Windows 2008 R2/2012 R2

@nodejs/build Feel free to correct anymistakes ive made and to also comment in discussion whether we need to update any of these patforms.

Personally I think we should probably bump macos support from 10.11 to match the compiler target of 10.13

cc @nodejs/platform-aix @nodejs/platform-arm @nodejs/platform-macos @nodejs/platform-ppc @nodejs/platform-s390 @nodejs/platform-smartos @nodejs/platform-windows @nodejs/releasers @nodejs/v8-update

Compiler Levels

From https://github.com/nodejs/node/blob/master/BUILDING.md#supported-toolchains:

Operating System Compiler Versions
Linux GCC >= 6.3
Windows Visual Studio >= 2019 with the Windows 10 SDK on a 64-bit host
macOS Xcode >= 10 (Apple LLVM >= 10)

I think these are fine for 15 and we would at least like to keep them the same on the IBM platforms.

Actions

@richardlau
Copy link
Member

We stopped building binaries on SmartOS (but we do still run tests) so I've removed that entry from the table.

The IBM platforms look okay to me. In an ideal world we'd build releases on AIX on AIX 7.2 (to match the supported on version) but we don't yet have that capability (we need to keep an AIX 7.1 release machine until at least Node.js 10 goes End-of-Life).

@AshCripps
Copy link
Member Author

Ive updated to add compiler levels.

In terms of this

In an ideal world we'd build releases on AIX on AIX 7.2

We are working to source some 7.2 machines for the CI.

@rvagg
Copy link
Member

rvagg commented Sep 1, 2020

macOS - should we bump to Xcode to at least 11? 12 is the current one and it seems like dead-weight to be forcing ourselves to ensure >=10 support when the vast majority of users will be bumping theirs.

Linux looks fine to me, but I'm mainly interested to hear from the @nodejs/v8-update on the future of C++ support in V8 and how far GCC 6 is going to get us. 15.x is short-lived but if we think we'll need to bump to GCC 8+ for 16.x then we could at least be starting that process now–it'll likely be difficult for the IBM platforms and the ARM cross compiler will need work from me so we might not get it fully done even if we wanted to for 15.x.

Windows needs @joaocgreis to tell us whether 2012 + 2019 is good enough.

@nschonni
Copy link
Member

nschonni commented Sep 1, 2020

Mainstream support for 2012 R2 is done, but the extended support goes to October 10th, 2023 https://support.microsoft.com/en-ca/lifecycle/search?alpha=Windows%20Server%202012%20R2

VS 2019 (16.4+) looks to be the minimum that will be supported till October 2021 https://docs.microsoft.com/en-us/visualstudio/releases/2019/servicing

@AshCripps
Copy link
Member Author

@rvagg I agree with the bump with to xcode, another point is whether we are explict on our support for 10.16? I know arm is progressing but I havent tested on intel yet but I assume it should be working all fine.

You are right there would be some difficulties with bumping GCC on IBM platforms but I will wait from someone from V8 to chime in before we make any decisions.

@AshCripps
Copy link
Member Author

@rvagg with the xcode comment turns out if we want to bump our min. xcode we would have to bump our minimum macos level too - xcode 11 is only support by 10.14+ plus. https://en.wikipedia.org/wiki/Xcode#Xcode_11.x_-_12.x_(since_SwiftUI_framework)

@aixtools
Copy link

aixtools commented Sep 4, 2020 via email

@AshCripps
Copy link
Member Author

@aixtools we have 3 AIX7.1 machines provided to us and maintained by the IBM garage in Poughkeepsie. They are seperate from OSUOSL and are 7.1 because I believe we needed some 7.1 machines at the time. I had tested the binary compatabillity but didn't know about the builddate that is good to know.

@aixtools
Copy link

aixtools commented Sep 7, 2020 via email

@targos
Copy link
Member

targos commented Sep 11, 2020

Coming from nodejs/node#34337 (comment)

It looks like Chromium is going to target C++17 by mid-2021: https://chromium.googlesource.com/chromium/src/+/master/styleguide/c++/c++.md#modern-c_features

C++17 seems to be fully supported by:

@rvagg
Copy link
Member

rvagg commented Sep 12, 2020

Thanks @targos! That's what we were looking for.

So ... devtoolset-7, how do IBM folks feel about that as a target for 16.x at the latest? How close are the platforms we care about to having that available?

@joaocgreis
Copy link
Member

Windows 2012 and VS 2019 for the build machine look good. For running, Windows 2008 is no longer supported, so only 2012R2 and above (BUILDING.md looks good, it's just the table above).

@AshCripps
Copy link
Member Author

@rvagg Sorry for the late response had to organise some interal discussions to get the answer. For IBM platforms we would like to target GCC8 for 16.x but ask if we can delay the switch on master to mid-Feburary next year to ensure the compilers for current and future IBM platforms are ready.

@rvagg
Copy link
Member

rvagg commented Sep 21, 2020

@AshCripps sounds reasonable to me, let's make sure we work on this early though, we should at least start migrating the x64 machines to support gcc8 not long after 15.x goes out. The scramble to make everything happen at once is always awkward and we'll have work to do in the compiler selector scripting, jenkins, ansible, ando ther places - it'd be good to make sure we're actively working on that so we don't end up scrambling in the last month. I certainly don't want to be doing that.

@AshCripps
Copy link
Member Author

@rvagg so are we in agreement for 15.x then? if so Ill close this issue and open a new tracker issue for the 16.x updates.

cc @nodejs/build

@rvagg
Copy link
Member

rvagg commented Sep 24, 2020

I think so

@AshCripps
Copy link
Member Author

ok closing issue - if anything comes to anyones mind feel free to reopen

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment