@@ -132,23 +132,30 @@ Like TC members, Repo captains are a subset of committers.
132132To become a captain for a project the candidate is expected to participate in that
133133project for at least 6 months as a committer prior to the request. They should have
134134helped with code contributions as well as triaging issues. They are also required to
135- have 2FA enabled on both their GitHub and npm accounts. Any TC member or existing
136- captain on the repo can nominate another committer to the captain role, submit a PR to
137- this doc, in the ** Active Project Captains** section (maintaining the sort order) with
138- the project, their GitHub handle and npm username (if different). The PR will require
139- at least 2 approvals from TC members and 2 weeks hold time to allow for comment and/or
140- dissent. When the PR is merged, a TC member will add them to the proper GitHub/npm groups.
135+ have 2FA enabled on both their GitHub and npm accounts.
136+
137+ Any TC member or an existing captain on the ** same** repo can nominate another committer
138+ to the captain role. To do so, they should submit a PR to this document, updating the
139+ ** Active Project Captains** section (while maintaining the sort order) with the project
140+ name, the nominee's GitHub handle, and their npm username (if different).
141+ - Repos can have as many captains as make sense for the scope of work.
142+ - A TC member or an existing repo captain ** on the same project** can nominate a new captain.
143+ Repo captains from other projects should not nominate captains for a different project.
144+
145+ The PR will require at least 2 approvals from TC members and 2 weeks hold time to allow
146+ for comment and/or dissent. When the PR is merged, a TC member will add them to the
147+ proper GitHub/npm groups.
141148
142149### Active Projects and Captains
143150
144151- [ ` expressjs/badgeboard ` ] ( https://github.com/expressjs/badgeboard ) : @wesleytodd
145- - [ ` expressjs/basic-auth-connect ` ] ( https://github.com/expressjs/basic-auth-connect ) : @UlisesGascon
146- - [ ` expressjs/body-parser ` ] ( https://github.com/expressjs/body-parser ) : @wesleytodd , @jonchurch
152+ - [ ` expressjs/basic-auth-connect ` ] ( https://github.com/expressjs/basic-auth-connect ) : @ulisesGascon
153+ - [ ` expressjs/body-parser ` ] ( https://github.com/expressjs/body-parser ) : @wesleytodd , @jonchurch , @ ulisesGascon
147154- [ ` expressjs/compression ` ] ( https://github.com/expressjs/compression ) : @ulisesGascon
148155- [ ` expressjs/connect-multiparty ` ] ( https://github.com/expressjs/connect-multiparty ) : @ulisesGascon
149156- [ ` expressjs/cookie-parser ` ] ( https://github.com/expressjs/cookie-parser ) : @wesleytodd , @UlisesGascon
150157- [ ` expressjs/cookie-session ` ] ( https://github.com/expressjs/cookie-session ) : @ulisesGascon
151- - [ ` expressjs/cors ` ] ( https://github.com/expressjs/cors ) : @jonchurch
158+ - [ ` expressjs/cors ` ] ( https://github.com/expressjs/cors ) : @jonchurch , @ ulisesGascon
152159- [ ` expressjs/discussions ` ] ( https://github.com/expressjs/discussions ) : @wesleytodd
153160- [ ` expressjs/errorhandler ` ] ( https://github.com/expressjs/errorhandler ) : @ulisesGascon
154161- [ ` expressjs/express-paginate ` ] ( https://github.com/expressjs/express-paginate ) : @ulisesGascon
@@ -157,8 +164,8 @@ dissent. When the PR is merged, a TC member will add them to the proper GitHub/
157164- [ ` expressjs/flash ` ] ( https://github.com/expressjs/flash ) : @ulisesGascon
158165- [ ` expressjs/generator ` ] ( https://github.com/expressjs/generator ) : @wesleytodd
159166- [ ` expressjs/method-override ` ] ( https://github.com/expressjs/method-override ) : @ulisesGascon
160- - [ ` expressjs/morgan ` ] ( https://github.com/expressjs/morgan ) : @jonchurch
161- - [ ` expressjs/multer ` ] ( https://github.com/expressjs/multer ) : @LinusU
167+ - [ ` expressjs/morgan ` ] ( https://github.com/expressjs/morgan ) : @jonchurch , @ ulisesGascon
168+ - [ ` expressjs/multer ` ] ( https://github.com/expressjs/multer ) : @LinusU , @ ulisesGascon
162169- [ ` expressjs/response-time ` ] ( https://github.com/expressjs/response-time ) : @UlisesGascon
163170- [ ` expressjs/serve-favicon ` ] ( https://github.com/expressjs/serve-favicon ) : @ulisesGascon
164171- [ ` expressjs/serve-index ` ] ( https://github.com/expressjs/serve-index ) : @ulisesGascon
@@ -176,31 +183,31 @@ dissent. When the PR is merged, a TC member will add them to the proper GitHub/
176183- [ ` jshttp/etag ` ] ( https://github.com/jshttp/etag ) : @blakeembrey
177184- [ ` jshttp/forwarded ` ] ( https://github.com/jshttp/forwarded ) : @blakeembrey
178185- [ ` jshttp/fresh ` ] ( https://github.com/jshttp/fresh ) : @blakeembrey
179- - [ ` jshttp/http-assert ` ] ( https://github.com/jshttp/http-assert ) : @wesleytodd , @jonchurch
180- - [ ` jshttp/http-errors ` ] ( https://github.com/jshttp/http-errors ) : @wesleytodd , @jonchurch
186+ - [ ` jshttp/http-assert ` ] ( https://github.com/jshttp/http-assert ) : @wesleytodd , @jonchurch , @ ulisesGascon
187+ - [ ` jshttp/http-errors ` ] ( https://github.com/jshttp/http-errors ) : @wesleytodd , @jonchurch , @ ulisesGascon
181188- [ ` jshttp/media-typer ` ] ( https://github.com/jshttp/media-typer ) : @blakeembrey
182189- [ ` jshttp/methods ` ] ( https://github.com/jshttp/methods ) : @blakeembrey
183190- [ ` jshttp/mime-db ` ] ( https://github.com/jshttp/mime-db ) : @blakeembrey , @UlisesGascon
184191- [ ` jshttp/mime-types ` ] ( https://github.com/jshttp/mime-types ) : @blakeembrey , @UlisesGascon
185192- [ ` jshttp/negotiator ` ] ( https://github.com/jshttp/negotiator ) : @blakeembrey
186- - [ ` jshttp/on-finished ` ] ( https://github.com/jshttp/on-finished ) : @wesleytodd
193+ - [ ` jshttp/on-finished ` ] ( https://github.com/jshttp/on-finished ) : @wesleytodd , @ ulisesGascon
187194- [ ` jshttp/on-headers ` ] ( https://github.com/jshttp/on-headers ) : @blakeembrey
188- - [ ` jshttp/proxy-addr ` ] ( https://github.com/jshttp/proxy-addr ) : @wesleytodd
195+ - [ ` jshttp/proxy-addr ` ] ( https://github.com/jshttp/proxy-addr ) : @wesleytodd , @ ulisesGascon
189196- [ ` jshttp/range-parser ` ] ( https://github.com/jshttp/range-parser ) : @blakeembrey
190197- [ ` jshttp/statuses ` ] ( https://github.com/jshttp/statuses ) : @blakeembrey
191198- [ ` jshttp/type-is ` ] ( https://github.com/jshttp/type-is ) : @blakeembrey
192199- [ ` jshttp/vary ` ] ( https://github.com/jshttp/vary ) : @blakeembrey
193200- [ ` pillarjs/cookies ` ] ( https://github.com/pillarjs/cookies ) : @blakeembrey
194201- [ ` pillarjs/csrf ` ] ( https://github.com/pillarjs/csrf ) : @ulisesGascon
195202- [ ` pillarjs/encodeurl ` ] ( https://github.com/pillarjs/encodeurl ) : @blakeembrey
196- - [ ` pillarjs/finalhandler ` ] ( https://github.com/pillarjs/finalhandler ) : @wesleytodd
203+ - [ ` pillarjs/finalhandler ` ] ( https://github.com/pillarjs/finalhandler ) : @wesleytodd , @ ulisesGascon
197204- [ ` pillarjs/hbs ` ] ( https://github.com/pillarjs/hbs ) : @ulisesGascon
198205- [ ` pillarjs/multiparty ` ] ( https://github.com/pillarjs/multiparty ) : @blakeembrey
199206- [ ` pillarjs/parseurl ` ] ( https://github.com/pillarjs/parseurl ) : @blakeembrey
200207- [ ` pillarjs/path-to-regexp ` ] ( https://github.com/pillarjs/path-to-regexp ) : @blakeembrey
201208- [ ` pillarjs/request ` ] ( https://github.com/pillarjs/request ) : @wesleytodd
202209- [ ` pillarjs/resolve-path ` ] ( https://github.com/pillarjs/resolve-path ) : @blakeembrey
203- - [ ` pillarjs/router ` ] ( https://github.com/pillarjs/router ) : @wesleytodd
210+ - [ ` pillarjs/router ` ] ( https://github.com/pillarjs/router ) : @wesleytodd , @ ulisesGascon
204211- [ ` pillarjs/send ` ] ( https://github.com/pillarjs/send ) : @blakeembrey
205212- [ ` pillarjs/understanding-csrf ` ] ( https://github.com/pillarjs/understanding-csrf ) : @ulisesGascon
206213
0 commit comments