Express 5.0 – Last Push

https://github.com/expressjs/discussions/issues/233

@UlisesGascon

Description

@UlisesGascon

This issue includes a reference to all the PRs/issues or pending tasks for Express and dependencies needed to finally ship Express@5.

Rules (WIP):

  • If something is completed, just marked
  • If there is a PR/Issue/Discussion please add it (try to use one item)
  • If there is someone taking ownership on it, please add it. Ownership means to be the focal point for it not necessarily the person who makes the final change.
  • If there is no leader, feel free to claim it.
  • If you can no longer lead something, just let others claim it back
  • As this issue can have many comments, feel free to address them and then mark the original comment as "outdated" (details) so it is easier to follow.

If you think that any reference is missing, please edit this comment (@expressjs/express-tc) or reply with a comment if you don't have the permissions.

Pending things (Express):

Pending things (Dependencies):

Pending things (Documentation):

Discussions pending:

New

Under Investigation

Decisions made:

Not in 5.x

Future Minors

{
"by": "rareitem",
"descendants": 17,
"id": 40218896,
"kids": [
40219347,
40219431,
40219059,
40219199
],
"score": 40,
"time": 1714530487,
"title": "Express 5.0 – Last Push",
"type": "story",
"url": "https://github.com/expressjs/discussions/issues/233"
}
{
"author": "UlisesGascon",
"date": "2024-04-24T22:39:12.000Z",
"description": "This issue includes a reference to all the PRs/issues or pending tasks for Express and dependencies needed to finally ship Express@5. Rules (WIP): If something is completed, just marked If there is…",
"image": "https://opengraph.githubassets.com/86a2b7fb61ab60778a6b8bf969684c657d8be19cf607ed25a7d146932b9ea98f/expressjs/discussions/issues/233",
"logo": "https://logo.clearbit.com/github.com",
"publisher": "GitHub",
"title": "Express 5.0 - last push! · Issue #233 · expressjs/discussions",
"url": "https://github.com/expressjs/discussions/issues/233"
}
{
"url": "https://github.com/expressjs/discussions/issues/233",
"title": "Express 5.0 - last push! · Issue #233 · expressjs/discussions",
"description": "This issue includes a reference to all the PRs/issues or pending tasks for Express and dependencies needed to finally ship Express@5. Rules (WIP): If something is completed, just marked If there is...",
"links": [
"https://github.com/expressjs/discussions/issues/233"
],
"image": "https://opengraph.githubassets.com/86a2b7fb61ab60778a6b8bf969684c657d8be19cf607ed25a7d146932b9ea98f/expressjs/discussions/issues/233",
"content": "<div>\n <div>\n <p><a target=\"_blank\" href=\"https://github.com/expressjs/discussions/issues/233#start-of-content\">Skip to content</a>\n <span>\n <span></span>\n</span></p>\n <h2>Navigation Menu</h2>\n <div>\n <div>\n <a target=\"_blank\" href=\"https://github.com/\">\n </a>\n <div>\n <p><a target=\"_blank\" href=\"https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fexpressjs%2Fdiscussions%2Fissues%2F233\">\n Sign in\n </a></p><div>\n Appearance settings\n </div>\n </div>\n </div>\n <div>\n <ul>\n <li>\n <div>\n <div>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://github.com/features/copilot\">\n <div>\n <p>\n GitHub Copilot\n </p><p>\n Write better code with AI\n </p></div>\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/features/models\">\n <div>\n <p>\n GitHub Models\n <span>\n New\n </span>\n </p><p>\n Manage and compare prompts\n </p></div>\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/security/advanced-security\">\n <div>\n <p>\n GitHub Advanced Security\n </p><p>\n Find and fix vulnerabilities\n </p></div>\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/features/actions\">\n <div>\n <p>\n Actions\n </p><p>\n Automate any workflow\n </p></div>\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/features/codespaces\">\n <div>\n <p>\n Codespaces\n </p><p>\n Instant dev environments\n </p></div>\n</a></li>\n </ul>\n </div>\n <div>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://github.com/features/issues\">\n <div>\n <p>\n Issues\n </p><p>\n Plan and track work\n </p></div>\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/features/code-review\">\n <div>\n <p>\n Code Review\n </p><p>\n Manage code changes\n </p></div>\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/features/discussions\">\n <div>\n <p>\n Discussions\n </p><p>\n Collaborate outside of code\n </p></div>\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/features/code-search\">\n <div>\n <p>\n Code Search\n </p><p>\n Find more, search less\n </p></div>\n</a></li>\n </ul>\n </div>\n </div>\n</li>\n <li>\n</li>\n <li>\n <div>\n <p><span>Explore</span></p><ul>\n <li>\n <a target=\"_blank\" href=\"https://resources.github.com/learn/pathways\">\n Learning Pathways\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://resources.github.com/\">\n Events &amp; Webinars\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/resources/whitepapers\">\n Ebooks &amp; Whitepapers\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/customer-stories\">\n Customer Stories\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://partner.github.com/\">\n Partners\n</a></li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/solutions/executive-insights\">\n Executive Insights\n</a></li>\n </ul>\n </div>\n</li>\n <li>\n <div>\n <div>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://github.com/sponsors\">\n <div>\n <p>\n GitHub Sponsors\n </p><p>\n Fund open source developers\n </p></div>\n</a></li>\n </ul>\n </div>\n <div>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://github.com/readme\">\n <div>\n <p>\n The ReadME Project\n </p><p>\n GitHub community articles\n </p></div>\n</a></li>\n </ul>\n </div>\n </div>\n</li>\n <li>\n <div>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://github.com/enterprise\">\n <div>\n <p>\n Enterprise platform\n </p><p>\n AI-powered developer platform\n </p></div>\n</a></li>\n </ul>\n </div>\n</li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/pricing\">Pricing</a>\n</li>\n </ul>\n <div>\n <div>\n <div>\n <p>\n </p><h2 id=\"feedback-dialog-title\">\n Provide feedback\n </h2>\n <p></p>\n </div>\n <div>\n <p>\n </p><h2 id=\"custom-scopes-dialog-title\">\n Saved searches\n </h2>\n <h2 id=\"custom-scopes-dialog-description\">Use saved searches to filter your results more quickly</h2>\n <p></p>\n </div>\n </div>\n <p><a target=\"_blank\" href=\"https://github.com/signup?ref_cta=Sign+up&amp;ref_loc=header+logged+out&amp;ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&amp;source=header-repo&amp;source_repo=expressjs%2Fdiscussions\">\n Sign up\n </a></p><div>\n Appearance settings\n </div>\n </div>\n </div>\n </div>\n </div>\n <div>\n <div>\n <div>\n <ul>\n <li>\n <a target=\"_blank\" href=\"https://github.com/login?return_to=%2Fexpressjs%2Fdiscussions\"> Notifications\n</a> You must be signed in to change notification settings\n </li>\n <li>\n <a target=\"_blank\" href=\"https://github.com/login?return_to=%2Fexpressjs%2Fdiscussions\"> Fork\n <span>21</span>\n</a>\n </li>\n <li>\n <p>\n <a target=\"_blank\" href=\"https://github.com/login?return_to=%2Fexpressjs%2Fdiscussions\"> <span>\n Star\n</span> <span>69</span>\n</a></p>\n </li>\n</ul>\n </div>\n </div>\n <div>\n <div><p><a target=\"_blank\" href=\"https://github.com/UlisesGascon\"><img alt=\"@UlisesGascon\" src=\"https://avatars.githubusercontent.com/u/5110813?u=3c41facd8aa26154b9451de237c34b0f78d672a5&amp;v=4&amp;size=80\" /></a></p><div><h2>Description</h2><div><div><p><a target=\"_blank\" href=\"https://github.com/UlisesGascon\"><img alt=\"@UlisesGascon\" src=\"https://avatars.githubusercontent.com/u/5110813?u=3c41facd8aa26154b9451de237c34b0f78d672a5&amp;v=4&amp;size=48\" /></a></p></div><div><p>This issue includes a reference to all the PRs/issues or pending tasks for Express and dependencies needed to finally ship Express@5.</p>\n<h3>Rules (WIP):</h3>\n<ul>\n<li>If something is completed, just marked</li>\n<li>If there is a PR/Issue/Discussion please add it (try to use one item)</li>\n<li>If there is someone taking ownership on it, please add it. Ownership means to be the focal point for it not necessarily the person who makes the final change.</li>\n<li>If there is no leader, feel free to claim it.</li>\n<li>If you can no longer lead something, just let others claim it back</li>\n<li>As this issue can have many comments, feel free to address them and then mark the original comment as \"outdated\" (<a target=\"_blank\" href=\"https://docs.github.com/en/communities/moderating-comments-and-conversations/managing-disruptive-comments#hiding-a-comment\">details</a>) so it is easier to follow.</li>\n</ul>\n<p>If you think that any reference is missing, please edit this comment (@expressjs/express-tc) or reply with a comment if you don't have the permissions.</p>\n<h3>Pending things (Express):</h3>\n<ul>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/5627\">add support Node.js@22 in the CI<span> express#5627</span></a></span> (<a target=\"_blank\" href=\"https://github.com/mertcanaltin\">@mertcanaltin</a>)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/5595\">Adopt Node@18 as the minimum supported version<span> express#5595</span></a></span> (<a target=\"_blank\" href=\"https://github.com/UlisesGascon\">@UlisesGascon</a> )</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/4861\">Use object with null prototype for various app properties<span> express#4861</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/5792\">Ignore <code>expires</code> and <code>maxAge</code> in <code>res.clearCookie()</code><span> express#5792</span></a></span> (<a target=\"_blank\" href=\"https://github.com/jonchurch\">@jonchurch</a>)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/4835\">Use object with null prototype for settings<span> express#4835</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/4212\">Throw on invalid status codes<span> express#4212</span></a></span> (<a target=\"_blank\" href=\"https://github.com/jonchurch\">@jonchurch</a>)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/3216\">Call callback once on listen error<span> express#3216</span></a></span> (<a target=\"_blank\" href=\"https://github.com/wesleytodd\">@wesleytodd</a>)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/expressjs.com/issues/1464\">Update 5.0 version in Migration Guide<span> expressjs.com#1464</span></a></span> (<a target=\"_blank\" href=\"https://github.com/crandmck\">@crandmck</a>)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/expressjs.com/issues/1408\">express 5 router wildcard does not work as documented<span> expressjs.com#1408</span></a></span> (<a target=\"_blank\" href=\"https://github.com/blakeembrey\">@blakeembrey</a> )</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/5677\">Use Array.flat instead of array-flatten<span> express#5677</span></a></span> (<a target=\"_blank\" href=\"https://github.com/UlisesGascon\">@UlisesGascon</a> )</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/discussions/issues/256\">List of dependencies to upgrade<span> #256</span></a></span> (<a target=\"_blank\" href=\"https://github.com/UlisesGascon\">@UlisesGascon</a> / <a target=\"_blank\" href=\"https://github.com/IamLizu\">@IamLizu</a>)</li>\n</ul>\n<h3>Pending things (Dependencies):</h3>\n<ul>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/5885\">router@^2.0.0<span> express#5885</span></a></span> (<a target=\"_blank\" href=\"https://github.com/wesleytodd\">@wesleytodd</a>)\n<ul>\n<li> <span><a target=\"_blank\" href=\"https://github.com/pillarjs/router/pull/117\">path-to-regexp@^8.0.0<span> pillarjs/router#117</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/pillarjs/router/pull/60\">Release 2.0<span> pillarjs/router#60</span></a></span></li>\n</ul>\n</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/body-parser/pull/66\">Release 2.0<span> body-parser#66</span></a></span> (<a target=\"_blank\" href=\"https://github.com/wesleytodd\">@wesleytodd</a>)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/body-parser/pull/406\">Added support for brotli ('br') content-encoding<span> body-parser#406</span></a></span> (<a target=\"_blank\" href=\"https://github.com/wesleytodd\">@wesleytodd</a> or <a target=\"_blank\" href=\"https://github.com/UlisesGascon\">@UlisesGascon</a> or TBD)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/body-parser/pull/387\">Also use the qs module for the simple parser<span> body-parser#387</span></a></span> (<a target=\"_blank\" href=\"https://github.com/wesleytodd\">@wesleytodd</a>)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/body-parser/pull/326\">urlencoded: Support iso-8859-1, utf8 sentinel, and numeric entities<span> body-parser#326</span></a></span> (<a target=\"_blank\" href=\"https://github.com/wesleytodd\">@wesleytodd</a>)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/pillarjs/send/pull/208\">Release 1.0<span> pillarjs/send#208</span></a></span> (<a target=\"_blank\" href=\"https://github.com/blakeembrey\">@blakeembrey</a> or <a target=\"_blank\" href=\"https://github.com/wesleytodd\">@wesleytodd</a> its a race)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/serve-static/pull/165\">Release 2.0<span> serve-static#165</span></a></span> (<a target=\"_blank\" href=\"https://github.com/wesleytodd\">@wesleytodd</a>)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/jshttp/mime-types/pull/129\">Release: 3.0<span> jshttp/mime-types#129</span></a></span> (<a target=\"_blank\" href=\"https://github.com/wesleytodd\">@wesleytodd</a>)\n<ul>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/5882\">mime-types@3<span> express#5882</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/5881\">accepts@2<span> express#5881</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/5883\">type-is@^2.0.0<span> express#5883</span></a></span></li>\n</ul>\n</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/5899\">fix(deps): finalhandler@^2.0.0<span> express#5899</span></a></span>\n<ul>\n<li> <span><a target=\"_blank\" href=\"https://github.com/pillarjs/finalhandler/pull/55\">2.x Staging PR<span> pillarjs/finalhandler#55</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/pillarjs/finalhandler/pull/57\">fix: gracefully handle when handling an error and socket is null<span> pillarjs/finalhandler#57</span></a></span></li>\n</ul>\n</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/jshttp/fresh/pull/38\">Fix: Expect return true immediately if If-None-Match matches the ETag header (#35)<span> jshttp/fresh#38</span></a></span> (<a target=\"_blank\" href=\"https://github.com/jonchurch\">@jonchurch</a>)</li>\n<li> Look through the direct deps to see if they have things which need to land,, or releases to cut, untracked WORK! (<a target=\"_blank\" href=\"https://github.com/wesleytodd\">@wesleytodd</a>)</li>\n<li> Ensure each of the dependencies updates their transitives</li>\n</ul>\n<h3>Pending things (Documentation):</h3>\n<ul>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/expressjs.com/issues/1483\">Add blog<span> expressjs.com#1483</span></a></span> It will great to do an announcement in the blog about the release and celebrate this big milestone for the project 🥳 (<a target=\"_blank\" href=\"https://github.com/UlisesGascon\">@UlisesGascon</a> )</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/expressjs.com/issues/1466\">Update security and performance best practices<span> expressjs.com#1466</span></a></span> Should be offer a fresh version when v5 is ready? (<a target=\"_blank\" href=\"https://github.com/UlisesGascon\">@UlisesGascon</a> )</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/expressjs.com/issues/1479\">Review and Update v5.x Documentation against v4.x<span> expressjs.com#1479</span></a></span> (<a target=\"_blank\" href=\"https://github.com/UlisesGascon\">@UlisesGascon</a> )</li>\n</ul>\n<h3>Discussions pending:</h3>\n<p><strong>New</strong></p>\n<ul>\n<li> Express Generator? <a target=\"_blank\" href=\"https://github.com/expressjs/discussions/issues/233#issuecomment-2102971156\">Context</a></li>\n</ul>\n<p><strong>Under Investigation</strong></p>\n<ul>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/2692\">Cleaner way for redirecting back to the Referrer<span> express#2692</span></a></span> (<a target=\"_blank\" href=\"https://github.com/blakeembrey\">@blakeembrey</a> )</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/2653\">Resolve paths for views asynchronously<span> express#2653</span></a></span> (<a target=\"_blank\" href=\"https://github.com/blakeembrey\">@blakeembrey</a> )</li>\n</ul>\n<h3>Decisions made:</h3>\n<p><strong>Not in 5.x</strong></p>\n<ul>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/3730\">Support http/2.<span> express#3730</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/3214\">Moves req/res out of the repo<span> express#3214</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/3218\">Settings functionality moved out of core<span> express#3218</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/3213\">Remove direct http dependency<span> express#3213</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/2648\">separate locals from config values<span> express#2648</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/body-parser/pull/524\">rebase: Generic Body Parser implemented<span> body-parser#524</span></a></span></li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/jshttp/on-finished/pull/31\">response is only finished if socket is detached<span> jshttp/on-finished#31</span></a></span> (<a target=\"_blank\" href=\"https://github.com/UlisesGascon\">@UlisesGascon</a>)</li>\n</ul>\n<p><strong>Future Minors</strong></p>\n<ul>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/5856\">feat(response): new setting strict status codes<span> express#5856</span></a></span> (<a target=\"_blank\" href=\"https://github.com/aagamezl\">@aagamezl</a>)</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/5492\">New Integration tests (example split continuation)<span> express#5492</span></a></span> (<a target=\"_blank\" href=\"https://github.com/UlisesGascon\">@UlisesGascon</a> )</li>\n<li> <span><a target=\"_blank\" href=\"https://github.com/expressjs/express/pull/3259\">Moves compileQueryParser to separate module<span> express#3259</span></a></span> (<a target=\"_blank\" href=\"https://github.com/wesleytodd\">@wesleytodd</a>)</li>\n</ul></div></div></div></div>\n</div>\n </div>\n </div>",
"author": "",
"favicon": "https://github.githubassets.com/favicons/favicon.svg",
"source": "github.com",
"published": "2024-04-24t22:39:12.000z",
"ttr": 133,
"type": "object"
}