on-finished icon indicating copy to clipboard operation
on-finished copied to clipboard

Release Proposal: [email protected]

Open Phillip9587 opened this issue 8 months ago • 7 comments

This is a proposal to prepare and publish a new major release (v3.0.0) of on-finished.

Proposed Changes

  • [x] #56
  • [x] ~~#54~~ merged into v2
  • [x] #81
  • [x] Dropping Support for Node.js <18
  • [ ] Dropping Support for Non-Stream Objects
  • [x] Refactor isFinished to use only modern public properties of HttpIncomingMessage and HttpOutgoingMessage
  • [ ] Support HTTP2
  • [ ] #69
  • [x] #70
  • [x] #72

🚫 Dropping Support for End-of-Life Node.js Versions

I propose updating the engines field to >=18, aligning with Express's current requirement. This would allow us to modernize the codebase by removing workarounds and compatibility layers for older Node.js versions.

As part of this, we would remove legacy runtime compatibility code, including:

  • Conditional use of async_hooks for environments without stable support
  • Fallbacks such as setImmediate targeting pre-Node.js 10 environments
  • Special Handling for older Stream implementations

This cleanup simplifies the module, improves maintainability, and ensures consistent behavior across modern Node.js versions.

cc @jonchurch @wesleytodd @UlisesGascon

Phillip9587 avatar May 08 '25 11:05 Phillip9587

btw, I’ll also be working on this, since this module is important for enabling HTTP/2 in the modules. @jshttp/express-tc, could you please create a new branch? This new version would be intended for Express v6.

bjohansebas avatar May 08 '25 13:05 bjohansebas

@bjohansebas That sounds great! I agree it's an important step, especially with HTTP/2 support on the roadmap.

I actually think this version could potentially be integrated with Express v5 as well, provided we can structure the changes in a way that’s non-breaking for users. That’s why I suggested aligning the engines field with Express v5 (Node.js >= 18), which would still give us room to modernize the internals while keeping compatibility with current Express consumers.

Happy to collaborate on this!

Phillip9587 avatar May 08 '25 13:05 Phillip9587

This proposal backlog is looking very promising! 👍

UlisesGascon avatar May 09 '25 13:05 UlisesGascon

I created the branch v3 to land all the PRs there until we are ready to do the release

UlisesGascon avatar May 09 '25 14:05 UlisesGascon

Refactor isFinished to use only modern public properties of HttpIncomingMessage and HttpOutgoingMessage

Which private properties are we using from them? The ones we use are necessary and partially documented.

bjohansebas avatar May 11 '25 22:05 bjohansebas

Do we need a changlog entry for #56? I missed that in the PR, but it is a internal refactoring and the public API and behaviour is not affected.

Phillip9587 avatar Jul 23 '25 20:07 Phillip9587

Hey guys, i think this release is almost ready! I’d appreciate some help setting up the http2 tests so we can move this forward.

Phillip9587 avatar Nov 12 '25 15:11 Phillip9587