-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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: remove support for VS2015 #16969
Conversation
/CC @nodejs/lts for consideration whether this is semver-major or not. |
/CC @nodejs/build we need to have the nightly release machine ready, and exclude VS2015 from CI. |
@joaocgreis this one's for you, could you document any actions you take in this thread for us for future reference please? Re semver-major, on balance I'd prefer this be done at the semver-major boundary to cause minimal disruption. |
I'd say it's not semver-major, but I think we should only change 9.x and up. |
About semver: it doesn't apply to what we support to build (but it'd be nice if we could treat removals like this as breaking, to minimize impact for developers and custom build farms). Semver should apply to what users need to have installed on their machines to use node, but this time we are oddly safe in that because VS2015 and VS2017 are binary compatible, and for now we still support VS2015 for building native modules. Still, it wouldn't be surprising to see odd issues appear after a change like this. So @nodejs/lts my recommendation is that we do this for v10, and possibly also for v9.x but only if needed. Do we need to update V8 in v9.x to an incompatible version (6.4)? Do we know when? If we need to, having it done for v10 before will make the transition smoother. I am working on the release machine, as agreed before. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This cannot land until the test and release infra is ready. Also, this should be treated as semver-major unless there is a strong reason not to (update V8 to an incompatible version in 9.x).
I'd argue that embedders and vendors are users, and breaking changes to the build process should be semver-major. |
I disagree. There are parallels with the centos5 debate: it's reasonable to expect your users to have an up-to-date system. Downstream users not willing to do that can put in the work, that's not our responsibility. |
Release machines ready, the next nightlies of v10 should be built with VS2017. If all goes well and no issue appears in the next few days, I'll go ahead with the modifications to the test CI required for this PR to pass CI and land. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Infrastructure is ready. LGTM pending CI (needs a rebase).
CI is green, landing in 24 hours. |
@@ -185,20 +181,19 @@ if %target_arch%==x64 if %msvs_host_arch%==amd64 set vcvarsall_arg=amd64 | |||
|
|||
@rem Look for Visual Studio 2017 | |||
:vs-set-2017 | |||
if defined target_env if "%target_env%" NEQ "vs2017" goto vs-set-2015 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line should not be removed, it'll be needed again when we add a new VS version.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would need to be changed now anyway. And when we add a new VS version, it will need to be changed again. I'd rather remove it now and add it back if and when it's needed than keep a useless line around for likely at least a year.
That said, I don't really mind either way. If anyone else feels strongly about it, I'll put it back.
FWIW it was also removed in #8067.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A new version would go on top, so it would stay the same if changed now. I'd rather these blocks behaved more atomically, and I see this as part of the vs2017
parameter. But it works either way, feel free to go ahead.
AFAIR the push to stop supporting centos5 was because it went EoL, and that's why we added the platform EoL disclaimer - #12672 IMHO we should minimize breaking build flow, unless there's a good reason to. In this example if we want to bump V8 to 6.4 in node9. Until then I'm Ok with landing this as is with the |
@seishun this needs a rebase |
New CI due to rebase: https://ci.nodejs.org/job/node-test-pull-request/12030/ |
Refs: #16868
Previous similar PRs for the curious:
#156
#8067
@nodejs/build VS2015 needs to be removed from CI (at least on master for now. I'm not sure how "backporting" to 9.x works). Do I need to create an issue in nodejs/build for that?
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passesAffected core subsystem(s)
build