-
Notifications
You must be signed in to change notification settings - Fork 30.2k
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,win: delegate lint-cpp to make #28102
Conversation
Sadly, an error occurred when I tried to trigger a build. :( |
We don't exactly have MSYS as a prerequisite. The building guide says "Basic Unix tools required for some tests, Git for Windows includes Git Bash and tools which can be included in the global PATH." |
Oof... Yeah, I have extra MSYS tools 🤦♂ |
3700683
to
fe0a885
Compare
@targos I vendored in a minimal MSYS make to help the Windows folks. It's just 19 files and 10MB in size. Let's discuss... |
fe0a885
to
5fe633e
Compare
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.
@targos I vendored in a minimal MSYS make to help the Windows folks. It's just 19 files and 10MB in size. Let's discuss...
But that's an additional 10MB that everyone is going to download (including non-Windows users). git really isn't a good place to store binaries.
Additionally we should not be adding GPL licenses/GPL-licensed files into the source tree (even if it applies to tooling and not the code we're actually building).
Yeah I've been thinking about this... I'm thinking of packing this as a separate archive, and adding a "win-lint-build" step.
Ack. I was also reading reviews of GPL, in the context of this use case... AFAICT an independent pack should solve that. |
5fe633e
to
bd1b911
Compare
@richardlau went in a different direction; best effort search in the Path and attempt calling wsl. |
I've dismissed my objection as it's been addressed. I'm not explicitly approving because I'm -0.5 on a new requirement of GNU make to lint on Windows. |
FTR, required just for linting C/C++, but I understand the hesitation. I do believe that having a minimal make+bash easy to deploy package could allow us to eliminate much of the disparity and duplication between |
Can we move the scripting to Python instead? I understand that on Windows we won't get the dependency update management from Make, but it has always been that way? |
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.
I agree with @joyeecheung, it would be better to have this in Python to be available everywhere without any added dependencies. But this is better than what is currently in master, we can work on the Python version later.
* look for GNU Make in the Path or use wsl PR-URL: nodejs#28102 Fixes: nodejs#28086 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: João Reis <reis@janeasystems.com>
bd1b911
to
4b1bcae
Compare
The script to collect and lint C/C++ files has become unruly, and carried a significant maintenance burned. IMHO delegating this task to
make
is the optimal solution, since we already have MSYS as a prerequisite for developing.Patch toMakefile changes moved to build: more portable Makefile #28108Makefile
is so that$(shell ...)
expressions are evaluated only when needed.Fixes: #28086
/CC @nodejs/build-files @nodejs/platform-windows
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes