[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-openjfx-dev
Subject:    Re: RFR: 8266396: Save VSCMD_DEBUG output in Windows build [v3]
From:       John Neffenger <jgneff () openjdk ! java ! net>
Date:       2021-05-31 3:13:21
Message-ID: K67hVNLKcem9IFY42310ddcghSnmLKdq4sSpP_2ZU8g=.57060a0a-d456-4808-b4f6-2415e8186e03 () github ! com
[Download RAW message or body]

On Tue, 11 May 2021 01:17:32 GMT, John Neffenger <jgneff@openjdk.org> wrote:

> > The Windows build calls a series of batch files to get the Visual Studio paths \
> > and environment variables. The batch files are a black box: any messages they \
> > print are discarded. If anything goes wrong, the only signs are a vague Gradle \
> > exception and a corrupted properties file. 
> > This has been causing problems for years. There are at least 49 messages on the \
> > mailing since 2017 that discuss the exception and ways to work around it. 
> > This pull request lets you enable the batch file messages, shedding light on \
> > their internal workings and allowing you to catch any errors at their source. \
> > Specifically, it adds the variable `VSCMD_DEBUG` to the environment of \
> > `genVSproperties.bat` and documents its use. 
> > ### Before
> > 
> > For example, if your `PATH` environment variable is missing \
> > `C:/Windows/System32`, like mine was, you'll see the following errors: 
> > 
> > $ gradle sdk
> > Dependency verification is an incubating feature.
> > 
> > FAILURE: Build failed with an exception.
> > 
> > * Where:
> > Script 'C:\cygwin64\home\john\src\jfx\buildSrc\win.gradle' line: 108
> > 
> > * What went wrong:
> > A problem occurred evaluating script.
> > > FAIL: WINSDK_DIR not defined
> > 
> > ︙
> > 
> > BUILD FAILED in 4s
> > 
> > 
> > *Me:* What's a `WINSDK_DIR`? The Wiki says, "This means that you will have to \
> > define these paths manually." I guess this is normal. 😕️ 
> > ### After
> > 
> > With this change, you can set the debug level to "3" in the `win.gradle` file and \
> > get a better picture of the problem: 
> > 
> > $ gradle sdk
> > Dependency verification is an incubating feature.
> > 
> > > Configure project :
> > 'reg' is not recognized as an internal or external command,
> > operable program or batch file.
> > 'reg' is not recognized as an internal or external command,
> > operable program or batch file.
> > 'reg' is not recognized as an internal or external command,
> > operable program or batch file.
> > 
> > ︙
> > 
> > 'powershell.exe' is not recognized as an internal or external command,
> > operable program or batch file.
> > 
> > FAILURE: Build failed with an exception.
> > 
> > * Where:
> > Script 'C:\cygwin64\home\john\src\jfx\buildSrc\win.gradle' line: 108
> > 
> > * What went wrong:
> > A problem occurred evaluating script.
> > > FAIL: WINSDK_DIR not defined
> > 
> > ︙
> > 
> > BUILD FAILED in 3s
> > 
> > 
> > *Me:* Oh, it's just a "command not found" error. I'll check my `PATH`. 🤓
> 
> John Neffenger has updated the pull request incrementally with one additional \
> commit since the last revision: 
> Skip sending telemetry to fix "file in use" error

Thank you for the review, Marius.

> But turns out the whole build folder should be deleted first as otherwise you will \
> get the error again immediately.

Yes, that's a good point! If you don't delete the `build` directory after the error, \
you'll get stuck and even `gradle clean` and `gradle cleanAll` won't let you recover. \
That's not obvious the first time it happens.

> I think it will be more clear for everyone including new developers. :)

I hope so, especially considering that the Windows platform is probably our largest \
source of potential new contributors. I fell into this trap after building JavaFX on \
Windows for years, though, so it might even help old developers, too. 😄

-------------

PR: https://git.openjdk.java.net/jfx/pull/488


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic