|
| 1 | +# Node.js Technical Steering Committee (TSC) Meeting 2024-09-11 |
| 2 | + |
| 3 | +## Links |
| 4 | + |
| 5 | +* **Recording**: <https://www.youtube.com/watch?v=mY4hUh5SHPM> |
| 6 | +* **GitHub Issue**: <https://github.com/nodejs/TSC/issues/1615> |
| 7 | + |
| 8 | +## Present |
| 9 | + |
| 10 | +* Antoine du Hamel @aduh95 (voting member) |
| 11 | +* Yagiz Nizipli @anonrig (voting member) |
| 12 | +* Gireesh Punathil @gireeshpunathil (voting member) |
| 13 | +* James Snell @jasnell (voting member) |
| 14 | +* Joyee Cheung @joyeecheung (voting member) |
| 15 | +* Marco Ippolito @marco-ippolito (voting member) |
| 16 | +* Matteo Collina @mcollina (voting member) |
| 17 | +* Michael Dawson @mhdawson (voting member) |
| 18 | +* Richard Lau @richardlau (voting member) |
| 19 | +* Ruy Adorno @ruyadorno (voting member) |
| 20 | +* Paolo Insogna @ShogunPanda (voting member) |
| 21 | +* Guy Bedford (Guest to discuss issue on agenda) |
| 22 | + |
| 23 | +## Agenda |
| 24 | + |
| 25 | +### Announcements |
| 26 | + |
| 27 | +### Reminders |
| 28 | + |
| 29 | +* Remember to nominate people for the [contributor spotlight](https://github.com/nodejs/node/blob/main/doc/contributing/reconizing-contributors.md#bi-monthly-contributor-spotlight) |
| 30 | + |
| 31 | +### CPC and Board Meeting Updates |
| 32 | + |
| 33 | +*Extracted from **tsc-agenda** labeled issues and pull requests from the **nodejs org** prior to the meeting. |
| 34 | + |
| 35 | +* No updates |
| 36 | + |
| 37 | +### nodejs/node |
| 38 | + |
| 39 | +* module: support __cjsUnwrapDefault interop flag in require(esm) [#54563](https://github.com/nodejs/node/pull/54563) |
| 40 | + * Guy - mostly name bikeshedding issue. |
| 41 | + * With the introduction for require ESM, working on transpilation of CJS into ESM |
| 42 | + * Given arbitrary module you don’t know what pattern to apply. |
| 43 | + * The idea is that adding a marker that tells the original form (ex cjs) it |
| 44 | + helps in figuring out which pattern to apply. |
| 45 | + * __cjsUnwrapDefault is the proposal for CJS |
| 46 | + * Question is should we call this cjsUnwrapDefault or model.exports |
| 47 | + * Joyee’s suggestion export as model.exports string name |
| 48 | + * Joyee, one question is that we don’t have agreement to add label to namespace as |
| 49 | + that might be SemVer major, if we instead add API like isCJS that could be SemVer |
| 50 | + minor. |
| 51 | + * Guy, use of new API like isCJS, then does not work for bundlers |
| 52 | + * Guy: Node.js loader adding a flag is something that other tools could also follow |
| 53 | + * Need different discussion about polluting the namespace |
| 54 | + * Guy: Split into 2 PRs one on import and one on require, one on import is tagged as |
| 55 | + SemVer major, the one for commonJS is marked as SemVer minor. |
| 56 | + * Antoine: can we clarify are we talking about models written in ESM syntax ? |
| 57 | + * Joyee: commonJS that has model.exports, now you want to upgrade to ESM, you want |
| 58 | + to do export.default, that does not translate well. The idea is we need some sort |
| 59 | + of flag to do the unwrapping properly. Bikeshedding how the hint should be written |
| 60 | + By the authors. Only useful in cases where you replace module.exports |
| 61 | + * Antoine: we mean a marker in the model, not a CLI flag right? |
| 62 | + * Guy: two sides, the require side would allow conversion of module to ESM while |
| 63 | + maintaining more backwards compatibility. |
| 64 | + * The other side is support import where |
| 65 | + * Guy: valid use case for many projects to compile from CJS into ESM. Main goal |
| 66 | + is the transpilation interopt use case. |
| 67 | + * Joyee: for those uses cases the name should not matter, really we are bikeshedding |
| 68 | + the name. |
| 69 | + * Guy: seems like we are at the point where we are stuck on the bikeshedding. |
| 70 | + * Joyee: would be in favor of having a vote |
| 71 | + * Antoine: have we considered only checking if there is a default export, that would |
| 72 | + avoid having to check a flag? |
| 73 | + * James: don’t necessarily go to a vote, would be good to give people some time to |
| 74 | + take a look at the issue first to see if we can reach consensus. Also don’t |
| 75 | + believe that just using default export will work. |
| 76 | + * Michael: would be good to have summary of the two choices in the issue to help |
| 77 | + people jump in. |
| 78 | + * Guy: seems good to give people some time to jump in. |
| 79 | + |
| 80 | +* deps: V8: backport f320600cd1f4 (V18.x CVE-2024-4761) [#54597](https://github.com/nodejs/node/pull/54597) |
| 81 | + * Matteo: added, believe we discussed last time. We agreed that we will not backport it |
| 82 | + * agreed we should remove from the agenda |
| 83 | + |
| 84 | +* Expose Undici's ProxyAgent and setGlobalDispatcher within Node [#43187](https://github.com/nodejs/node/issues/43187) |
| 85 | + * We discussed last time, there was openness to including more of Undici but not all, remove |
| 86 | + from agenda for now. |
| 87 | + |
| 88 | +### nodejs/TSC |
| 89 | + |
| 90 | +* Let's talk about the CI situation [#1614](https://github.com/nodejs/TSC/issues/1614) |
| 91 | + * Antoine: CI is not at its best, very hard to get green CI |
| 92 | + * flaky tests, either test issue or actual intermittent bugs |
| 93 | + * macos machines were having disk space issues |
| 94 | + * opened to discuss how we can do better |
| 95 | + * Yagiz, in last week a few collaborators reached out to express frustration because it is nearly |
| 96 | + impossible to land a PR. 5-6 related to flaky tests. |
| 97 | + * main concern is that collaborators will get frustrated and stop collaborator |
| 98 | + * Michael: main problem is that we don’t have people who will invest in fixing tests |
| 99 | + * Yagiz: believe we have too many machines. Linux foundation was supposed to get |
| 100 | + introduced to our infrastructure and improve |
| 101 | + * Michael: issue is generally not machines, but tests being actually flaky |
| 102 | + * Richard: its a combination of issues. MacOS machines have always been tight in space. |
| 103 | + There have been no changes in the machines. Know issue that at least one test is writing into |
| 104 | + tmp but eliminated that. If anybody know osx well and can help figure out where the extra |
| 105 | + Space |
| 106 | + * Richard: issue snowballs because people are running more builds (probably because of |
| 107 | + flaky issues). Resume build comes from Jenkins plugin, when you resume it re-runs |
| 108 | + everything that has not passed including jobs where there were flakes |
| 109 | + * Richard: don’t think we have an issue detecting flakes, main issue what do we do with flakes |
| 110 | + once we mark them as flakes. Fundamentally its a resourcing thing where people look at the |
| 111 | + flakes. |
| 112 | + * Matteo: |
| 113 | + * took a look at some of the flakes, typically they are related to timing differences in I/O. http, |
| 114 | + http, net. Makes it hard to investigate without logging on the machine as it passes locally |
| 115 | + Easily. In some cases seems impossible to get the same test passing on both systems. 90% are windows tests flaky. |
| 116 | + * Joyee: We really need some volunteers to look at the flakes, not sure how we can get enough volunteers. 50/50 for flaky |
| 117 | + tests bug in test or bug in Node.js. Not necessarily test with infra, just occurs on some infra because it exposes |
| 118 | + the problem. Need to investigate versus just marking as flaky as a memory issue with cause other tests to flake as well. |
| 119 | + * Richard: If you need access to a machine you can open an issue in build repo to get access |
| 120 | + to a machine to do investigation. |
| 121 | + * Yagiz: had open flaky pull request PR which could not land because of other flaky tests. |
| 122 | + open for more than 10 hours. Can we talk about how we can land those faster. |
| 123 | + * Michael: we should agree on our approach as that will lead to agreement on how we should |
| 124 | + address flaky tests. |
| 125 | + * Joyee: for that specific pull request we should just add another entry to mark the additional |
| 126 | + test that flaked and run again. |
| 127 | + * Michael: suggestion is PR to collaborator guide to capture how we handle a specific case in |
| 128 | + terms of landing even if flaky tests. |
| 129 | + |
| 130 | +## Strategic Initiatives |
| 131 | +* Skipped as we ran out of time |
| 132 | + |
| 133 | +## Upcoming Meetings |
| 134 | + |
| 135 | +* **Node.js Project Calendar**: <https://nodejs.org/calendar> |
| 136 | + |
| 137 | +Click `+GoogleCalendar` at the bottom right to add to your own Google calendar. |
0 commit comments