-
Notifications
You must be signed in to change notification settings - Fork 29
Add detecting and tagging VSCode builds #384
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
base: main
Are you sure you want to change the base?
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.
LGTM with one question
@@ -132,6 +134,8 @@ public void execute(BuildResultAdapter buildResult) { | |||
tagIde("IntelliJ IDEA", props.get(SYSTEM_PROP_IDEA_VERSION).get()); | |||
} else if (props.get(SYSTEM_PROP_ECLIPSE_BUILD_ID).isPresent()) { | |||
tagIde("Eclipse", props.get(SYSTEM_PROP_ECLIPSE_BUILD_ID).get()); | |||
} else if (props.get(ENV_VAR_VSCODE_PID).isPresent()) { | |||
tagIde("VSCode", ""); |
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.
Are we certain VSCode provides no version information that we can access?
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.
If Clay's suggestion is to register VS Code version information, I think the "Gradle for Java" extension version would also be relevant.
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.
That would all be great and all, but we don't have that info. Here is a scan with all the env vars, sys props, and proj props printed out (diff).. And no version information.
The VS Code I built this with is v 1.99.3, closest info I can find is VSCODE_IPC_HOOK, but I wouldn't base that info off a path, which can probably be changed in a future version / OS... plus, it doesn't even give us the full version.
As for the "Gradle for Java" extension, this was built with 3.16.4, which does appear in 4 places in the above scan, but it's always in a path, which can again probably be changed.
But if you can find either the VSCode version or the "Gradle for Java" extension version that's "stable", I'm all for it 😄 .
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.
How about parsing code --version
?
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.
There's also code --list-extensions --show-versions
for extensions.
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.
@erichaagdev, are you sure that code
is always set up for cli usage?
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 wouldn't say "always", but I was under the impression it comes with the main app installation by default.
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.
Visual Studio Code has a powerful command-line interface built-in that lets you control how you launch the editor. You can open files, install extensions, change the display language, and output diagnostics through command-line options (switches).
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.
Yes, however:
Note: Users on macOS must first run a command (Shell Command: Install 'code' command in PATH) to add VS Code executable to the PATH environment variable. Read the macOS setup guide for help.
Windows and Linux installations should add the VS Code binaries location to your system path. If this isn't the case, you can manually add the location to the Path environment variable ($PATH on Linux). For example, on Windows, the default VS Code binaries location is AppData\Local\Programs\Microsoft VS Code\bin. To review platform-specific setup instructions, see Setup.
Insiders: If you are using the VS Code Insiders preview, you launch your Insiders build with
code-insiders
.
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'm happy to add this and we can just do best effort here, if that's what we want to do. Perhaps best if we discuss it on our sync.
@@ -132,6 +134,8 @@ public void execute(BuildResultAdapter buildResult) { | |||
tagIde("IntelliJ IDEA", props.get(SYSTEM_PROP_IDEA_VERSION).get()); | |||
} else if (props.get(SYSTEM_PROP_ECLIPSE_BUILD_ID).isPresent()) { | |||
tagIde("Eclipse", props.get(SYSTEM_PROP_ECLIPSE_BUILD_ID).get()); | |||
} else if (props.get(ENV_VAR_VSCODE_PID).isPresent()) { | |||
tagIde("VSCode", ""); |
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.
If Clay's suggestion is to register VS Code version information, I think the "Gradle for Java" extension version would also be relevant.
Co-authored-by: Gabriel Féo <[email protected]> Signed-off-by: Gašper Kojek <[email protected]>
As proposed in the discovery doc, I've implemented supoprt for detecting and tagging builds triggered in VSCode. That includes "sync" builds, as well as regular builds, triggered via gradle-java VSCode extension.
Detection of VSCode builds is based on the
VSCODE_PID
env var, which we expect to always be set.I will open similar PRs for other CCUD implementations once this is approved.