-
Notifications
You must be signed in to change notification settings - Fork 28.9k
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
Node Interactive Code & Learn issues on Windows #16278
Comments
Here's another issue that came up twice, but only on Windows. Perhaps not related to build but certainly build-adjacent. Might be a bug in ESLint. Here it is: After running the tests, lint failed because ESLint seems to (at least on some versions of Windows) mess up matching of paths in |
I can't recommend |
Can you provide some details on why? At a cursory glance, it seems to do a lot of what's needed to build node core on windows. |
@mike-kaufman as @felixrieseberg defined it - it's a package that should not exist 😄
I do acknowledge that it works for most users, but it was geared towards those who don't care about the compiler but just want |
Also WBT does not install "Git for Windows" which is needed for running core's test suite. |
That is something I like much more. it could:
|
+1 on an opinionated dev shell & a "download & install tools script". In my experience, the install of tools is easier to get right when it is local for your enlistment (ie, don't worry about sharing of python install). That said, this "local install" may not be possible if the tool installs modify registry & env vars. |
I can't speak for anyone else, but the biggest thing that stops me from trying to improve |
@refack yes! that's exactly what I had in mind for an opinionated developer shell. Re using windows-build-tools, you make good points. However, I'm not sure what other alternatives are. I think the key requirement is a friction-free experience to have VS/tools set up exactly how Node-Core needs it. @yodurr had suggested a boxstarter script but I don't have a lot of experience around the pros and cons of that. Would love to hear other suggestions here. |
Makes eslint exclude directories without enumerating their content PR-URL: nodejs#16372 Refs: nodejs#16010 Refs: nodejs#16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
`.tmp` prefix allows easier exclusion PR-URL: nodejs#16372 Refs: nodejs#16010 Refs: nodejs#16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
also undocument the `vcbuild.bat` command since it's broken and seems to only be relevant to release builds PR-URL: nodejs#16372 Refs: nodejs#16010 Refs: nodejs#16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
A portable option exists:
A second alternative is just to run the 3 installers. In any case I believe checking the requirements are set up and respond with an informative message will cover 90% of cases. |
Makes eslint exclude directories without enumerating their content PR-URL: #16372 Refs: #16010 Refs: #16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
`.tmp` prefix allows easier exclusion PR-URL: #16372 Refs: #16010 Refs: #16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
also undocument the `vcbuild.bat` command since it's broken and seems to only be relevant to release builds PR-URL: #16372 Refs: #16010 Refs: #16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Makes eslint exclude directories without enumerating their content PR-URL: nodejs/node#16372 Refs: nodejs/node#16010 Refs: nodejs/node#16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
`.tmp` prefix allows easier exclusion PR-URL: nodejs/node#16372 Refs: nodejs/node#16010 Refs: nodejs/node#16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
also undocument the `vcbuild.bat` command since it's broken and seems to only be relevant to release builds PR-URL: nodejs/node#16372 Refs: nodejs/node#16010 Refs: nodejs/node#16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Should this remain open at this point? I imagine "yes". If so, maybe we can get a checklist of concrete actions to take? |
Just bumped into this on Mac, this looks like a eslint bug. I was on v8.x-staging. |
I think it still should remain open but I'm not sure about the concrete actions. Some of these are probably just feedback to Microsoft/VS but others are definitely Node-related. Would it fall under the purview of any working group? There probably needs to be more thinking done before producing a concrete list of items (and as an aside, I'm happy to participate in that process or help coordinate if needed) |
@joyeecheung Just a guess, but there's probably an issue with master using a leading |
@Trott Yes I think you're right, thanks! |
@digitalinfinity The appropriate working group (if any) will likely depend on the nature of the concrete actions. Maybe we should do our best to come up with a list of pain points, and then evaluate each one for which categories each one falls into:
|
Makes sense, thanks @Trott. I'll try and get a list of pain points put together and categorized in the way you suggest. I'll collate it from this thread, but if you have other threads that I should look at, I can do that too. P.S: Re bootstrapping, @bzoz just opened #17046 which should help simplify the environment setup considerably! |
#17015 will help with |
Makes eslint exclude directories without enumerating their content PR-URL: nodejs/node#16372 Refs: nodejs/node#16010 Refs: nodejs/node#16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
`.tmp` prefix allows easier exclusion PR-URL: nodejs/node#16372 Refs: nodejs/node#16010 Refs: nodejs/node#16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
also undocument the `vcbuild.bat` command since it's broken and seems to only be relevant to release builds PR-URL: nodejs/node#16372 Refs: nodejs/node#16010 Refs: nodejs/node#16278 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
The build breaks if there's a non-ASCII character on the path to the building directory. Ref: nodejs#16278 Ref: nodejs#14336
The build breaks if there's a non-ASCII character on the path to the building directory. PR-URL: #16735 Refs: #16278 Refs: #14336 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
The build breaks if there's a non-ASCII character on the path to the building directory. PR-URL: #16735 Refs: #16278 Refs: #14336 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
The build breaks if there's a non-ASCII character on the path to the building directory. PR-URL: #16735 Refs: #16278 Refs: #14336 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
FYI @felixrieseberg has updated and addressed VS2017 aspects in https://www.npmjs.com/package/windows-build-tools/ . While still doing global things, it does help quite a bit. This isn't the final answer and in general Windows experience starting with the installer in #4603 need some love. At least a "note" on the existence with a warning instead of full recommendation would help |
The build breaks if there's a non-ASCII character on the path to the building directory. PR-URL: #16735 Refs: #16278 Refs: #14336 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
The build breaks if there's a non-ASCII character on the path to the building directory. PR-URL: #16735 Refs: #16278 Refs: #14336 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
#17015 landed so we now have nicer error reporting. We also have Boxstarer script for easy installation of all needed tools: https://github.com/nodejs/node/pull/17046/files. Is there anything else to be done here? |
I am closing this as I guess it is resolved by now. If we run into new problems later on, we can always open it again. |
The build breaks if there's a non-ASCII character on the path to the building directory. PR-URL: nodejs#16735 Refs: nodejs#16278 Refs: nodejs#14336 Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
During Code & Learn at Node Interactive North America, @mike-kaufman, @rachelnicole and others observed several issues by folks building and testing with Node Core on Windows. I wanted to open this issue to capture them and also maybe use this as a discussion point for other improvements.
vcbuild improvements
Lots of folks ran into issues that could have probably been improved by doing a small amount of validation and messaging in vcbuild. Common issues were that folks did not have the right version of python, msys2 or other dependencies in the path. Additionally, a couple folks ran into really slow build times because Windows Defender was turned on and did not have the right exclusions set.
Recommendation: Introduce an opinionated developer shell for Node on Windows that validates system configuration and dependency installations and configures the paths correctly
VS installation
Lots of folks thought they had Visual C++ installed but didn't since the VS Setup is confusing. While that feedback will be communicated back to the VS team, we could probably do better by making it easier to get the build tools.
Recommendation: Update the Windows build guide to point to https://www.npmjs.com/package/windows-build-tools/ as a mechanism for setting up the build. We can certainly point folks at Code & Learn to following those steps.
Other issues
zconf.h
got renamed-git checkout --
fixed the issue but I don't know what the repro steps were that got them to that point. Calling it out here in case it rings a bell for anyone.The text was updated successfully, but these errors were encountered: