From 6e84079b36569cf752fee253a4df4b5e27361a93 Mon Sep 17 00:00:00 2001 From: Pierre Brisorgueil Date: Tue, 17 Feb 2026 16:10:26 +0100 Subject: [PATCH 1/4] chore: add Codecov and upgrade CI to Node 22/24 LTS and MongoDB 7 - Replace Coveralls with Codecov (codecov-action@v5) - Update Node.js matrix from 20.x to 22.x (LTS) and 24.x (latest) - Update MongoDB matrix from 6.0/7.0 to 7.0 (LTS only) - Bump engines.node requirement from >=20.10.0 to >=22.0.0 --- .github/workflows/CI.yml | 11 ++++++----- package.json | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index d8765012..10704950 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -12,8 +12,8 @@ jobs: strategy: matrix: - node-version: [20.x] - mongodb-version: ['6.0', '7.0'] + node-version: [22.x, 24.x] + mongodb-version: ['7.0'] steps: - uses: actions/checkout@v4 @@ -31,7 +31,8 @@ jobs: npm i npm run lint npm run test:coverage - - name: Coveralls - uses: coverallsapp/github-action@master + - name: Upload coverage reports to Codecov + uses: codecov/codecov-action@v5 with: - github-token: ${{ secrets.GITHUB_TOKEN }} + token: ${{ secrets.CODECOV_TOKEN }} + slug: pierreb-devkit/Node diff --git a/package.json b/package.json index edc3f726..88953dac 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ "url": "https://github.com/pierreb-devkit/Node.git" }, "engines": { - "node": ">=20.10.0" + "node": ">=22.0.0" }, "scripts": { "start": "node server.js", From 7b40d2fe3e9b968dcb32578046afa6128156b6ea Mon Sep 17 00:00:00 2001 From: Pierre Brisorgueil Date: Tue, 17 Feb 2026 16:20:05 +0100 Subject: [PATCH 2/4] chore: remove redundant slug param from codecov action Auto-detected from GitHub repository context. --- .github/workflows/CI.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 10704950..f6827c73 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -35,4 +35,3 @@ jobs: uses: codecov/codecov-action@v5 with: token: ${{ secrets.CODECOV_TOKEN }} - slug: pierreb-devkit/Node From 288baee7a99cee2828ffe61a2a69c013368f60ba Mon Sep 17 00:00:00 2001 From: Pierre Brisorgueil Date: Tue, 17 Feb 2026 16:23:48 +0100 Subject: [PATCH 3/4] chore: address Copilot review comments - Update README: Node >= 20 LTS -> >= 22 LTS, prerequisites 20.x/22.x -> 22.x/24.x - Remove coveralls devDependency and test:coveralls script (replaced by Codecov) --- README.md | 4 ++-- package.json | 2 -- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 910f8daa..741bfe13 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Designed to be cloned into downstream projects and kept up-to-date via `git merg | Subject | Informations | | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Architecture | Layered Architecture : everything is separated in layers, and the upper layers are abstractions of the lower ones, that's why every layer should only reference the immediate lower layer (vertical modules architecture with Repository and Services Pattern) | -| Server | [Node >= 20 LTS](https://nodejs.org/en/) - [Express](https://github.com/expressjs/express) - [Helmet](https://github.com/helmetjs/helmet) - [CORS](https://github.com/expressjs/cors)
[nodemon](https://github.com/remy/nodemon) | +| Server | [Node >= 22 LTS](https://nodejs.org/en/) - [Express](https://github.com/expressjs/express) - [Helmet](https://github.com/helmetjs/helmet) - [CORS](https://github.com/expressjs/cors)
[nodemon](https://github.com/remy/nodemon) | | Database | [MongoDB](https://www.mongodb.com/) - [Mongoose](https://github.com/Automattic/mongoose) - GridFS upload
[Sequelize](https://github.com/sequelize/sequelize) - PostgreSQL, MySQL, SQLite (option)
[JOI](https://github.com/hapijs/joi) - Models & Repository validation | | Security | [passport-jwt](https://github.com/themikenicholson/passport-jwt) - JWT Stateless
[bcrypt](https://en.wikipedia.org/wiki/Bcrypt) - [zxcvbn](https://github.com/dropbox/zxcvbn) - Passwords
SSL - Express / Reverse Proxy | | API | [jsend](https://github.com/omniti-labs/jsend) - Default response wrapper: status, message, data or error | @@ -43,7 +43,7 @@ Designed to be cloned into downstream projects and kept up-to-date via `git merg ## :pushpin: Prerequisites - Git - [Download & Install Git](https://git-scm.com/downloads) -- Node.js (20.x or 22.x) - [Download & Install Node.js](https://nodejs.org/en/download/) +- Node.js (22.x or 24.x) - [Download & Install Node.js](https://nodejs.org/en/download/) - Recommended: Use [nvm](https://github.com/nvm-sh/nvm) for Node version management - MongoDB - [Download & Install MongoDB](https://www.mongodb.com/try/download/community) diff --git a/package.json b/package.json index 88953dac..e95d9dbf 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,6 @@ "test": "cross-env NODE_ENV=test NODE_OPTIONS=--experimental-vm-modules jest --runInBand", "test:watch": "cross-env NODE_ENV=test NODE_OPTIONS=--experimental-vm-modules jest --watch --runInBand", "test:coverage": "cross-env NODE_ENV=test NODE_OPTIONS=--experimental-vm-modules jest --coverage --runInBand", - "test:coveralls": "cross-env NODE_ENV=test NODE_OPTIONS=--experimental-vm-modules jest --coverage --runInBand && cat ./coverage/lcov.info | coveralls", "lint": "eslint ./modules ./lib ./config ./scripts", "seed:dev": "cross-env NODE_ENV=development node scripts/seed.js seed", "seed:prod": "cross-env NODE_ENV=production node scripts/seed.js seed", @@ -100,7 +99,6 @@ "@semantic-release/git": "^10.0.1", "@weareopensource/conventional-changelog": "^1.7.0", "commitizen": "^4.3.1", - "coveralls": "~3.1.1", "eslint": "10.0.0", "@eslint/js": "^10.0.0", "eslint-config-prettier": "^10.1.8", From fb8d24d033839368908128cbb5d65fc3fb1cf64a Mon Sep 17 00:00:00 2001 From: Pierre Brisorgueil Date: Tue, 17 Feb 2026 16:32:57 +0100 Subject: [PATCH 4/4] docs: remove LTS label from Node version in README Node 22 and 24 are both tested in CI; drop the LTS qualifier to avoid version-specific confusion. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 741bfe13..05bced6a 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ Designed to be cloned into downstream projects and kept up-to-date via `git merg | Subject | Informations | | ------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Architecture | Layered Architecture : everything is separated in layers, and the upper layers are abstractions of the lower ones, that's why every layer should only reference the immediate lower layer (vertical modules architecture with Repository and Services Pattern) | -| Server | [Node >= 22 LTS](https://nodejs.org/en/) - [Express](https://github.com/expressjs/express) - [Helmet](https://github.com/helmetjs/helmet) - [CORS](https://github.com/expressjs/cors)
[nodemon](https://github.com/remy/nodemon) | +| Server | [Node >= 22](https://nodejs.org/en/) - [Express](https://github.com/expressjs/express) - [Helmet](https://github.com/helmetjs/helmet) - [CORS](https://github.com/expressjs/cors)
[nodemon](https://github.com/remy/nodemon) | | Database | [MongoDB](https://www.mongodb.com/) - [Mongoose](https://github.com/Automattic/mongoose) - GridFS upload
[Sequelize](https://github.com/sequelize/sequelize) - PostgreSQL, MySQL, SQLite (option)
[JOI](https://github.com/hapijs/joi) - Models & Repository validation | | Security | [passport-jwt](https://github.com/themikenicholson/passport-jwt) - JWT Stateless
[bcrypt](https://en.wikipedia.org/wiki/Bcrypt) - [zxcvbn](https://github.com/dropbox/zxcvbn) - Passwords
SSL - Express / Reverse Proxy | | API | [jsend](https://github.com/omniti-labs/jsend) - Default response wrapper: status, message, data or error |