From 4276d3e831fcbfe88e3e8c099e39140bef8229d6 Mon Sep 17 00:00:00 2001 From: Jon Church Date: Thu, 19 Jun 2025 22:30:27 -0400 Subject: [PATCH 01/26] add write perms to meeting action post default token perm change (#397) --- .github/workflows/meetings.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/meetings.yml b/.github/workflows/meetings.yml index 1518849..e05eea8 100644 --- a/.github/workflows/meetings.yml +++ b/.github/workflows/meetings.yml @@ -6,6 +6,11 @@ on: - master schedule: - cron: '0 0 * * *' + +permissions: + issues: write + contents: read + jobs: meeting: runs-on: ubuntu-latest From bf0e895d261613479b5b6fc9712a750cd3f6ff13 Mon Sep 17 00:00:00 2001 From: Jon Church Date: Sun, 22 Jun 2025 15:00:13 -0400 Subject: [PATCH 02/26] meetings: remove PR and push triggers, add workflow_dispatch (#398) * remove PR and push triggers, add workflow_dispatch * run on pr when pr is against meeting template or workflow --- .github/workflows/meetings.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/meetings.yml b/.github/workflows/meetings.yml index e05eea8..3449638 100644 --- a/.github/workflows/meetings.yml +++ b/.github/workflows/meetings.yml @@ -1,9 +1,10 @@ name: Schedule Meetings on: + workflow_dispatch: pull_request: - push: - branches: - - master + paths: + - '.github/workflows/meetings.yml' + - '.github/ISSUE_TEMPLATE/meeting.md' schedule: - cron: '0 0 * * *' From 31d2ad2796bafbd81b62180d35cb55e155e40aad Mon Sep 17 00:00:00 2001 From: Sebastian Beltran Date: Mon, 23 Jun 2025 15:41:49 -0500 Subject: [PATCH 03/26] feat(adr): add TypeScript Working Group ADR (#369) * feat(adr): add TypeScript Working Group ADR Signed-off-by: Sebastian Beltran * Update docs/adr/typescript-wg.md Co-authored-by: Jon Church * Update docs/adr/typescript-wg.md Co-authored-by: Jon Church * Update docs/adr/typescript-wg.md Co-authored-by: Jon Church * Update docs/adr/typescript-wg.md Co-authored-by: Wes Todd * Update docs/adr/typescript-wg.md Co-authored-by: Wes Todd --------- Signed-off-by: Sebastian Beltran Co-authored-by: Jon Church Co-authored-by: Wes Todd --- docs/adr/typescript-wg.md | 72 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 docs/adr/typescript-wg.md diff --git a/docs/adr/typescript-wg.md b/docs/adr/typescript-wg.md new file mode 100644 index 0000000..e25463b --- /dev/null +++ b/docs/adr/typescript-wg.md @@ -0,0 +1,72 @@ +# ADR #005: TypeScript Working Group + +## Status + +Proposed + +## Submitters + +- @bjohansebas + +## Decision Owners + +- @expressjs/express-tc + +## Context + +TypeScript is now widely adopted and has a large, active community. Many developers use it alongside packages maintained by the Express project. As such, there's a growing need to enhance TypeScript support — both by maintaining accurate type definitions and by addressing existing and future issues related to typings. + +- **Why do we need this decision?** + +As the Express project continues to evolve, we want to improve our engagement with the community. Having a dedicated group focused on TypeScript-related matters will enhance our support, especially since not all maintainers are familiar with TypeScript. An active working group will help manage and resolve type-related issues effectively. + +- **What problem does it solve or avoid?** + +This proposal aims to establish a dedicated team responsible for maintaining TypeScript types, whether in DefinitelyTyped or directly within the repositories. It will also help triage and resolve the numerous issues reported daily related to type definitions. + +- **Are there any existing issues/discussions/pull requests related to this?**: + + - https://github.com/expressjs/discussions/issues/192 + - https://github.com/expressjs/express/issues/2818 + +## Decision + +Similar to the Security WG and Performance WG, we will set up a new repository (expressjs/typescript-wg) along with a corresponding action plan. This working group will be empowered to build consensus and make decisions within its scope. Its core responsibilities will include: + +- Ensure `express` package types are semantically correct, current with the implementation, and provide a high-quality developer experience +- Making decisions on TypeScript support within Express-maintained repositories +- Maintaining up-to-date TypeScript type definitions +- Enhancing documentation for TypeScript usage across Express packages +- Support testing type accuracy while in development and CI +- Ensure that types shared across Express Project packages are updated in sync to prevent build errors across the ecosystem + +### Initial Goal + +The TypeScript Working Group’s initial goal is to ensure that the `express` package has **high-quality, semantically correct, and up-to-date type definitions that accurately reflect its public API.** + +As part of this effort, the working group will also evaluate whether and how to support types in other Express-maintained packages. Decisions around publishing first party types vs. DefinitelyTyped maintenance, release cycle alignment, and tooling support will be developed collaboratively and documented as part of the group's ongoing charter. +We will need to take a few actions to get this started: + +1. Create a new `typescript-wg` repo +2. Create teams: `@expressjs/typescript-wg`, `@pillarjs/typescript-wg`, `@jshttp/typescript-wg` +3. Write charter/goals doc in the new repo + +## Rationale + +Since Express has become active again and the new version, Express v5, has been released, several issues related to typings have emerged. There have also been discussions about actively integrating type definitions within the repositories. + +Most packages under the Express umbrella are not written in TypeScript, and not all maintainers are interested in taking on type maintenance responsibilities. A small number (such as `path-to-regexp`) maintain their own types, but this is the exception rather than the norm. + +The proposed working group provides a focused avenue for contributors who are interested in TypeScript to collaboratively improve, maintain, and guide the strategy for type definitions across Express projects, starting with the core `express` package. + +## References + +- https://github.com/expressjs/discussions/issues/192 +- https://github.com/expressjs/express/issues/2818 + +## Changelog + +Track changes or updates to this ADR over time. Include the date, author, and a brief description of each change. + +- **[2025-05-28]**: [@bjohansebas] - Initial draft + From 97d3ca6650fb25eff9ab12ef0c8dbf506d440b6e Mon Sep 17 00:00:00 2001 From: Wes Todd Date: Thu, 10 Jul 2025 11:08:23 -0500 Subject: [PATCH 04/26] fix(docs): fixed broken link --- docs/adr/adr-xxx-adoption-of-ossf-scorecard-for-express.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/adr/adr-xxx-adoption-of-ossf-scorecard-for-express.md b/docs/adr/adr-xxx-adoption-of-ossf-scorecard-for-express.md index 33d87e8..538b204 100644 --- a/docs/adr/adr-xxx-adoption-of-ossf-scorecard-for-express.md +++ b/docs/adr/adr-xxx-adoption-of-ossf-scorecard-for-express.md @@ -33,7 +33,7 @@ The Express project will adopt OSSF Scorecard reporting as part of its security ### Exclusions -- Some suggestions made by the Scorecard may not be implemented in the organization for various reasons. For example, we decided that [pinning dependencies is considered optional](https://github.com/expressjs/discussions/blob/master/docs/adr/action-pinning.md). It is important to reach consensus before making bulk changes across repositories. +- Some suggestions made by the Scorecard may not be implemented in the organization for various reasons. For example, we decided that [pinning dependencies is considered optional](https://github.com/expressjs/discussions/blob/master/docs/adr/366-action-pinning.md). It is important to reach consensus before making bulk changes across repositories. ## Rationale From b712556164fa62edecdcef7df5aa7fef40d71485 Mon Sep 17 00:00:00 2001 From: Jean Burellier Date: Mon, 7 Jul 2025 21:31:00 +0200 Subject: [PATCH 05/26] fix: markdown linter issues --- docs/adr/typescript-wg.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/adr/typescript-wg.md b/docs/adr/typescript-wg.md index e25463b..3b867d5 100644 --- a/docs/adr/typescript-wg.md +++ b/docs/adr/typescript-wg.md @@ -26,8 +26,8 @@ This proposal aims to establish a dedicated team responsible for maintaining Typ - **Are there any existing issues/discussions/pull requests related to this?**: - - https://github.com/expressjs/discussions/issues/192 - - https://github.com/expressjs/express/issues/2818 + - + - ## Decision @@ -61,12 +61,11 @@ The proposed working group provides a focused avenue for contributors who are in ## References -- https://github.com/expressjs/discussions/issues/192 -- https://github.com/expressjs/express/issues/2818 +- +- ## Changelog Track changes or updates to this ADR over time. Include the date, author, and a brief description of each change. - **[2025-05-28]**: [@bjohansebas] - Initial draft - From e1595a594964a3615efc98a8b3e441cde8674704 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulises=20Gasc=C3=B3n?= Date: Tue, 22 Jul 2025 18:15:12 +0200 Subject: [PATCH 06/26] feat: nominate @Phillip9587 as committer to jshttp/on-finished (#372) --- docs/contributing/captains_and_committers.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/contributing/captains_and_committers.md b/docs/contributing/captains_and_committers.md index 1daad72..1594c68 100644 --- a/docs/contributing/captains_and_committers.md +++ b/docs/contributing/captains_and_committers.md @@ -55,7 +55,9 @@ - [`jshttp/mime-db`](https://github.com/jshttp/mime-db): @blakeembrey, @UlisesGascon - [`jshttp/mime-types`](https://github.com/jshttp/mime-types): @blakeembrey, @UlisesGascon - [`jshttp/negotiator`](https://github.com/jshttp/negotiator): @blakeembrey -- [`jshttp/on-finished`](https://github.com/jshttp/on-finished): @wesleytodd, @ulisesGascon +- [`jshttp/on-finished`](https://github.com/jshttp/on-finished): + - Captains: @wesleytodd, @ulisesGascon + - Committers: @Phillip9587 - [`jshttp/on-headers`](https://github.com/jshttp/on-headers): @blakeembrey - [`jshttp/proxy-addr`](https://github.com/jshttp/proxy-addr): @wesleytodd, @ulisesGascon - [`jshttp/range-parser`](https://github.com/jshttp/range-parser): @blakeembrey From 51397daa18961e499e2faa06b8eeb562eb71bfbf Mon Sep 17 00:00:00 2001 From: Wes Todd Date: Wed, 30 Jul 2025 14:00:21 -0700 Subject: [PATCH 07/26] fix: TC to meet 2 hours earlier (#408) --- .github/workflows/meetings.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/meetings.yml b/.github/workflows/meetings.yml index 3449638..e255869 100644 --- a/.github/workflows/meetings.yml +++ b/.github/workflows/meetings.yml @@ -26,7 +26,7 @@ jobs: meetingLabels: 'meeting' # https://github.com/expressjs/discussions/issues/195#issuecomment-1973732769 # Starting on 2024-03-18 at 9pm UTC (2024-03-18T21:00:00.0Z) with a period of 2 weeks (P2W) - schedules: '2024-03-18T21:00:00.0Z/P2W' + schedules: '2024-03-18T19:00:00.0Z/P2W' createWithin: 'P1W' meetingLink: 'https://zoom-lfx.platform.linuxfoundation.org/meeting/95266714809?password=f37cff1b-cb3a-4a21-9425-210e4714c72e' issueTemplate: 'meeting.md' From fc096c8285cf515a9437c38d56384d8aed27ea19 Mon Sep 17 00:00:00 2001 From: ctcpip Date: Wed, 6 Aug 2025 13:33:09 -0500 Subject: [PATCH 08/26] =?UTF-8?q?=F0=9F=9A=91=EF=B8=8F=20fix=20meeting=20t?= =?UTF-8?q?imes,=20update=20to=20meet=20v1,=20normalize=20template?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/meeting.md | 31 +++++++++++++++++++++++-------- .github/workflows/meetings.yml | 19 ++++++++----------- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/meeting.md b/.github/ISSUE_TEMPLATE/meeting.md index 1d5f1fa..5334a16 100644 --- a/.github/ISSUE_TEMPLATE/meeting.md +++ b/.github/ISSUE_TEMPLATE/meeting.md @@ -1,8 +1,4 @@ -## Date/Time - -| Timezone | Date/Time | -|----------|-----------| -<%= [ +<% const timezones = [ 'America/Los_Angeles', 'America/Denver', 'America/Chicago', @@ -14,12 +10,31 @@ 'Asia/Shanghai', 'Asia/Tokyo', 'Australia/Sydney' -].map((zone) => { - return `| ${zone} | ${date.setZone(zone).toFormat('EEE dd-MMM-yyyy HH:mm (hh:mm a)')} |` +]; %> + +## Date/Time + +| Timezone | Date/Time | +|----------|-----------| +<%= timezones.map((zone) => { + const zonedDate = date.toZonedDateTimeISO(zone) + const formatter = new Intl.DateTimeFormat('en-US', { + weekday: 'short', + month: 'short', + day: '2-digit', + year: 'numeric', + hour: '2-digit', + minute: '2-digit', + hour12: true, + timeZone: zone + }) + const formattedDate = formatter.format(new Date(zonedDate.epochMilliseconds)) + return `| ${zone} | ${formattedDate} |` }).join('\n') %> Or in your local time: -* https://www.timeanddate.com/worldclock/?iso=<%= date.toFormat("yyyy-MM-dd'T'HH:mm:ss") %> + +* https://www.timeanddate.com/worldclock/?iso=<%= date.toZonedDateTimeISO('UTC').toPlainDateTime().toString() %> ## Agenda diff --git a/.github/workflows/meetings.yml b/.github/workflows/meetings.yml index e255869..13be25d 100644 --- a/.github/workflows/meetings.yml +++ b/.github/workflows/meetings.yml @@ -17,32 +17,29 @@ jobs: runs-on: ubuntu-latest steps: - name: Technical Committee - uses: 'pkgjs/meet@v0' + uses: 'pkgjs/meet@v1' with: - issueTitle: '<%= date.toFormat("yyyy-MM-dd") %> Express TC Meeting' + issueTitle: '<%= date.toZonedDateTimeISO("UTC").toPlainDate().toString() %> Express TC Meeting' token: ${{ secrets.GITHUB_TOKEN }} orgs: expressjs,pillarjs,jshttp agendaLabel: 'tc agenda' meetingLabels: 'meeting' - # https://github.com/expressjs/discussions/issues/195#issuecomment-1973732769 - # Starting on 2024-03-18 at 9pm UTC (2024-03-18T21:00:00.0Z) with a period of 2 weeks (P2W) - schedules: '2024-03-18T19:00:00.0Z/P2W' + # Monday 1 PM America/Chicago with a period of 2 weeks (P2W) + schedules: '2025-08-04T13:00:00.0[America/Chicago]/P2W' createWithin: 'P1W' meetingLink: 'https://zoom-lfx.platform.linuxfoundation.org/meeting/95266714809?password=f37cff1b-cb3a-4a21-9425-210e4714c72e' issueTemplate: 'meeting.md' - name: Working Session - uses: 'pkgjs/meet@v0' + uses: 'pkgjs/meet@v1' with: - issueTitle: '<%= date.toFormat("yyyy-MM-dd") %> Express Working Session' + issueTitle: '<%= date.toZonedDateTimeISO("UTC").toPlainDate().toString() %> Express Working Session' token: ${{ secrets.GITHUB_TOKEN }} orgs: expressjs,pillarjs,jshttp agendaLabel: 'top priority' meetingLabels: 'meeting' - # Converting the second time slot to a "working session" - # https://github.com/expressjs/discussions/issues/195#issuecomment-1973732769 - # Starting on 2024-03-27 at 9pm UTC (2024-03-27T21:00:00.0Z) with a period of 2 weeks (P2W) - schedules: '2024-03-27T21:00:00.0Z/P2W' + # Wednesday 1 PM America/Chicago with a period of 2 weeks (P2W) + schedules: '2025-08-13T13:00:00.0[America/Chicago]/P2W' createWithin: 'P1W' meetingLink: 'https://zoom-lfx.platform.linuxfoundation.org/meeting/95258037175?password=07aad89d-ff43-45df-9b28-f437e167a0b9' issueTemplate: 'meeting.md' From 6a474ee717624d11227ccf992c879b7331744855 Mon Sep 17 00:00:00 2001 From: ctcpip Date: Thu, 7 Aug 2025 12:57:05 -0500 Subject: [PATCH 09/26] =?UTF-8?q?=F0=9F=90=9B=20fix=20time=20converter=20l?= =?UTF-8?q?ink?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/meeting.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/meeting.md b/.github/ISSUE_TEMPLATE/meeting.md index 5334a16..7ad4ad1 100644 --- a/.github/ISSUE_TEMPLATE/meeting.md +++ b/.github/ISSUE_TEMPLATE/meeting.md @@ -34,7 +34,7 @@ Or in your local time: -* https://www.timeanddate.com/worldclock/?iso=<%= date.toZonedDateTimeISO('UTC').toPlainDateTime().toString() %> +* https://www.timeanddate.com/worldclock/fixedtime.html?msg=<%= encodeURIComponent(title) %>&iso=<%= date.toZonedDateTimeISO('UTC').toPlainDateTime().toString().slice(0, 16).replace(/[-:]/g, '') %>&p1=1440&ah=1 ## Agenda From 8915b7df11da8b4cde913a97fab5c9b73524cdc6 Mon Sep 17 00:00:00 2001 From: Chris de Almeida Date: Wed, 27 Aug 2025 08:32:28 -0500 Subject: [PATCH 10/26] =?UTF-8?q?=F0=9F=95=B0=EF=B8=8F=20fix=20working=20s?= =?UTF-8?q?ession=20meeting=20time?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit as agreed at the 2025-08-18 express meeting, this meeting time should return to the previous time of 15:00 America/Chicago --- .github/workflows/meetings.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/meetings.yml b/.github/workflows/meetings.yml index 13be25d..319450c 100644 --- a/.github/workflows/meetings.yml +++ b/.github/workflows/meetings.yml @@ -38,8 +38,8 @@ jobs: orgs: expressjs,pillarjs,jshttp agendaLabel: 'top priority' meetingLabels: 'meeting' - # Wednesday 1 PM America/Chicago with a period of 2 weeks (P2W) - schedules: '2025-08-13T13:00:00.0[America/Chicago]/P2W' + # Wednesday 3 PM America/Chicago with a period of 2 weeks (P2W) + schedules: '2025-08-13T15:00:00.0[America/Chicago]/P2W' createWithin: 'P1W' meetingLink: 'https://zoom-lfx.platform.linuxfoundation.org/meeting/95258037175?password=07aad89d-ff43-45df-9b28-f437e167a0b9' issueTemplate: 'meeting.md' From eea0981db873e20399e577da9adaa23684d45242 Mon Sep 17 00:00:00 2001 From: Chris de Almeida Date: Wed, 27 Aug 2025 09:19:17 -0500 Subject: [PATCH 11/26] =?UTF-8?q?=F0=9F=95=B0=EF=B8=8F=20add=20timezones?= =?UTF-8?q?=20to=20meeting=20template?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/meeting.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/meeting.md b/.github/ISSUE_TEMPLATE/meeting.md index 7ad4ad1..527876c 100644 --- a/.github/ISSUE_TEMPLATE/meeting.md +++ b/.github/ISSUE_TEMPLATE/meeting.md @@ -2,9 +2,13 @@ 'America/Los_Angeles', 'America/Denver', 'America/Chicago', + 'America/Bogota', 'America/New_York', + 'UTC', 'Europe/London', - 'Europe/Amsterdam', + 'Europe/Madrid', + 'Europe/Paris', + 'Europe/Warsaw', 'Europe/Moscow', 'Asia/Kolkata', 'Asia/Shanghai', From b4a6c38d0012bb4d6f1e1c0a0921b92098c433cc Mon Sep 17 00:00:00 2001 From: shubham oulkar <91728992+ShubhamOulkar@users.noreply.github.com> Date: Mon, 15 Sep 2025 23:37:46 +0530 Subject: [PATCH 12/26] feat: Add @shubhamOulkar as committer to expressjs/expressjs.com (#393) https://github.com/expressjs/expressjs.com/issues/1897 --- docs/contributing/captains_and_committers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contributing/captains_and_committers.md b/docs/contributing/captains_and_committers.md index 1594c68..e1f6b0e 100644 --- a/docs/contributing/captains_and_committers.md +++ b/docs/contributing/captains_and_committers.md @@ -21,7 +21,7 @@ - committers: @bjohansebas, @Phillip9587 - [`expressjs/expressjs.com`](https://github.com/expressjs/expressjs.com): - captains: @crandmck, @jonchurch, @bjohansebas - - committers: @carlosstenzel, @chrisdel101 + - committers: @carlosstenzel, @chrisdel101, @ShubhamOulkar - [`expressjs/flash`](https://github.com/expressjs/flash): @ulisesGascon - [`expressjs/generator`](https://github.com/expressjs/generator): @wesleytodd - [`expressjs/method-override`](https://github.com/expressjs/method-override): @ulisesGascon From af47a44357f136b9b8ed46a324e00a30bdbe9f10 Mon Sep 17 00:00:00 2001 From: Wes Todd Date: Mon, 15 Sep 2025 13:48:55 -0500 Subject: [PATCH 13/26] fix(docs): perf-wg, security-wg, docs-wg, remove wes from body-parser (#360) --- docs/contributing/captains_and_committers.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/contributing/captains_and_committers.md b/docs/contributing/captains_and_committers.md index e1f6b0e..68ae400 100644 --- a/docs/contributing/captains_and_committers.md +++ b/docs/contributing/captains_and_committers.md @@ -3,7 +3,7 @@ - [`expressjs/badgeboard`](https://github.com/expressjs/badgeboard): @wesleytodd - [`expressjs/basic-auth-connect`](https://github.com/expressjs/basic-auth-connect): @ulisesGascon - [`expressjs/body-parser`](https://github.com/expressjs/body-parser): - - Captains: @wesleytodd, @jonchurch, @ulisesGascon + - Captains: @jonchurch, @ulisesGascon - Committers: @Phillip9587 - [`expressjs/codemod`](https://github.com/expressjs/codemod): @bjohansebas (npm: `@bsebas`), @kjugi (npm: `@filip.kudla`) - [`expressjs/compression`](https://github.com/expressjs/compression): @@ -82,4 +82,6 @@ ## Current Initiative Captains -- Triage team [ref](https://github.com/expressjs/discussions/issues/227): @UlisesGascon +- [Triage team](https://github.com/expressjs/discussions/issues/227): @UlisesGascon +- [Security WG](https://github.com/expressjs/security-wg): @UlisesGascon +- [Perf WG](https://github.com/expressjs/perf-wg): @wesleytodd From e52abe359eef43f88a0c5f0f040d611212bbe734 Mon Sep 17 00:00:00 2001 From: Sebastian Beltran Date: Mon, 29 Sep 2025 13:10:56 -0500 Subject: [PATCH 14/26] docs: iconv-lite captains (#421) * docs: iconv-lite captains * Update docs/contributing/captains_and_committers.md * Update docs/contributing/captains_and_committers.md --- docs/contributing/captains_and_committers.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/contributing/captains_and_committers.md b/docs/contributing/captains_and_committers.md index 68ae400..2a862bb 100644 --- a/docs/contributing/captains_and_committers.md +++ b/docs/contributing/captains_and_committers.md @@ -72,6 +72,9 @@ - committers: @Phillip9587 - [`pillarjs/hbs`](https://github.com/pillarjs/hbs): @ulisesGascon - [`pillarjs/multiparty`](https://github.com/pillarjs/multiparty): @blakeembrey +- [`pillarjs/iconv-lite`](https://github.com/pillarjs/iconv-lite): + - Captains: @ashtuchkin, @bjohansebas (npm: `@bsebas`) + - Committers: @Phillip9587 - [`pillarjs/parseurl`](https://github.com/pillarjs/parseurl): @blakeembrey - [`pillarjs/path-to-regexp`](https://github.com/pillarjs/path-to-regexp): @blakeembrey - [`pillarjs/request`](https://github.com/pillarjs/request): @wesleytodd From e832cf762fdc62328704275459ab1a77370bc8b2 Mon Sep 17 00:00:00 2001 From: Sebastian Beltran Date: Mon, 29 Sep 2025 13:18:42 -0500 Subject: [PATCH 15/26] docs: clarify release authorization and permissions in release process (#387) * docs: clarify release authorization and permissions in release process Signed-off-by: Sebastian Beltran * docs: enhance clarity and detail in release process documentation Signed-off-by: Sebastian Beltran * Revert "docs: enhance clarity and detail in release process documentation" This reverts commit 891cdf7104c0e80e6a5efcaf19fc82ed689e167e. * docs: simplify the changes Signed-off-by: Sebastian Beltran * formmat Signed-off-by: Sebastian Beltran --------- Signed-off-by: Sebastian Beltran --- docs/contributing/release-process.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/contributing/release-process.md b/docs/contributing/release-process.md index 2063533..87dd20b 100644 --- a/docs/contributing/release-process.md +++ b/docs/contributing/release-process.md @@ -2,25 +2,25 @@ This document contains the technical aspects of the Express release process. The intended audience is those who have been authorized by the Express Technical -Committee (TC) to create, promote and sign official release builds for Express, -as npm packages hosted on . +Committee (TC) to create, promote and sign official release builds for any +package governed by Express. ## Who can make releases? -Release authorization is given by the Express TC. Once authorized, an individual -must have the following access permissions: +According to project governance, only package Captains or members of the Technical +Committee (TC) are permitted to make releases. Captains have the freedom to make releases +for their own package whenever necessary, while TC members may make releases for any package +as needed. ### 1. Github release access -The individual making the release will need to be a member of the -expressjs/express team with Write permission level so they are able to tag the -release commit and push changes to the expressjs/express repository -(see Steps 4 and 5). +The person making the release must be either the package captain or a member of the TC in +order to have sufficient permissions to do the work. ### 2. npmjs.com release access The individual making the release will need to be made an owner on the -`express` package on npmjs.com so they are able to publish the release +package on npmjs.com so they are able to publish the release (see Step 6). ## How to publish a release From b604ca77012a9a4f7ba0ee8ccf91e389a5a42e61 Mon Sep 17 00:00:00 2001 From: Sebastian Beltran Date: Mon, 29 Sep 2025 13:21:22 -0500 Subject: [PATCH 16/26] fix: add inactivity policy for any roles (#378) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(docs): add inactivity policy for any roles Signed-off-by: Sebastian Beltran * Update docs/GOVERNANCE.md Co-authored-by: Ulises Gascón * Update docs/GOVERNANCE.md Co-authored-by: Sebastian Beltran * Update docs/GOVERNANCE.md Co-authored-by: Wes Todd * Update docs/GOVERNANCE.md Co-authored-by: Jon Church * fix lint issues Signed-off-by: Sebastian Beltran * reference to working groups members Signed-off-by: Sebastian Beltran * Update docs/GOVERNANCE.md Co-authored-by: Wes Todd --------- Signed-off-by: Sebastian Beltran Co-authored-by: Ulises Gascón Co-authored-by: Jon Church Co-authored-by: Wes Todd --- docs/GOVERNANCE.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/GOVERNANCE.md b/docs/GOVERNANCE.md index 819f76d..99781c4 100644 --- a/docs/GOVERNANCE.md +++ b/docs/GOVERNANCE.md @@ -156,6 +156,26 @@ The list can be found at [https://github.com/expressjs/discussions/blob/HEAD/doc The list can be found at [https://github.com/expressjs/discussions/blob/HEAD/docs/contributing/captains_and_committers.md#current-initiative-captains](https://github.com/expressjs/discussions/blob/HEAD/docs/contributing/captains_and_committers.md#current-initiative-captains) +## Inactivity and Emeritus Policy for Any Role + +To support the health and continuity of the project, all individuals holding a role within the community (such as Triager, Committer, WG member, Project Captain, or TC member) are encouraged to maintain active participation. + +Inactivity is defined as the absence of meaningful involvement in the project—such as contributions, code reviews, triage, meeting attendance, or discussion participation—for a continuous period of 6 months. + +### Exceptions + +Anyone may request a temporary leave from active participation due to personal or professional reasons. In such cases, the individual should inform the relevant team or the Technical Committee (TC). During this time, the inactivity policy is paused, and the individual will not be flagged as inactive. + +### Inactivity Process + +* If someone is deemed inactive, the individual may be transitioned to an emeritus role that reflects their past contributions. A best effort will be made to inform them that this has occurred. They may request to be reinstated when they are ready to be active again. +* The emeritus status helps preserve a clear record of contributors who have meaningfully shaped the project over time. + +### Accountability + +* The Technical Committee (TC) and the respective captains of each package/team are responsible for assessing activity levels and enacting this policy fairly and transparently, in coordination with other relevant teams. +* In case of disagreement, the situation can be discussed and resolved by consensus within the TC or appropriate team. + ## Developer's Certificate of Origin 1.1 ```text From 5665cb85dde749ba1901145d5e65b2bbb4264261 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulises=20Gasc=C3=B3n?= Date: Tue, 30 Sep 2025 15:50:35 +0200 Subject: [PATCH 17/26] docs: isolate account details (#435) Co-authored-by: Chris de Almeida --- docs/contributing/captains_and_committers.md | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/docs/contributing/captains_and_committers.md b/docs/contributing/captains_and_committers.md index 2a862bb..12467c9 100644 --- a/docs/contributing/captains_and_committers.md +++ b/docs/contributing/captains_and_committers.md @@ -5,7 +5,7 @@ - [`expressjs/body-parser`](https://github.com/expressjs/body-parser): - Captains: @jonchurch, @ulisesGascon - Committers: @Phillip9587 -- [`expressjs/codemod`](https://github.com/expressjs/codemod): @bjohansebas (npm: `@bsebas`), @kjugi (npm: `@filip.kudla`) +- [`expressjs/codemod`](https://github.com/expressjs/codemod): @bjohansebas, @kjugi - [`expressjs/compression`](https://github.com/expressjs/compression): - captains: @UlisesGascon - committers: @bjohansebas @@ -73,7 +73,7 @@ - [`pillarjs/hbs`](https://github.com/pillarjs/hbs): @ulisesGascon - [`pillarjs/multiparty`](https://github.com/pillarjs/multiparty): @blakeembrey - [`pillarjs/iconv-lite`](https://github.com/pillarjs/iconv-lite): - - Captains: @ashtuchkin, @bjohansebas (npm: `@bsebas`) + - Captains: @ashtuchkin, @bjohansebas - Committers: @Phillip9587 - [`pillarjs/parseurl`](https://github.com/pillarjs/parseurl): @blakeembrey - [`pillarjs/path-to-regexp`](https://github.com/pillarjs/path-to-regexp): @blakeembrey @@ -88,3 +88,17 @@ - [Triage team](https://github.com/expressjs/discussions/issues/227): @UlisesGascon - [Security WG](https://github.com/expressjs/security-wg): @UlisesGascon - [Perf WG](https://github.com/expressjs/perf-wg): @wesleytodd + +## Accounts details + +- @ashtuchkin (npm: [~ashtuchkin](https://www.npmjs.com/~ashtuchkin)) +- @bjohansebas (npm: [~bsebas](https://www.npmjs.com/~bsebas)) +- @blakeembrey (npm: [~blakeembrey](https://www.npmjs.com/~blakeembrey)) +- @crandmck (npm: [~crandmck](https://www.npmjs.com/~crandmck)) +- @ctcpip (npm: [~ctcpip](https://www.npmjs.com/~ctcpip)) +- @jonchurch (npm: [~jonchurch](https://www.npmjs.com/~jonchurch)) +- @kjugi (npm: [~filip.kudla](https://www.npmjs.com/~filip.kudla)) +- @LinusU (npm: [~linusu](https://www.npmjs.com/~linusu)) +- @seplu (npm: [~sheplu](https://www.npmjs.com/~sheplu)) +- @ulisesGascon (npm: [~ulisesgascon](https://www.npmjs.com/~ulisesgascon)) +- @wesleytodd (npm: [~wesleytodd](https://www.npmjs.com/~wesleytodd)) From 419042458bc350e1bb1e858b9283e2c393e1e7db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ulises=20Gasc=C3=B3n?= Date: Mon, 27 Oct 2025 17:27:59 +0100 Subject: [PATCH 18/26] docs: reflect cleanup initiative changes (#379) Related expressjs/discussions#134 removes 3 deprecated repos from the list (flash, connect-multiparty, express-paginate) and adds a new line denoting Ulises as captain of the initiative to deprecate repos --- docs/contributing/captains_and_committers.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/contributing/captains_and_committers.md b/docs/contributing/captains_and_committers.md index 12467c9..604d9bf 100644 --- a/docs/contributing/captains_and_committers.md +++ b/docs/contributing/captains_and_committers.md @@ -9,20 +9,17 @@ - [`expressjs/compression`](https://github.com/expressjs/compression): - captains: @UlisesGascon - committers: @bjohansebas -- [`expressjs/connect-multiparty`](https://github.com/expressjs/connect-multiparty): @ulisesGascon - [`expressjs/cookie-parser`](https://github.com/expressjs/cookie-parser): @wesleytodd, @UlisesGascon - [`expressjs/cookie-session`](https://github.com/expressjs/cookie-session): @ulisesGascon - [`expressjs/cors`](https://github.com/expressjs/cors): @jonchurch, @ulisesGascon - [`expressjs/discussions`](https://github.com/expressjs/discussions): @wesleytodd - [`expressjs/errorhandler`](https://github.com/expressjs/errorhandler): @ulisesGascon -- [`expressjs/express-paginate`](https://github.com/expressjs/express-paginate): @ulisesGascon - [`expressjs/express`](https://github.com/expressjs/express): - captains: @wesleytodd, @ulisesGascon - committers: @bjohansebas, @Phillip9587 - [`expressjs/expressjs.com`](https://github.com/expressjs/expressjs.com): - captains: @crandmck, @jonchurch, @bjohansebas - committers: @carlosstenzel, @chrisdel101, @ShubhamOulkar -- [`expressjs/flash`](https://github.com/expressjs/flash): @ulisesGascon - [`expressjs/generator`](https://github.com/expressjs/generator): @wesleytodd - [`expressjs/method-override`](https://github.com/expressjs/method-override): @ulisesGascon - [`expressjs/morgan`](https://github.com/expressjs/morgan): @jonchurch, @ulisesGascon @@ -88,6 +85,7 @@ - [Triage team](https://github.com/expressjs/discussions/issues/227): @UlisesGascon - [Security WG](https://github.com/expressjs/security-wg): @UlisesGascon - [Perf WG](https://github.com/expressjs/perf-wg): @wesleytodd +- Archived repos and deprecated packages: @UlisesGascon ## Accounts details From 6a6b2b3410a846e0a6f03fccfee174809b450147 Mon Sep 17 00:00:00 2001 From: Wes Todd Date: Wed, 12 Nov 2025 03:28:01 -0600 Subject: [PATCH 19/26] fix(docs): Add @bjohansebas as Triage Team captain (#448) --- docs/contributing/captains_and_committers.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/contributing/captains_and_committers.md b/docs/contributing/captains_and_committers.md index 604d9bf..0d2df96 100644 --- a/docs/contributing/captains_and_committers.md +++ b/docs/contributing/captains_and_committers.md @@ -82,7 +82,7 @@ ## Current Initiative Captains -- [Triage team](https://github.com/expressjs/discussions/issues/227): @UlisesGascon +- [Triage team](https://github.com/expressjs/discussions/issues/227): @UlisesGascon, @bjohansebas - [Security WG](https://github.com/expressjs/security-wg): @UlisesGascon - [Perf WG](https://github.com/expressjs/perf-wg): @wesleytodd - Archived repos and deprecated packages: @UlisesGascon From 752baf207bf15aa847d612282427252ef6330d1b Mon Sep 17 00:00:00 2001 From: Sebastian Beltran Date: Mon, 8 Dec 2025 14:11:45 -0500 Subject: [PATCH 20/26] docs: add Typescript captains members (#446) --- docs/contributing/captains_and_committers.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/contributing/captains_and_committers.md b/docs/contributing/captains_and_committers.md index 0d2df96..d53f3e8 100644 --- a/docs/contributing/captains_and_committers.md +++ b/docs/contributing/captains_and_committers.md @@ -85,6 +85,7 @@ - [Triage team](https://github.com/expressjs/discussions/issues/227): @UlisesGascon, @bjohansebas - [Security WG](https://github.com/expressjs/security-wg): @UlisesGascon - [Perf WG](https://github.com/expressjs/perf-wg): @wesleytodd +- [Typescript WG](https://github.com/expressjs/typescript-wg): @jonchurch, @bjohansebas - Archived repos and deprecated packages: @UlisesGascon ## Accounts details From 28a5533227616267f1b6388afe0ef409b65ae1ca Mon Sep 17 00:00:00 2001 From: Sebastian Beltran Date: Tue, 10 Feb 2026 07:22:58 -0500 Subject: [PATCH 21/26] docs: add @AugustinMauroy as commiter on codemod (#469) --- docs/contributing/captains_and_committers.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/contributing/captains_and_committers.md b/docs/contributing/captains_and_committers.md index d53f3e8..188f3a1 100644 --- a/docs/contributing/captains_and_committers.md +++ b/docs/contributing/captains_and_committers.md @@ -5,7 +5,9 @@ - [`expressjs/body-parser`](https://github.com/expressjs/body-parser): - Captains: @jonchurch, @ulisesGascon - Committers: @Phillip9587 -- [`expressjs/codemod`](https://github.com/expressjs/codemod): @bjohansebas, @kjugi +- [`expressjs/codemod`](https://github.com/expressjs/codemod): + - captains: @bjohansebas, @kjugi + - committers: @AugustinMauroy - [`expressjs/compression`](https://github.com/expressjs/compression): - captains: @UlisesGascon - committers: @bjohansebas From b55cc044ec052712f1862b970521b46f6320c015 Mon Sep 17 00:00:00 2001 From: Jean Burellier Date: Wed, 3 Dec 2025 20:48:44 +0100 Subject: [PATCH 22/26] chore: add difference between ADR and RFC --- README.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/README.md b/README.md index d904f66..1bf99e2 100644 --- a/README.md +++ b/README.md @@ -15,3 +15,17 @@ of nature. Current meeting schedule: Wednesdays 23:30 UTC Recordings of past meetings are available on the [Express Youtube Channel](https://www.youtube.com/channel/UCYjxjAeH6TRik9Iwy5nXw7g/videos). + +### RFC vs ADR — The Real Difference + +An **RFC** is a *collaboration tool*: its purpose is to surface a problem, +explore solutions, gather feedback, and drive alignment. +It is iterative, often long-form, and meant for broad input. +An RFC does **not** imply a decision — it is a decision-making *process*. + +An **ADR** is a *recording tool*: its purpose is to capture a decision +that has already been made, including context, trade-offs, and consequences. +It is concise, stable, and part of the architectural history of a system. +An ADR does **not** create alignment — it preserves it. + +In essence: **RFC = how we decide**, **ADR = what we decided and why**. From 815f1105be67da7370b437279d6aaa8663f6e22e Mon Sep 17 00:00:00 2001 From: Jean Burellier Date: Mon, 2 Mar 2026 19:50:55 +0100 Subject: [PATCH 23/26] chore: create template for RFC (#442) --- docs/rfc/0000-template.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 docs/rfc/0000-template.md diff --git a/docs/rfc/0000-template.md b/docs/rfc/0000-template.md new file mode 100644 index 0000000..7daabe5 --- /dev/null +++ b/docs/rfc/0000-template.md @@ -0,0 +1,35 @@ +# {{TITLE: a human-readable title for this RFC!}} + +## Summary + +{{A concise, one-paragraph description of the change.}} + +## Motivation + +{{Why are we doing this? What pain points does this resolve? What use cases does it support? What is the expected outcome? Use real, concrete examples to make your case!}} + +## Detailed Explanation + +{{Describe the expected changes in detail, }} + +## Rationale and Alternatives + +{{Discuss 2-3 different alternative solutions that were considered. This is required, even if it seems like a stretch. Then explain why this is the best choice out of available ones.}} + +## Implementation + +{{Give a high-level overview of implementation requirements and concerns. Be specific about areas of code that need to change, and what their potential effects are. Discuss which repositories and sub-components will be affected, and what its overall code effect might be.}} + +{{THIS SECTION IS REQUIRED FOR RATIFICATION -- you can skip it if you don't know the technical details when first submitting the proposal, but it must be there before it's accepted}} + +## Prior Art + +{{This section is optional if there are no actual prior examples in other tools}} + +{{Discuss existing examples of this change in other tools, and how they've addressed various concerns discussed above, and what the effect of those decisions has been}} + +## Unresolved Questions and Bikeshedding + +{{Write about any arbitrary decisions that need to be made (syntax, colors, formatting, minor UX decisions), and any questions for the proposal that have not been answered.}} + +{{THIS SECTION SHOULD BE REMOVED BEFORE RATIFICATION}} From 61129016c312aad2cae769e6774c356e4ed7cbca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Filip=20Kud=C5=82a?= <11212541+kjugi@users.noreply.github.com> Date: Wed, 1 Apr 2026 17:35:05 +0200 Subject: [PATCH 24/26] ADR: CommonJS and ESM decision (#323) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Create isomorphism-support init doc * update extension for file * Add Link to issue * Add another issue to the list * Update isomorphism-support.md * Update isomorphism-support.md * Update docs/adr/isomorphism-support.md Co-authored-by: Ulises Gascón * Update docs/adr/isomorphism-support.md Co-authored-by: Ulises Gascón * Update docs/adr/isomorphism-support.md Co-authored-by: Ulises Gascón * Update docs/adr/isomorphism-support.md Co-authored-by: Ulises Gascón * Apply suggestions from code review Co-authored-by: Ulises Gascón * Update isomorphism-support.md * Update docs/adr/isomorphism-support.md Co-authored-by: Chris de Almeida * Rename isomorphism-support.md to esm-support.md * Update esm-support.md * Apply suggestion from @wesleytodd Co-authored-by: Wes Todd * ✨ update ESM ADR for accuracy --------- Co-authored-by: Ulises Gascón Co-authored-by: Chris de Almeida Co-authored-by: Wes Todd --- docs/adr/323-esm-support.md | 92 +++++++++++++++++++++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 docs/adr/323-esm-support.md diff --git a/docs/adr/323-esm-support.md b/docs/adr/323-esm-support.md new file mode 100644 index 0000000..6c7c53f --- /dev/null +++ b/docs/adr/323-esm-support.md @@ -0,0 +1,92 @@ +# ADR: ESM exports + +## Status + +Accepted + +## Submitters + +- @kjugi +- @wesleytodd +- @ctcpip + +## Decision Owners + +- @expressjs/express-tc + +## Context + +The document's objective is to gather all notable comments and thoughts in one place and track potential changes in this topic. We have noticed that it is repeated frequently in many issues from the community and we need to take action. + +We have acknowledged the need and discussion around it touched on multiple scenarios. Including: + +- rethinking the process and exposing both options (ESM and CommonJS) for all libraries +- expose both options (ESM and CommonJS) for selected libraries +- maintaining status quo as the main target is on the server + +**Why do we need this decision?** +We aimed to consolidate the Technical Committee's (TC) opinion on this topic. It is important to emphasize that Express is an HTTP framework specifically designed for Node.js. Additionally, some of our libraries are being utilized by the community in other environments. + +**What problem does it solve or avoid?** +Ambiguity and uncertainty for the community, alongside clear guidance for repository maintainers and contributors. + +**Are there any existing issues/discussions/pull requests related to this?** + +- +- +- +- + +## Decision + +Holistically, as a project/team, we will not make a dedicated effort to export our libraries in the ESM format. + +This applies to all [expressjs](https://github.com/expressjs), [pillarjs](https://github.com/pillarjs), or [jshttp](https://github.com/jshttp) packages. + +**However, repo captains, as the primary maintainers of packages, retain autonomy and discretion of whether or not they choose to support ESM exports directly.** + +### What will be done? + +Future issues and PRs regarding ESM exports may be closed with a link to this document. + +## Rationale + +During the [working session](https://github.com/expressjs/discussions/issues/320), we had an in-depth discussion about this topic. + +This decision is motivated by the lack of resources to maintain such an effort in the long term. It is also worth noting that Express was specifically designed to run with Node.js. + +At present, our libraries function seamlessly in Node.js, supporting both CommonJS and ESM. Transitioning to support additional scenarios, such as direct ESM exports, would require significant changes to our CI systems and additional maintenance overhead. + +While the JavaScript ecosystem has increasingly moved toward ESM due to its compatibility with browsers, enhanced tree-shaking capabilities (coming from bundler tools), and support for dynamic imports, there are still complexities and challenges associated with ESM. + +Adopting ESM for our libraries would require a significant investment of time and resources to ensure proper implementation and long-term maintenance. While it is not impossible to achieve, it represents a considerable effort. Moreover, the majority of our users already utilize our libraries in their projects, relying on bundlers to handle the necessary transformations without issues. + +- **Alternatives Considered:** + - Add ESM export to our libraries. CommonJS format is accepted by bundlers. +- **Why is this decision the best option?** + - Time and energy can be shifted to other topics. + +## Consequences + +- **Positive Impact**: It does not require supporting another set of tools and major release. +- **Negative Impact**: + - No guarantee the packages work in browser environments. + - Potential community library fork (to make it ESM-friendly) might lack security updates over time + - OSS library authors that use our packages in ESM native libs might suffer from a lack of support +- **Mitigations**: Package maintainers may decide to expose both CJS and ESM + +## References + +Support for commonjs imports in ESM code is available in the node. Described in docs: + +- + +Support for ESM modules imports in commonjs is available in recent LTS Node.js versions. Docs: + +- + +## Changelog + +Track changes or updates to this ADR over time. Include the date, author, and a brief description of each change. + +- **[2025-01-15] - [2026-04-01]**: [@kjugi, @ctcpip, @wesleytodd] - initial doc From 175e88ae3be4c82e5f45d58fd7e27692ea3764a6 Mon Sep 17 00:00:00 2001 From: Sebastian Beltran Date: Sat, 16 May 2026 12:19:28 -0500 Subject: [PATCH 25/26] docs: update expressjs.com members and add emeritus section (#460) * docs: update expressjs.com members and add emeritus section * Update docs/contributing/captains_and_committers.md * Update docs/contributing/captains_and_committers.md --- docs/contributing/captains_and_committers.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/contributing/captains_and_committers.md b/docs/contributing/captains_and_committers.md index 188f3a1..45739f2 100644 --- a/docs/contributing/captains_and_committers.md +++ b/docs/contributing/captains_and_committers.md @@ -21,7 +21,7 @@ - committers: @bjohansebas, @Phillip9587 - [`expressjs/expressjs.com`](https://github.com/expressjs/expressjs.com): - captains: @crandmck, @jonchurch, @bjohansebas - - committers: @carlosstenzel, @chrisdel101, @ShubhamOulkar + - committers: @carlosstenzel @ShubhamOulkar - [`expressjs/generator`](https://github.com/expressjs/generator): @wesleytodd - [`expressjs/method-override`](https://github.com/expressjs/method-override): @ulisesGascon - [`expressjs/morgan`](https://github.com/expressjs/morgan): @jonchurch, @ulisesGascon @@ -103,3 +103,9 @@ - @seplu (npm: [~sheplu](https://www.npmjs.com/~sheplu)) - @ulisesGascon (npm: [~ulisesgascon](https://www.npmjs.com/~ulisesgascon)) - @wesleytodd (npm: [~wesleytodd](https://www.npmjs.com/~wesleytodd)) + +## Emeritus Members + +- [`expressjs/expressjs.com`](https://github.com/expressjs/expressjs.com): + - triage: @juliogarciape @inigomarquinez + - committers: @chrisdel101 From 06a30f6f2439714fe15ff76539a7dd89e688d57d Mon Sep 17 00:00:00 2001 From: Sai Asish Y Date: Sat, 16 May 2026 22:31:57 -0700 Subject: [PATCH 26/26] docs: update link for Triager Guide in GOVERNANCE.md (#489) --- docs/GOVERNANCE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/GOVERNANCE.md b/docs/GOVERNANCE.md index 99781c4..538ac01 100644 --- a/docs/GOVERNANCE.md +++ b/docs/GOVERNANCE.md @@ -61,7 +61,7 @@ compromise among committers be the default resolution mechanism. ## Becoming a Triager Anyone can become a triager! Read more about the process of being a triager in -[the triage process document](Triager-Guide.md). +[the triage process document](contributing/triager-guide.md). Currently, any existing [organization member](https://github.com/orgs/expressjs/people) can nominate a new triager. If you are interested in becoming a triager, our best advice is to actively participate