-
-
Notifications
You must be signed in to change notification settings - Fork 17k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
61 changed files
with
847 additions
and
227 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,160 @@ | ||
name: ci | ||
|
||
on: | ||
- pull_request | ||
- push | ||
|
||
jobs: | ||
test: | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
name: | ||
- Node.js 0.10 | ||
- Node.js 0.12 | ||
- io.js 1.x | ||
- io.js 2.x | ||
- io.js 3.x | ||
- Node.js 4.x | ||
- Node.js 5.x | ||
- Node.js 6.x | ||
- Node.js 7.x | ||
- Node.js 8.x | ||
- Node.js 9.x | ||
- Node.js 10.x | ||
- Node.js 11.x | ||
- Node.js 12.x | ||
- Node.js 13.x | ||
- Node.js 14.x | ||
|
||
include: | ||
- name: Node.js 0.10 | ||
node-version: "0.10" | ||
npm-i: mocha@3.5.3 supertest@2.0.0 | ||
|
||
- name: Node.js 0.12 | ||
node-version: "0.12" | ||
npm-i: mocha@3.5.3 supertest@2.0.0 | ||
|
||
- name: io.js 1.x | ||
node-version: "1.8" | ||
npm-i: mocha@3.5.3 supertest@2.0.0 | ||
|
||
- name: io.js 2.x | ||
node-version: "2.5" | ||
npm-i: mocha@3.5.3 supertest@2.0.0 | ||
|
||
- name: io.js 3.x | ||
node-version: "3.3" | ||
npm-i: mocha@3.5.3 supertest@2.0.0 | ||
|
||
- name: Node.js 4.x | ||
node-version: "4.9" | ||
npm-i: mocha@5.2.0 supertest@3.4.2 | ||
|
||
- name: Node.js 5.x | ||
node-version: "5.12" | ||
npm-i: mocha@5.2.0 supertest@3.4.2 | ||
|
||
- name: Node.js 6.x | ||
node-version: "6.17" | ||
npm-i: mocha@6.2.2 | ||
|
||
- name: Node.js 7.x | ||
node-version: "7.10" | ||
npm-i: mocha@6.2.2 | ||
|
||
- name: Node.js 8.x | ||
node-version: "8.17" | ||
npm-i: mocha@7.2.0 | ||
|
||
- name: Node.js 9.x | ||
node-version: "9.11" | ||
npm-i: mocha@7.2.0 | ||
|
||
- name: Node.js 10.x | ||
node-version: "10.24" | ||
npm-i: mocha@8.4.0 | ||
|
||
- name: Node.js 11.x | ||
node-version: "11.15" | ||
npm-i: mocha@8.4.0 | ||
|
||
- name: Node.js 12.x | ||
node-version: "12.22" | ||
|
||
- name: Node.js 13.x | ||
node-version: "13.14" | ||
|
||
- name: Node.js 14.x | ||
node-version: "14.18" | ||
|
||
steps: | ||
- uses: actions/checkout@v2 | ||
|
||
- name: Install Node.js ${{ matrix.node-version }} | ||
shell: bash -eo pipefail -l {0} | ||
run: | | ||
nvm install --default ${{ matrix.node-version }} | ||
dirname "$(nvm which ${{ matrix.node-version }})" >> "$GITHUB_PATH" | ||
- name: Configure npm | ||
run: | | ||
npm config set loglevel error | ||
npm config set shrinkwrap false | ||
- name: Install npm module(s) ${{ matrix.npm-i }} | ||
run: npm install --save-dev ${{ matrix.npm-i }} | ||
if: matrix.npm-i != '' | ||
|
||
- name: Remove non-test dependencies | ||
run: npm rm --silent --save-dev connect-redis | ||
|
||
- name: Setup Node.js version-specific dependencies | ||
shell: bash | ||
run: | | ||
# eslint for linting | ||
# - remove on Node.js < 10 | ||
if [[ "$(cut -d. -f1 <<< "${{ matrix.node-version }}")" -lt 10 ]]; then | ||
node -pe 'Object.keys(require("./package").devDependencies).join("\n")' | \ | ||
grep -E '^eslint(-|$)' | \ | ||
sort -r | \ | ||
xargs -n1 npm rm --silent --save-dev | ||
fi | ||
- name: Install Node.js dependencies | ||
run: npm install | ||
|
||
- name: List environment | ||
id: list_env | ||
shell: bash | ||
run: | | ||
echo "node@$(node -v)" | ||
echo "npm@$(npm -v)" | ||
npm -s ls ||: | ||
- name: Run tests | ||
shell: bash | ||
run: npm run test-ci | ||
|
||
- name: Lint code | ||
if: steps.list_env.outputs.eslint != '' | ||
run: npm run lint | ||
|
||
- name: Collect code coverage | ||
uses: coverallsapp/github-action@master | ||
with: | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
flag-name: run-${{ matrix.test_number }} | ||
parallel: true | ||
|
||
coverage: | ||
needs: test | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Upload code coverage | ||
uses: coverallsapp/github-action@master | ||
with: | ||
github-token: ${{ secrets.github_token }} | ||
parallel-finished: true |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
# Express Charter | ||
|
||
## Section 0: Guiding Principles | ||
|
||
The Express project is part of the OpenJS Foundation which operates | ||
transparently, openly, collaboratively, and ethically. | ||
Project proposals, timelines, and status must not merely be open, but | ||
also easily visible to outsiders. | ||
|
||
## Section 1: Scope | ||
|
||
Express is a http web server framework with a simple and expressive API | ||
which is highly aligned with Node.js core. We aim to be the best in | ||
class for writing performant, spec compliant, and powerful web servers | ||
in Node.js. As one of the oldest and most popular web frameworks in | ||
the ecosystem, we have an important place for new users and experts | ||
alike. | ||
|
||
### 1.1: In-scope | ||
|
||
Express is made of many modules spread between three GitHub Orgs: | ||
|
||
- [expressjs](http://github.com/expressjs/): Top level middleware and | ||
libraries | ||
- [pillarjs](http://github.com/pillarjs/): Components which make up | ||
Express but can also be used for other web frameworks | ||
- [jshttp](http://github.com/jshttp/): Low level http libraries | ||
|
||
### 1.2: Out-of-Scope | ||
|
||
Section Intentionally Left Blank | ||
|
||
## Section 2: Relationship with OpenJS Foundation CPC. | ||
|
||
Technical leadership for the projects within the OpenJS Foundation is | ||
delegated to the projects through their project charters by the OpenJS | ||
Cross Project Council (CPC). In the case of the Express project, it is | ||
delegated to the Express Technical Committee ("TC"). | ||
|
||
This Technical Committee is in charge of both the day-to-day operations | ||
of the project, as well as its technical management. This charter can | ||
be amended by the TC requiring at least two approvals and a minimum two | ||
week comment period for other TC members or CPC members to object. Any | ||
changes the CPC wishes to propose will be considered a priority but | ||
will follow the same process. | ||
|
||
### 2.1 Other Formal Project Relationships | ||
|
||
Section Intentionally Left Blank | ||
|
||
## Section 3: Express Governing Body | ||
|
||
The Express project is managed by the Technical Committee ("TC"). | ||
Members can be added to the TC at any time. Any committer can nominate | ||
another committer to the TC and the TC uses its standard consensus | ||
seeking process to evaluate whether or not to add this new member. | ||
Members who do not participate consistently at the level of a majority | ||
of the other members are expected to resign. | ||
|
||
## Section 4: Roles & Responsibilities | ||
|
||
The Express TC manages all aspects of both the technical and community | ||
parts of the project. Members of the TC should attend the regular | ||
meetings when possible, and be available for discussion of time | ||
sensitive or important issues. | ||
|
||
### Section 4.1 Project Operations & Management | ||
|
||
Section Intentionally Left Blank | ||
|
||
### Section 4.2: Decision-making, Voting, and/or Elections | ||
|
||
The Express TC uses a "consensus seeking" process for issues that are | ||
escalated to the TC. The group tries to find a resolution that has no | ||
open objections among TC members. If a consensus cannot be reached | ||
that has no objections then a majority wins vote is called. It is also | ||
expected that the majority of decisions made by the TC are via a | ||
consensus seeking process and that voting is only used as a last-resort. | ||
|
||
Resolution may involve returning the issue to committers with | ||
suggestions on how to move forward towards a consensus. It is not | ||
expected that a meeting of the TC will resolve all issues on its | ||
agenda during that meeting and may prefer to continue the discussion | ||
happening among the committers. | ||
|
||
### Section 4.3: Other Project Roles | ||
|
||
Section Intentionally Left Blank | ||
|
||
## Section 5: Definitions | ||
|
||
Section Intentionally Left Blank |
Oops, something went wrong.