Repository navigation
Release Plan: 5.1.0 #6316
Copy link
Copy link
Closed
Labels
Description
Remaining Work
Dependency work
- accepts
- body-parser
- Release v2.1.0 body-parser#578
- Update type-is
- update mime-types
- update mime-db
- update mime-types
- content-disposition
- https://github.com/jshttp/content-disposition/pulls
- Certain languages can't be matched correctly by the Regular Expression EXT_VALUE_REGEXP like en-US or zh_cn jshttp/content-disposition#47
- refactor: use simplified
basenamefunction and remove dependency onnode:pathjshttp/content-disposition#68 - Release: 1.0.1 jshttp/content-disposition#58
- content-type
-
^range d2de128
-
- cookie
-
^range af7cd90
-
- debug:
- encodeurl
-
^range af7cd90
-
- escape-html
-
^range af7cd90
-
- etag
-
^range af7cd90
-
- finalhandler
- fresh
-
^range af7cd90
-
- http-errors
- merge-descriptors: nothing
- mime-types
- on-finished
-
^range af7cd90
-
- once
-
^range af7cd90
-
- parseurl
-
^range af7cd90
-
- proxy-addr
- qs
- range-parser
-
^range af7cd90
-
- router
- send
- https://github.com/pillarjs/send/pulls
- update mime-types (deps: update
mime-typesto v3.0.1 pillarjs/send#251)- update mime-db
- serve-static
- https://github.com/expressjs/serve-static/pulls
- update send
- update mime-types
- update mime-db
- update mime-types
- statuses
-
^range af7cd90
-
- type-is
- vary
-
^range af7cd90
-
Not planned for this release
- cookie-signature
Reacted by Sebastian Beltran, Kevin Law, Kirill Groshkov, Charlie Brown and S.Y. Lee
Reacted by Sebastian Beltran, Dustin Popp, Kirill Groshkov and Nato Boram
Activity
dpopp07 commentedon Feb 3, 2025
I'm happy to open a small PR with the semver range changes.
dpopp07 commentedon Feb 20, 2025
PR to address
routerissue: pillarjs/router#151Edit: sibling PR to the above for documenting the
routerchange in the migration guide: expressjs/expressjs.com#1819UlisesGascon commentedon Mar 23, 2025
Ok, so following #6412 my current understanding of the release plan and the blockers is the following (@wesleytodd please edit this 🙏 ). Also I was fishing some items from expressjs/discussions#266
Current proposal
What's Changed
methodsdependency with standard library by @jonkoops in chore: replacemethodsdependency with standard library #6196utils-mergedependency - use spread syntax instead by @Phillip9587 in Removeutils-mergedependency - use spread syntax instead #6091depddependency by @jonkoops in Remove unuseddepddependency #6197Invalid action input 'persist-credentials'foractions/setup-node@v4inci.ymlby @hamirmahal in fix: usage ofInvalid action input 'persist-credentials'foractions/setup-node@v4inci.yml#6256normalizeTypesfunction by @Ayoub-Mabrouk in refactor: simplifynormalizeTypesfunction #6097debugto ^4.4.0 by @Phillip9587 in chore(deps): updatedebugto ^4.4.0 #6313httpsinstead ofhttpby @Phillip9587 in Update multiple links to usehttpsinstead ofhttp#6338New Contributors
methodsdependency with standard library #6196Invalid action input 'persist-credentials'foractions/setup-node@v4inci.yml#6256normalizeTypesfunction #6097Full Changelog: 5.0.1...master
Pending Work
Express Work
Potential additions
What do you think @wesleytodd? Maybe we can include them while unblocking other parts?
Final Work
5.1.0and the full changelog (@wesleytodd )5.1.0(@wesleytodd )Dependencies
Level 0 (Express itself)
router@2.2.0(@UlisesGascon ): deps: router@^2.2.0 #6417server-static@2.2.0(@UlisesGascon ): deps: serve-static@^2.2.0 #6418body-parser@2.2.0(@UlisesGascon ): deps: body-parser@^2.2.0 #6419type-is@2.0.1(@UlisesGascon ): deps: type-is@^2.0.1 #6420includeaccepts@3.0.0(@UlisesGascon ): deps: accepts@^3.0.0 #6416Level 1
content-dispositionhas no relevant changes or releases pendingcookiehas no relevant changes or releases pendingproxy-addrhas no relevant changes or releases pendingrouter@2.2.0finalhandlerto 2.1.0 pillarjs/router#153 (@UlisesGascon )router@2.2.0(@UlisesGascon ): Release 2.2.0 pillarjs/router#157router@2.2.0(@UlisesGascon )varyhas no relevant changes or releases pendingserver-static@2.2.0send@1.2.0(@UlisesGascon ): deps: send@2.0.0 serve-static#196safe-bufferserve-static#191server-static@2.2.0(@UlisesGascon ): Release 2.2.0 serve-static#197server-static@2.2.0(@UlisesGascon )finalhandlerhas no relevant changes or releases pendingbody-parser@2.2.0type-is@2.0.1(@UlisesGascon )body-parser@2.2.0(@UlisesGascon ): Release 2.2.0 body-parser#597body-parser@2.2.0(@UlisesGascon )Level 2
forwardedhas no relevant changes or releases pendingparseurlhas no relevant changes or releases pendingpath-to-regexphas no relevant changes or releases pendingtype-is@2.0.1HTABas well asSPas whitespace separators incontent-typeheaders jshttp/type-is#53type-is@2.0.1(@UlisesGascon ): Release 2.0.1 jshttp/type-is#64type-is@2.0.1(@UlisesGascon )accepts@3.0.0: We closed this as will not release.mime-types@3.0.1(@UlisesGascon ): deps: mime-types@^3.0.1 jshttp/accepts#422.0.0that is missing (@UlisesGascon ): https://github.com/jshttp/accepts/releases/tag/2.0.0enginesin v2 branch (@UlisesGascon ): fix: update engines field jshttp/accepts#43accepts@3.0.0(@UlisesGascon ): Release 3.0.0 jshttp/accepts#44accepts@3.0.0(@UlisesGascon )send@1.2.0mime-types@3.0.1(@UlisesGascon ): deps: updatemime-typesto v3.0.1 pillarjs/send#251freshto v2 pillarjs/send#247) (@UlisesGascon)send@1.2.0(@UlisesGascon ): Release 1.2.0 pillarjs/send#252send@1.2.0(@UlisesGascon )Level 3
content-typehas no relevant changes or releases pendingencodeurlhas no relevant changes or releases pendingetaghas no relevant changes or releases pendingfreshhas no relevant changes or releases pendingmime-types@3.0.1mime-types@3.0.1(@UlisesGascon ): Release 3.0.1 jshttp/mime-types#134mime-types@3.0.1(@UlisesGascon )media-typerhas no relevant changes or releases pendingnegotiatorhas no relevant changes or releases pendingon-finishedhas no relevant changes or releases pendingrange-parserhas no relevant changes or releases pendinghttp-errorshas no relevant changes or releases pendingLevel 4
mime-db@1.54.0is out (npm, release details)statuseshas no relevant changes or releases pendingbjohansebas commentedon Mar 23, 2025
Btw, the change of engines in path-to-regexp needs to be a major release.
UlisesGascon commentedon Mar 23, 2025
True! actually if we want to go with 9.0.0 is a good option, otherwise I can revert the commit partially to be semver compatible. WDYT (@bjohansebas @wesleytodd ) ?
bjohansebas commentedon Mar 23, 2025
I think we should stick to version 8. I don't think we should release another version of path-to-regexp unless we want to make other types of changes (such as releasing a dual package (commonjs and ems), moving to ESM, or achieving safer regex for string patterns).
jonkoops commentedon Mar 24, 2025
What is the ESM transition plan for these dependencies (if any)? In April, support for Node.js 18 will be dropped, which is the last version of Node.js that does not support interoperability between CommonJS and ESM. So technically, that would be a good moment to raise the minimum version and do a full ESM conversion. If you are short on hands for this effort, I can volunteer my time to get it done, if so desired.
panva commentedon Mar 24, 2025
Is 5.1.0 going to be tagged as
@lateston npm?bjohansebas commentedon Mar 24, 2025
Yes, 5.1.0 will be the latest version when it is released
panva commentedon Mar 24, 2025
That's good to know, issues spanning from
req.hostnot being an actual url host component (i.e. incl. port) will go away as people slowly upgrade. So far with v5 being tagged as@nextit was hard to get people to upgrade.wesleytodd commentedon Mar 27, 2025
@jonkoops, you can read more about that here: expressjs/discussions#323
expressand all of it's direct dependents we had kept atnextwhileexpresswas will be going latest.@panva Do you have some node issues I can link to when we talk about this? It is near impossible to get folks to upgrade even if it is
latestbut we can try with good messaging.[-][WIP] Release Plan: 5.1.0[/-][+]Release Plan: 5.1.0[/+]panva commentedon Mar 27, 2025
@wesleytodd Having express as a dependency of a passport strategy - it is a real struggle to be able to determine the request's original href without both replicating express' internals and changing the resolution code based on the app's
trust proxysetting. This is stemming from the fact thatreq.hostin v4 is the hostname and not the host and there's no host getter that would taketrust proxyinto consideration.refs: panva/openid-client#767, panva/openid-client#743, panva/openid-client#733, panva/openid-client#746, panva/openid-client#713, panva/openid-client#714
v5 behaves as expected but unfortunately in v4 the code doesn't work for development on localhost with arbitrary ports, and in production with non http scheme default ports (i.e. other than 80 and 443).
I've resisted the pressure of accomodating the bugged v4 behaviour and just explained to users they need to either upgrade to v5 or overload the method that returns the current URL in development setups. In v4 the
req.hostshould have been fixed instead of being deprecated and console warned upon use in the first place. I get a few issues opened every now and then because of it.I get that. But at least having latest be v5 means new apps will default to v5 with
npm i expressand the transition to v5 can begin for real in userland.jonkoops commentedon Mar 27, 2025
Thanks, I will subscribe there 👍
wesleytodd commentedon Mar 28, 2025
Proposed release: #6425
I will close this in favor of moving any conversation there now that we have a PR.