You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The agenda comes from issues labelled with tsc-agenda across all of the repositories in the nodejs org. Please label any additional issues that should be on the agenda before the meeting starts. I'm using a tool to fetch the list so it's not a big deal to collate.
Joining the meeting
Uberconference; participants should have the link & numbers, contact me if you don't.
A summary for the TS of Inspecting Node.js with Chrome DevTools#2546 would be appreciated from anyone involved in there, particularly what is it that the TSC needs to care about and are we being called upon to make decisions here. Preferably this should be given here before the meeting so we don't end up wasting all our time trying to grok it all.
I tagged deps: update v8 to 4.5.103.30#2632 because there is an outstanding question of whether we want to try and slip V8 4.5 into v4 since it (surprisingly) went stable today/yesterday. There's pros and cons to this. Pros: we get a supported V8 for longer, we get some bugs fixed and some new features like arrow functions (a weak justification but I like how this adds to the "upgrade to v4" story that we need to be pushing), possibly some perf improvements (including a potential backport or @indutny's patch that just landed there). Cons: Uncertain at this stage if NAN supports this version, it was supposed to but it looks like the V8 team may have slipped a breaking API change in that wasn't pre-announced, there's also some potential pain for addon authors who may think they are ready when in fact they are not since there has been a full s/Handle/Local and although we knew about this, it wasn't widely known to addon authors who could get away with liberal Handle usage. Also cons: limited testing, while we've had v3.x using 4.4 for a while now.
TSC expansion discussion absolutely, I started an email thread about that but we should use some of the private time at the begining of the meeting to talk openly about it, I'd love to see us bring in more of the quality collaborators we have and get some more diverse perspectives and skills!
it looks like the V8 team may have slipped a breaking API change in that wasn't pre-announced
It would be good if this could be made a bit more concrete. Based on the thread it looks like this is referring to Local<Value> v8::Function::Call() being marked V8_DEPRECATE_SOON, which is two steps away from an actual breaking change (first, move to V8_DEPRECATE; second, actually remove).
it wasn't widely known to addon authors who could get away with liberal Handle usage.
Just want to point out that this should have been giving deprecation warnings, so there's at least some chance they'd be aware. Although there's no guarantee addon authors have been compiling with new enough V8, so I understand the general point.
@domenic sorry, it's not Function::Call(), I was talking about Function::New() but looking again it and seeing the full section of the code it seems that this might be what @trevnorris was talking about too.
- static Local<Function> New(Isolate* isolate,- FunctionCallback callback,- Local<Value> data = Local<Value>(),- int length = 0);+ static MaybeLocal<Function> New(Local<Context> context,+ FunctionCallback callback,+ Local<Value> data = Local<Value>(),+ int length = 0);+ static V8_DEPRECATE_SOON(+ "Use maybe version",+ Local<Function> New(Isolate* isolate, FunctionCallback callback,+ Local<Value> data = Local<Value>(), int length = 0));
Unfortunately I haven't been able to do any testing on this, no time at all. If anyone else has time it'd be great to get some testing of NAN on this version. @kkoopa do you have time to verify the NAN test suite against #2632 on top of vee-eight-4.5?
@targos my point is about all of the core APIs now exporting Local instead of Handle, but perhaps that's moot since it should just be an alias. Again, some testing would be nice. Those who would like to see 4.5 in should be out there testing addons and seeing what kind of work is required. I'd start by looking at buffertools, bignum, leveldown (ones that the TSC has some connection with), also interesting would be anything in npm that's depending on nan@2.x if you can figure that out. If we can get a level of confidence that there's not going to be much/any pain from this then it's more likely this will make it in.
All Function::New() does is call FunctionTemplate::New()->GetFunction(). It is probably not even in common use, as it was not available before 0.12.
There are four ways of fixing it:
Patch V8 to remove the offending commit
Patch NAN and keep the existing behavior
Patch NAN and update to the new behavior
Patch NAN and remove it completely.
Witchever the resolution is, I strongly oppose bumping the major version of NAN for this uselessness. 2.x is here to stay for at year, breakage be damned.
The Handle stuff is a non-issue. It is trivial to fix, it has been known for over two years that it needs to be fixed, and there is no promise of forward compatibility. It was well known already before the release of io.js 3.0.
@domenic sorry, it's not Function::Call(), I was talking about Function::New() but looking again it and seeing the full section of
the code it seems that this might be what @trevnorris was talking about
too.
- static Local<Function> New(Isolate* isolate,- FunctionCallback callback,- Local<Value> data = Local<Value>(),- int length = 0);+ static MaybeLocal<Function> New(Local<Context> context,+ FunctionCallback callback,+ Local<Value> data = Local<Value>(),+ int length = 0);+ static V8_DEPRECATE_SOON(+ "Use maybe version",+ Local<Function> New(Isolate* isolate, FunctionCallback callback,+ Local<Value> data = Local<Value>(), int
length = 0));
Unfortunately I haven't been able to do any testing on this, no time at
all. If anyone else has time it'd be great to get some testing of NAN
on this version. @kkoopa do you have time to verify the NAN test suite
against #2632 on top of vee-eight-4.5?
Reply to this email directly or view it on GitHub: #2654 (comment)
@kkoopa so my understanding of your four ways to fix it is that you would find patching NAN to keep the existing behavior or update to the new behavior both acceptable? Neither would require a major version bump, correct?
Anyway, again it sounds like this is not actually a removal, or even a deprecation, just a deprecation-soon. So NAN doesn't need to do anything at all, if it doesn't want to, at least for two more V8 releases. As @rvagg says though, getting some testing in would be crucial to confirm.
@domenic Patching to update to new behavior would be a breaking change, but I still do not consider it significant enough to warrant a major version bump, regardless of semver this or semver that. The construct is probably not used outside of NAN's test suite.
The DevTools team has engaged us about separating v8-inspector from Blink and making a package that we could use. This would allow anyone to open Chrome, browse to chrome://inspect and point it at a node process. A few points from the discussion are:
The remote debugger API (that we'd consume) has remained fairly stable.
If it does break, it's still possible to load an old Chrome DevTools console to consume the older API. So this should continue to work in an LTS release.
From the thread: "On the DevTools side we’ll be providing generic API that would work for both Blink and Node.js".
The API will integrate pretty tightly with our existing code in order to collect all the information it needs. e.g. asynchronous stacks.
Node would have to fully support web sockets in order to communicate with Chrome.
Node would have to run another thread that also executes JS. Though I don't believe it would need the full event loop.
My main concern are the integration points. While many of them can be done in native, which makes the conditional practically a performance noop, we will have to add a conditional in nextTick(). Which performance has already degraded since additional logic has been added.
The DevTools team has engaged us about separating v8-inspector from Blink
and making a package that we could use. This would allow anyone to open
Chrome, browse to chrome://inspect and point it at a node process. A few
points from the discussion are:
The remote debugger API (that we'd consume) has remained fairly
stable.
If it does break, it's still possible to load an old Chrome DevTools
console to consume the older API. So this should continue to work in an LTS
release.
From the thread: "On the DevTools side we’ll be providing generic
API that would work for both Blink and Node.js".
The API will integrate pretty tightly with our existing code in
order to collect all the information it needs. e.g. asynchronous stacks.
Node would have to fully support web sockets in order to communicate
with Chrome.
Node would have to run another thread that also executes JS. Though
I don't believe it would need the full event loop.
My main concern are the integration points. While many of them can be done
in native, which makes the conditional practically a performance noop, we
will have to add a conditional in nextTick(). Which performance has
already degraded since additional logic has been added.
@mscdex sorry, dates are hard .. I always have to wind back by a day when I do these cause I'm a day ahead, I obviously wound back by two!
@jkrems: yes, we've switched to being more timely now we have everything in place, the last minutes were merged with a soundcloud link in it and I'm going to try and be quicker in future in putting in the PRs. If you look in the doc/tsc-minutes/ directory you'll see SoundCloud links on all of those.
@rvagg The thing is - the meeting issues are easy to find (for me at least) but even after you told me that the meeting notes were merged with the soundcloud link, I wasn't able to find them (without cheating and using the exact directory path in your comment). E.g. Google only leads to https://nodejs.org/en/foundation/tsc/minutes/. I think just adding a short "Meetings notes will be made available in doc/tsc-minutes and audio recordings on SoundCloud." at the end of the issue template would go a long way. Just to make it easier to discover for people outside the loop. :)
I'm unsure of how this would conflict, or if it would conflict, with the work @nodejs/tracing is doing.
Note that we already expose tracing over the remote debugging protocol. DevTools Timeline panel is implemented based on that. If it makes sense for Node.js too we can consider adding it to v8-inspector. The protocol implementation for tracing domain is fairly simple.
Activity
jasnell commentedon Sep 2, 2015
Would love it if we could include a quick discussion on nominating new TSC members.
jasnell commentedon Sep 2, 2015
(At least just to pull together a short list, not necessarily to decide on today)
rvagg commentedon Sep 2, 2015
A summary for the TS of Inspecting Node.js with Chrome DevTools #2546 would be appreciated from anyone involved in there, particularly what is it that the TSC needs to care about and are we being called upon to make decisions here. Preferably this should be given here before the meeting so we don't end up wasting all our time trying to grok it all.
I tagged deps: update v8 to 4.5.103.30 #2632 because there is an outstanding question of whether we want to try and slip V8 4.5 into v4 since it (surprisingly) went stable today/yesterday. There's pros and cons to this. Pros: we get a supported V8 for longer, we get some bugs fixed and some new features like arrow functions (a weak justification but I like how this adds to the "upgrade to v4" story that we need to be pushing), possibly some perf improvements (including a potential backport or @indutny's patch that just landed there). Cons: Uncertain at this stage if NAN supports this version, it was supposed to but it looks like the V8 team may have slipped a breaking API change in that wasn't pre-announced, there's also some potential pain for addon authors who may think they are ready when in fact they are not since there has been a full
s/Handle/Localand although we knew about this, it wasn't widely known to addon authors who could get away with liberalHandleusage. Also cons: limited testing, while we've had v3.x using 4.4 for a while now.rvagg commentedon Sep 2, 2015
TSC expansion discussion absolutely, I started an email thread about that but we should use some of the private time at the begining of the meeting to talk openly about it, I'd love to see us bring in more of the quality collaborators we have and get some more diverse perspectives and skills!
domenic commentedon Sep 2, 2015
It would be good if this could be made a bit more concrete. Based on the thread it looks like this is referring to
Local<Value> v8::Function::Call()being markedV8_DEPRECATE_SOON, which is two steps away from an actual breaking change (first, move toV8_DEPRECATE; second, actually remove).Just want to point out that this should have been giving deprecation warnings, so there's at least some chance they'd be aware. Although there's no guarantee addon authors have been compiling with new enough V8, so I understand the general point.
rvagg commentedon Sep 2, 2015
@domenic sorry, it's not
Function::Call(), I was talking aboutFunction::New()but looking again it and seeing the full section of the code it seems that this might be what @trevnorris was talking about too.Unfortunately I haven't been able to do any testing on this, no time at all. If anyone else has time it'd be great to get some testing of NAN on this version. @kkoopa do you have time to verify the NAN test suite against #2632 on top of
vee-eight-4.5?targos commentedon Sep 2, 2015
Handle is defined like this in the header file:
If I understand it well, as long as we don't enable
V8_IMMINENT_DEPRECATION_WARNINGSin v4, addons using it will still work.rvagg commentedon Sep 2, 2015
@targos my point is about all of the core APIs now exporting
Localinstead ofHandle, but perhaps that's moot since it should just be an alias. Again, some testing would be nice. Those who would like to see 4.5 in should be out there testing addons and seeing what kind of work is required. I'd start by looking at buffertools, bignum, leveldown (ones that the TSC has some connection with), also interesting would be anything in npm that's depending on nan@2.x if you can figure that out. If we can get a level of confidence that there's not going to be much/any pain from this then it's more likely this will make it in.targos commentedon Sep 2, 2015
@rvagg here is a list of all npm packages where the nan dependency satisfies 2.0.8:
kkoopa commentedon Sep 2, 2015
All Function::New() does is call FunctionTemplate::New()->GetFunction(). It is probably not even in common use, as it was not available before 0.12.
There are four ways of fixing it:
Witchever the resolution is, I strongly oppose bumping the major version of NAN for this uselessness. 2.x is here to stay for at year, breakage be damned.
The Handle stuff is a non-issue. It is trivial to fix, it has been known for over two years that it needs to be fixed, and there is no promise of forward compatibility. It was well known already before the release of io.js 3.0.
On September 2, 2015 4:07:59 PM GMT+03:00, Rod Vagg notifications@github.com wrote:
shigeki commentedon Sep 2, 2015
Sorry, I can't make it today.
orangemocha commentedon Sep 2, 2015
Most likely I won't be able to attend today.
domenic commentedon Sep 2, 2015
@kkoopa so my understanding of your four ways to fix it is that you would find patching NAN to keep the existing behavior or update to the new behavior both acceptable? Neither would require a major version bump, correct?
Anyway, again it sounds like this is not actually a removal, or even a deprecation, just a deprecation-soon. So NAN doesn't need to do anything at all, if it doesn't want to, at least for two more V8 releases. As @rvagg says though, getting some testing in would be crucial to confirm.
kkoopa commentedon Sep 2, 2015
@domenic Patching to update to new behavior would be a breaking change, but I still do not consider it significant enough to warrant a major version bump, regardless of semver this or semver that. The construct is probably not used outside of NAN's test suite.
3 remaining items
trevnorris commentedon Sep 2, 2015
@rvagg Summary for #2546:
The DevTools team has engaged us about separating v8-inspector from Blink and making a package that we could use. This would allow anyone to open Chrome, browse to
chrome://inspectand point it at a node process. A few points from the discussion are:My main concern are the integration points. While many of them can be done in native, which makes the conditional practically a performance noop, we will have to add a conditional in
nextTick(). Which performance has already degraded since additional logic has been added.@paulirish listed some of the features that would be included: #2546 (comment)
I'm unsure of how this would conflict, or if it would conflict, with the work @nodejs/tracing is doing. @ofrobots Do you have any feedback here?
mikeal commentedon Sep 2, 2015
I can't make it today, let me know if there is anything you need from the
foundation and i'll take care of it.
On Wednesday, September 2, 2015, Trevor Norris notifications@github.com
wrote:
ofrobots commentedon Sep 2, 2015
@trevnorris I don't see much conflict between v8-inspector and trace-event. Blink already uses both trace-event and DevTools.
mscdex commentedon Sep 2, 2015
The TSC call was yesterday? 😕
cjihrig commentedon Sep 2, 2015
@mscdex I think that's just a typo.
rvagg commentedon Sep 2, 2015
@mscdex sorry, dates are hard .. I always have to wind back by a day when I do these cause I'm a day ahead, I obviously wound back by two!
@jkrems: yes, we've switched to being more timely now we have everything in place, the last minutes were merged with a soundcloud link in it and I'm going to try and be quicker in future in putting in the PRs. If you look in the doc/tsc-minutes/ directory you'll see SoundCloud links on all of those.
hybrist commentedon Sep 2, 2015
@rvagg The thing is - the meeting issues are easy to find (for me at least) but even after you told me that the meeting notes were merged with the soundcloud link, I wasn't able to find them (without cheating and using the exact directory path in your comment). E.g. Google only leads to https://nodejs.org/en/foundation/tsc/minutes/. I think just adding a short "Meetings notes will be made available in
doc/tsc-minutesand audio recordings on SoundCloud." at the end of the issue template would go a long way. Just to make it easier to discover for people outside the loop. :)trevnorris commentedon Sep 2, 2015
Was confirmed that there's no need to add async stack trace support from the beginning: #2546 (comment)
rvagg commentedon Sep 3, 2015
@jkrems I'll try and keep that in mind for next week, feel free to hassle me if I've forgotten tho!
[-]Node Foundation TSC Meeting 2015-09-01[/-][+]Node Foundation TSC Meeting 2015-09-02[/+]rvagg commentedon Sep 3, 2015
https://soundcloud.com/node-foundation/tsc-meeting-2015-09-02 is audio for this meeting, PRing in the minutes now
yury-s commentedon Sep 3, 2015
@trevnorris
Note that we already expose tracing over the remote debugging protocol. DevTools Timeline panel is implemented based on that. If it makes sense for Node.js too we can consider adding it to v8-inspector. The protocol implementation for tracing domain is fairly simple.
thefourtheye commentedon Sep 6, 2015
@rvagg Can this be closed now?