# Node.js Tooling Group Meeting 2020-04-17 ## Links * **Recording**: * **GitHub Issue**: https://github.com/nodejs/tooling/issues/66 * **Minutes Doc**: https://hackmd.io/@nodejs-tooling/2020-04-17-meeting ## Present * Tooling team: @nodejs/tooling * Christopher Hiller (@boneskull) * Darcy Clarke (@darcyclarke) * Ruy Adorno (@ruyadorno) * Vladimir de Turckheim (@vdeturckheim) * Ian Sutherland (@iansu) * Stephen Belanger (@qard) * Wes Todd (@wesleytodd) * Corey Farrell (@coreyfarrell) * Bryan English (@bengl) * Ben Coe (@bcoe) ## Agenda ### Announcements * I wrote a blog post on [how maintainers should think about Node versions](https://openjsf.org/blog/2020/04/16/maintainers-should-consider-following-node-js-release-schedule/). ### nodejs/tooling > Extracted from **tooling-agenda** labelled issues and pull requests from the **nodejs org** prior to the meeting. * audit hooks and fs hooks * "audit hooks": https://github.com/nodejs/security-wg/issues/626 * Vladimir: MS wanted auditing hooks in Node.js * ability to register "hooks" for particular events * syscalls (fs access, etc) * hooks for some JS primitives including `eval` and `Function` (security-related) * working on PoC * many "hooks" are being added to Node.js, or want to be added * _should we have a unified interface for instrumenting Node.js?_ whether for security or an `fs`-hooks-like API? can we make `fs` "lie" or otherwise (this is just one use case)? * akin to Java's javaagent (?) flag * hope to avoid multiple libraries doing their own instrumentation/monkeypatching/etc * similar efforts: @bengl with the fs hooks, stephen belanger with diagnostic "metadata" channel * we need some way to control the behavior of the hook (read-only?) and sync/async hooks * Twitch stream https://www.twitch.tv/ecares * `fs` hooks [#63](https://github.com/nodejs/tooling/issues/63) * if async hooks can do what this can do, then we can drop this impl * we need a way of blocking calls, mutating arguments, and providing completely different return values * chmod -R [#59](https://github.com/nodejs/tooling/issues/59) * Darcy still may get involved * Ben offers assistance * Darcy appreciates it * Follow up actions added to issue * tracking "hot module reloading" for ESM in core [#51](https://github.com/nodejs/tooling/issues/51) * Corey: in v14.0.0, experimental modules warning is squelched * Ruy: let's rename this issue to "unloading modules in ESM" * [Loader hooks presentation from Vlad at NJSI2019]( https://static.sched.com/hosted_files/njsi2019/ed/loader_hooks.pdf) * action item for Chris, talk to @theKashey of `rewiremock` and `proxyquire` about needs * Support for hooking spawn / spawnSync without patching. [#48](https://github.com/nodejs/tooling/issues/48) * falls into "audit hooks" bucket, but needs to manipulate arguments. * action item for somebody: link this issue to @ecares * A better way to detect a process is exiting [#42](https://github.com/nodejs/tooling/issues/42) * "unified process exiting event" (almost everything except `SIGKILL` and.... core dumps) * `signal-exit` essentially * https://www.npmjs.com/package/signal-exit * needs a PR at this point * process.on('real-exit') * Source Map V3 Support in Node.js [#40](https://github.com/nodejs/tooling/issues/40) * argument parsing [#19](https://github.com/nodejs/tooling/issues/19) ### Q&A, Other * Ben: https://github.com/googleapis/release-please * Corey: wants to allow only the bot to publish a package (roles/perms) on npm * Darcy: scoped auth tokens? token for publishing a particular package. needs RFC! * Ruy: go to `#npm` in https://node-tooling.slack.com for discussion ## Upcoming Meetings * **Node.js Foundation Calendar**: https://nodejs.org/calendar Click `+GoogleCalendar` at the bottom right to add to your own Google calendar.