Uh oh!
There was an error while loading. Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork 34.2k
inspector: do not depend on v8's inspector_protocol generator#21975
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
Uh oh!
There was an error while loading. Please reload this page.
Conversation
aslushnikov commented Jul 25, 2018 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
aslushnikov commented Jul 25, 2018
@ak239 can you guys please take a look? |
addaleax commented Jul 25, 2018
@aslushnikov Can you update the commit message to follow the guidelines? /cc @nodejs/v8-inspector |
addaleax commented Jul 25, 2018
Also, since this brings in multiple new directories in |
eugeneo left a comment
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.
+1, but please address the comments raised by @addaleax
aslushnikov commented Jul 25, 2018
@addaleax I think it's all good now. Please let me know if I'm missing something.
I ran the tool, but it just removed seemingly unrelated licenses from the LICENSE file. I wonder if it works as expected. |
refack commented Jul 25, 2018 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
Hello @aslushnikov and thank you for the contribution! Lines 1055 to 1079 in 83474ae
I think you can solve the fail on the V8 buildbot by updating the GN that is used to build node, and make sure all the templates are dependencies (or force a rerun on every build). /CC @nodejs/build-files @nodejs/v8-update |
addaleax commented Jul 25, 2018
@nodejs/collaborators I’m not sure who’d be best pinged for this question, so, sorry to bother all of you. |
alexkozy commented Jul 25, 2018
@refack, |
refack commented Jul 25, 2018
Let's separate two concerns.
There should be only one instance of the tool in the code base. |
eugeneo commented Jul 25, 2018
@refack divergent templates will not break the code. Node Inspector calls into V8 inspector through the stable API and does not directly interact with the code generated with those templates. |
aslushnikov commented Jul 25, 2018
Trott commented Jul 25, 2018
@aslushnikov So, currently the license-builder.sh file is slightly broken in that it includes entries for three things that don't ship with our source code and therefore don't need to be included. But you can ignore those errors. I've opened a PR to fix it. (#21979) What needs to happen in this PR is an entry needs to be added for the dependency or dependencies added here, and then the script should be run and the license file updated as part of the PR. Hope that helps! |
refack commented Jul 25, 2018
refack left a comment
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.
This should not land as a dep it should be in tools.
aslushnikov commented Jul 25, 2018
@refack I updated the description; hopefully it now does a better job explaining what's going on. |
eugeneo commented Jul 26, 2018
@refack I believe this PR is trying to address Node build breaking when V8 moves to a newer version of the inspector_protocol generator. There is no reason to require them to use same generator and templates. @aslushnikov I am unable to build it locally even with a clean build: |
aslushnikov commented Jul 26, 2018
@Trott thanks, I see what's going on. Once your PR lands, I'll rebaseline atop; I included your changes here meanwhile.
@refack done.
@eugeneo that's right; I was compiling against v8/node instead of nodejs/node. I updated the PR to include an older version of the generators that is currently used in the node.js. |
hashseed commented Jul 26, 2018
Haven't reviewed yet, but I'm generally +1 on this. I've recently been bitten by this when a new inspector_protocol rolled into V8. I scrambled to update V8/node to make sure our CI for Node.js didn't break. Decoupling Node.js from V8 in this regard makes sense. Consider this the same as with ICU. |
eugeneo commented Jul 26, 2018
The fix works for me, I can now build locally and "make tests' passes! 👍 |
ofrobots commented Jul 28, 2018
@refack, your concern about |
alexkozy commented Aug 5, 2018
This PR is blocking us from rolling new inspector_protocol version to V8. |
Trott commented Aug 5, 2018
The other license-builder PR has landed so this one can be rebased. We'll need a CI run once that happens. |
Currently, node.js depends on [inspector_protocol](https://www.google.com/url?q=https://chromium.googlesource.com/deps/inspector_protocol/) indirectly through the dependency on v8. This is a dependency violation that will make it hard to roll V8 into Node if V8 gets a newer inspector protocol version with incompatible API. In fact, this surfaced on one of our bots when we tried to roll new inspector_protocol into V8: [upstream patch](https://chromium-review.googlesource.com/c/v8/v8/+/1149321). This patch adds inspector protocol and its required dependencies to node deps: - jinja2 - markupsafe
d98e288 to 1ece530Compareaddaleax commented Aug 9, 2018
I agree, @refack’s change request seems to have been addressed. (That being said, I was surprised by it, I can’t find an explanation for it in this thread and, quite frankly, I disagree with it – dependencies that influence directly what goes into the |
alexkozy commented Aug 10, 2018 • edited
Loading Uh oh!
There was an error while loading. Please reload this page.
edited
Uh oh!
There was an error while loading. Please reload this page.
CI once again, failures on existing one looks unrelated: https://ci.nodejs.org/job/node-test-pull-request/16326/ |
Trott commented Aug 10, 2018
Resume Build: https://ci.nodejs.org/job/node-test-pull-request/16329/ |
alexkozy commented Aug 10, 2018
It looks like latest CI finished successfully. I will merge this PR later today. |
Based on development process, I can see that requested changes have been made and can dismiss request changes in this case.
alexkozy commented Aug 11, 2018
Landed in e039524 |
Currently, node.js depends on inspector_protocol indirectly through the dependency on v8. This is a dependency violation that will make it hard to roll V8 into Node if V8 gets a newer inspector protocol version with incompatible API. In fact, this surfaced on one of our bots when we tried to roll new inspector_protocol into V8. This patch adds inspector protocol and its required dependencies to node deps: - jinja2 - markupsafe PR-URL: #21975 Reviewed-By: Eugene Ostroukhov <[email protected]> Reviewed-By: Aleksei Koziatinskii <[email protected]>
Currently, node.js depends on inspector_protocol indirectly through the dependency on v8. This is a dependency violation that will make it hard to roll V8 into Node if V8 gets a newer inspector protocol version with incompatible API. In fact, this surfaced on one of our bots when we tried to roll new inspector_protocol into V8. This patch adds inspector protocol and its required dependencies to node deps: - jinja2 - markupsafe PR-URL: #21975 Reviewed-By: Eugene Ostroukhov <[email protected]> Reviewed-By: Aleksei Koziatinskii <[email protected]>
Currently, node.js depends on inspector_protocol indirectly through the dependency on v8. This is a dependency violation that will make it hard to roll V8 into Node if V8 gets a newer inspector protocol version with incompatible API. In fact, this surfaced on one of our bots when we tried to roll new inspector_protocol into V8. This patch adds inspector protocol and its required dependencies to node deps: - jinja2 - markupsafe PR-URL: nodejs#21975 Reviewed-By: Eugene Ostroukhov <[email protected]> Reviewed-By: Aleksei Koziatinskii <[email protected]>
Dependencies that influence directly what goes into the `node` binary should be in `deps/`. Refs: nodejs#21975 (comment)
Currently, node.js depends on inspector_protocol indirectly through the dependency on v8. This is a dependency violation that will make it hard to roll V8 into Node if V8 gets a newer inspector protocol version with incompatible API. In fact, this surfaced on one of our bots when we tried to roll new inspector_protocol into V8. This patch adds inspector protocol and its required dependencies to node deps: - jinja2 - markupsafe PR-URL: nodejs/node#21975 Reviewed-By: Eugene Ostroukhov <[email protected]> Reviewed-By: Aleksei Koziatinskii <[email protected]>
inspector_protocol is designed in a way that every instance of the generated code needs to own its copy of the inspector_protocol harness. For example, chromium code has 2 instances, one in v8 and one in chromium itself.
The reason is that otherwise incremental changes to the inspector_protocol need to happen in the interdependent projects simultaneously, which is infeasible due to the roll process.
This patch fixes the issue introduced by the Tracing agent's misuse of the v8's private protocol generator harness and establishes a direct dependency to the harness for the Node's agents.
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes