or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing
xxxxxxxxxx
Discussion ideas
Rafael - discuss the vision of the project with respect to SemVer majors
Release schedule
jasnell: current release plan was devised long time ago, need a revamp
mhdawson: sometimes people ask for even longer support span
bengl shows version data collected
jasnell: not surprising given the interview results we got when devising the support plan
jasnell: are we overestimating the risk of breaking the ecosystem - they are just not going to upgrade if they are broken
pablo: maybe we should be aggressive in odd releases (?)
rafaelgss shows https://github.com/RafaelGSS/nodejs-stats/tree/main/downloads
mhdawson: some people do use current as stable
qard: customers I've talked to, some just jump e.g. 6 versions which are that different from each other
bengl: we don't specify odd releases as supported so the data is skewed towards even realeases
pablo: in my experience the odd number relases are almost useless
jasnell: maybe they should be preview/release candidates
tobias: if we break major we should revert asap (e.g. ipv4 family select, breaking people for months)
pablo: we need data and feedback about repro for the breakage though
matteo: if we break once a year we'd be encouraging authors to ship things behind flags
qard: we already have experimental status, we should use that and flags more to bake things before making them stable
alex(?): at Bloomberg we never use the LTS(?), I think we and companies like us would be very happy to participate in a program to test breakage
jasnell: maybe we can use the canary tag for the current release and update every weak. Once the current is mature after maybe a few months we promote it to stable - once a year. And then several years of support. a lot of questions we need to answer for that but that's an alternative
rafaelgss: how do we guarantee that people are going to use that
jasnell: security releases
matteo: that would not work for security releases
pablo: there would not be any overlapping stable releases
jasnell: if we land a security fix on the tip of tree, whoever need to get the fix on a stable need to account for all the breakages landed in between, we would need to figure out the earliest patch on main that introduced the security vulnerabilty and do the fix on top of that
rafaelgss: there could be rebase conflicts
pablo: we'll just do multiple fixes for multiple channels
targos: how would it work for library authors
jasnell: we need to figure out
targos: we may need to have some kind of version number for every stable release
jasnell: this would actually allow us to follow semver properly
pablo: codemods or linting rules to aid migration
jasnell: we need a better way for deprecations, e.g. IDE integration
joyee: out of band deprecation warnings with IDE/linters help users get deprecations without upgrades esp. if they jump versions
Michael: Like the earlier idea of linter rules to flag deprecations
pablo: I think we should set a date for the deprecations for IDEs to communicate
jasnell: something like what the definitely typed does, annotate the deprecated things
alex: we can have something like npm audit for dependencies
…compatibility discussions…
matteo: we are ignoring elephant in the room. reality is vast majority of npm touches internal properties or monkey patches stuff e.g. express
jasnell: we have a warning about this for long enough. we should just let it go
alex: maybe we should do this gruadually
pablo: talked to someone before. they asked if you can give me some official document about express not being supported any more so that I can tell my boss to ask for resources to migrate
qard: a lot of companies have a slow developemnt cycle
pablo: how much do we care about these companies
jean: many of the non-tech companies. Think COBOL and banks
igor: aren't they already on old versions anyway
tobias: some are not holding us back e.g. buffer constructor. some do, like internal properties of streams. often we ask people about their use cases to provide public alternatives
alex: it would be very valuable to have gradual changes
mhdawson: I think there's a line in breakage - if we cross it people are just not going use it any more
joyee: in many cases we are just afraid of breaking unknown amount of npm modules. combined with a canary scheme we can encourage library authors to test it in the CI, break more liberally in canary, collect data and evaluate breakage, and revert if necessary, and find and invent appropriate alternatives
pablo: or we just create new modules instead of touching old modules
marco: how about just land breaking changes on odd releases
jasnell: the intent was already that odd versions are for library authors
?: how about deprecating by putting things behind flags
jasnell: cut in april, as preview for libary authors, promote in October
Webstreams implemention
implementation. It requires having two models, the one for JavaScript which
is necessary when data comes from JavaScript and a second model that handles
sources which are internal.
which implement the common interface (JavaScript and Native)
be done carefully as it could affect the observable behaviour
optimize and avoid going to JavaScript at all.
WinterCG
node:net
jasnell: revamp net completely. net, tls, udp, big mess. similar to what we did to URL, leave the old stuff alone, start from the ground up and create a set of modern APIs, readablestream instead of node stream. It's been difficult to implement discovery in fetch.
jasnell: dont want to consider http 2, 3, … want one server, and parameterise it to enable/disable 2/3. Eliminate the complexity
mhdawson: How does it fit with undici model?
jasnell: rely on undici to provide http semantics on top
mhdawson: thought maybe we would bring undici APIs into Node
jasnell: conversation we need to have. We have
fetch
, a globalconnect
. Lots of details and unanswered questions to figure out. If anybody thinks "leave what we have alone, it works" - I want to hear from youmhdawson: think wqe agreed that we would have higher and lower level APIs - something we don't already have
marco: I thought we were missing a WG on http. Me and Paolo have always been interested in http but there was never a WG.
?: we had one called "webserver". We can bring this back
jasnell: want to kick that back off. We got busy, there was a pandemic, … QUIC has had a whole load of issues, don't want to make a public API for it (yet?) until it's done. HTTP/3 and QUIC, new http parser wont apply. Headers in HTTP/3 from QUIC will be different, undici will apply HTTP semantics on top. Not needing a parser
marco: right now undici is a client, how is it related?
jasnell: that's part of the discussion, reusing Request and Response on the server-side. We cannot keep evolving Node's APIs without doing this
paolo: we currently ship two https. When we ship Milo we may have two wasm versions
marco: we will de-duplicate. agree we need to do something, it's currently bad
jasnell: like readable stream this is going to be a huge effort. we need to get a team together dedicated to this - not the actual implementation work, but at least evaluate and create a plan
joyee: can we also avoid MakeCallback in the new stuff
jasnell: yeah maybe
jasnell: web streams not node streams
joyee: if we don't do old streams, MakeCallback would not be necessary
jasnell: plan to rebase and open another big PR for quick soon, targeting end of November, and take a few weeks off in December, and continue after that
Fin. applause