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

Support matrix for Windows getting too large #343

Closed
JayBeavers opened this issue Oct 28, 2013 · 5 comments
Closed

Support matrix for Windows getting too large #343

JayBeavers opened this issue Oct 28, 2013 · 5 comments
Labels

Comments

@JayBeavers
Copy link
Contributor

I'm working on making changes to support VS 2013 and I was noticing that the test matrix is...wow...on Windows. Here's what I'm looking at:

Windows XP x86
x Windows Vista x86
x Windows Vista x64
Windows 7 x86
Windows 7 x64
Windows 8 x86
Windows 8 x64

multiplied by:

Windows 7 SDK
Windows 8 SDK
Windows 8.1 SDK
VS 2010 Express
VS 2010 Full
VS 2012 Express
VS 2012 Full
VS 2013 Express
VS 2013 Full

Assuming we don't officially support Vista, we're still looking at a test matrix of 9 x 5 == 45 combinations.

I'd like to suggest we call out our officially supported matrix. Chromium build is called out at Windows 7 or later, x86 not supported, VS 2010SP1 + Windows 8 SDK.

This is a little funky, given that VS 2010 is a couple of generations back. My suggestion for official support is:

Windows 7 x86, Windows 7 x64, Windows 8 x64
Windows 8.1 SDK, VS 2012 Express, VS 2012 Full, VS 2013 Express, VS 2013 Full

That's still a cross matrix of 15, so I'd recommend we test / fully support:

Windows 7 x86 + VS 2012 Express
Windows 7 x64 + VS 2013 Full
Windows 8.1 x64 + Windows 8.1 SDK

And we support (but do not test) VS 2012 Full and VS 2013 Express.

I also suggest we pull out support for VS 2010 (Express and Full) and Windows SDKs < 8.1 and simplify the logic.

@picisaurus, @isaacs, @sblom this has implications for Node on Windows support as well.

@unwiredben
Copy link

http://www.microsoft.com/visualstudio/eng/downloads only shows Visual Studio Express 2010 and 2013, so I think the matrix should use Win7 x86 + VS2010 Express as baseline and ignore VS2012.

@JayBeavers
Copy link
Contributor Author

FYI, VS 2010 doesn't support x64 until you apply SP1. I've run into a couple of bugs with users on x64 OSes and unpatched VS 2010 which generates wierd errors due to VS trying to compile x86 and link to x64 nodejs binaries.

Given the prevalence of x64 Windows today, I suggest we drop VS 2010 support as well and set the matrix as Win 7/8/8.1 with VS 2013.

@springmeyer
Copy link
Contributor

FYI, VS 2010 doesn't support x64 until you apply SP1. I've run into a couple of bugs with users on x64 OSes and unpatched VS 2010 which generates weird errors due to VS trying to compile x86 and link to x64 nodejs binaries.

I think this describes my experience well. I have just started providing binaries for both 32 and 64 bit windows binaries for node-sqlite3 using VS 2010 express and this script. the Win7 console works to build 64 bit but I see cannot open input file 'kernel32.lib' errors unless I switch back to the VS 2010 console.

I think clearly calling out the ideal compiler (and having it be the same one that the node binaries are built with) on the node-gyp main README would be great.

@JayBeavers
Copy link
Contributor Author

You are completely right and I am behind on getting the readme updated to reflect best practice.

@Trott
Copy link
Member

Trott commented Mar 13, 2018

Should this remain open? @nodejs/node-gyp

@rvagg rvagg closed this as completed Jun 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants