-
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,win: put all compilation artifacts into out
#27149
Conversation
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.
Not a Windows expert but the changes LGTM.
2ee659c
to
42973e6
Compare
* Add symlink from Release to out\Release for backward compat PR-URL: nodejs#27149 Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
42973e6
to
25df3c1
Compare
I've just spent a long time trying to work out why changes I made weren't being reflected when I run node.vcxproj -> out\Release\\node.exe
You do not have sufficient privilege to perform this operation.
C:\work\node\github\nodejs> i.e. Line 327 in 9b6b567
Unfortunately I didn't immediately spot this and ended up running the old Does this work on later versions of Windows without Administrator privileges? (I can't check on Windows 10 until Monday at the earliest). |
Thanks for the report.
Did vcbuild.bat exit at that point?
It was an issue that was addressed by MS for Windows 10 (at least, maybe even for Windows 8.1). On CI we do run under an admin account by in an non privileged session, so that's half way to a proper testing env (we do not CI test with Windows 7, but we do with Server2008R2 which is the equivalent Server release).
Originally I fixed that, but choose to revert because of CI legacy issues... P.S. posted a notice at https://github.com/orgs/nodejs/teams/collaborators/discussions/72 |
No it continues, which is why I missed it the first few times and only really spotted it when I cut down my
ack |
Seems at least some windows versions interpret symlinks not as folders therefore .gitignore needs some extra entries. PR-URL: nodejs#27484 Refs: nodejs#27149 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Seems at least some windows versions interpret symlinks not as folders therefore .gitignore needs some extra entries. PR-URL: #27484 Refs: #27149 Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
I think the logic added here is off. I got this from a fresh clone:
I currently just comments out this logic as a workaround (cctest does not work if I do that, it would be better if we just replace |
I fixed the permission issue by turning on Developer mode which allows mklink without administrator privileges (there is probably some group policy for this but I got lazy). A note about this should probably be PR'd into BUILDING.md... |
I'm currently setting up a new Windows 10 install and am also running into this. I'll try turning on developer mode. |
Could you check if |
C:\work\nodejs\github\node>mklink /D Release out\Release
You do not have sufficient privilege to perform this operation.
C:\work\nodejs\github\node>mklink /J Release out\Release
Junction created for Release <<===>> out\Release
C:\work\nodejs\github\node> |
Thanks! |
Solves (almost completely) the unnecessary distribution of build artifacts all over the repo.
In order to keep this semver-patch I've added a symlinking step:
https://github.com/nodejs/node/blob/2ee659cde1975a247dfa3d30d765eb9fdd3973f4/vcbuild.bat#L326-L327
Also has some small tweaks.
what's left to solve is the locations of the
.vcxproj
files. That requires a GYP patch/CC @nodejs/build-files @nodejs/platform-windows
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes