Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 9 additions & 9 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,17 @@

### Required Environment

- **Node.js 20 LTS** (`lts/iron`, enforced by `package.json` engines field)
- **Node.js 24 LTS** (enforced by `package.json` engines field)
- **pnpm 9.x** (managed via Corepack; CI uses `pnpm/action-setup@v2`)
- **Docker** and **Docker Compose** (for local services: Postgres, Redis, Traefik, Kratos, Rafiki, MockGatehub)
- **Git**

### Setup Steps (First Time Only)

```bash
# 1. Switch to Node 20 (assumes nvm installed)
nvm install lts/iron
nvm use lts/iron
# 1. Switch to Node 24 (assumes nvm installed)
nvm install 24
nvm use 24

# 2. Enable Corepack (pnpm package manager)
corepack enable
Expand Down Expand Up @@ -134,7 +134,7 @@ testnet/
├── pnpm-workspace.yaml # Defines monorepo packages
├── tsconfig.base.json # Shared TypeScript config
├── .eslintrc.js, .prettierrc.js # Lint & format config
├── .nvmrc # Node version (lts/iron)
├── .nvmrc # Node version (24)
├── .github/workflows/
│ ├── ci.yml # PR validation (checks → builds → tests)
Expand Down Expand Up @@ -176,12 +176,12 @@ testnet/

### Scenario: Node Version Mismatch

**Symptom**: `ERR_PNPM_UNSUPPORTED_ENGINE Expected version: ^20.12.1`
**Symptom**: `ERR_PNPM_UNSUPPORTED_ENGINE Expected version: ^24.13.1`

**Fix**:

```bash
nvm install lts/iron && nvm use lts/iron && pnpm install --frozen-lockfile
nvm install 24 && nvm use 24 && pnpm install --frozen-lockfile
```

### Scenario: Stale Dependencies
Expand Down Expand Up @@ -228,7 +228,7 @@ pnpm wallet:backend test --detectOpenHandles --forceExit
**Fix**:

```bash
node --version # Verify v20.x.x
node --version # Verify v24.x.x
pnpm install --frozen-lockfile
pnpm build
```
Expand All @@ -240,7 +240,7 @@ pnpm build
1. **Trust this file first**: Before running grep/search/explore commands, check if information exists here. Minimize search time by following the command sequences documented above.

2. **Always validate prerequisites**:
- Node version: `node --version` → must be `v20.x.x`
- Node version: `node --version` → must be `v24.x.x`
- pnpm installed: `pnpm --version` → must be `9.x`
- Dependences installed: Run `pnpm install --frozen-lockfile` before any other command

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-publish.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
version: v9.1.4
- uses: actions/setup-node@v4
with:
node-version: '20.19.5'
node-version: '24.13.1'
cache: 'pnpm'
- name: Install dependencies for ${{ matrix.package }}
shell: bash
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ runs:
- name: Setup NodeJS
uses: actions/setup-node@v4
with:
node-version: 'lts/iron'
node-version: '24'

- name: Install PNPM
uses: pnpm/action-setup@v2
Expand Down
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
lts/iron
v24
7 changes: 3 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,9 @@ Please read the [contribution guidelines](.github/contributing.md) before submit
### Environment Setup

```sh
# Install Node 20
nvm install lts/iron
nvm use lts/iron

# Install Node 24
nvm install 24
nvm use 24
# Install pnpm using Corepack
corepack enable
```
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@
"pnpm": "^9.1.4",
"npm": "pnpm",
"yarn": "pnpm",
"node": "^20.12.1"
"node": "^24.13.1"
},
"private": true,
"packageManager": "pnpm@9.1.4"
Expand Down
2 changes: 1 addition & 1 deletion packages/boutique/backend/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:iron-slim
FROM node:24-slim

RUN apt-get update && \
apt-get install -y python3 build-essential && \
Expand Down
6 changes: 3 additions & 3 deletions packages/boutique/backend/Dockerfile.prod
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
FROM node:20-alpine AS base
FROM node:24-alpine AS base

WORKDIR /testnet

RUN corepack enable
RUN corepack prepare pnpm@9.1.1 --activate
RUN corepack prepare pnpm@9.1.4 --activate
RUN apk add --no-cache \
libc6-compat \
python3 \
Expand Down Expand Up @@ -32,7 +32,7 @@ RUN rm -rf ./node_modules ./packages/boutique/backend/node_modules ./packages/sh
RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm install -r --frozen-lockfile --prod \
| grep -v "cross-device link not permitted\|Falling back to copying packages from store"

FROM node:20-alpine AS runner
FROM node:24-alpine AS runner

WORKDIR /testnet

Expand Down
2 changes: 1 addition & 1 deletion packages/boutique/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"@types/cors": "^2.8.19",
"@types/express": "^4.17.23",
"@types/jest": "^29.5.14",
"@types/node": "^20.17.30",
"@types/node": "^24.13.1",
"jest": "^29.7.0",
"node-mocks-http": "^1.17.2",
"ts-jest": "^29.4.4",
Expand Down
4 changes: 2 additions & 2 deletions packages/boutique/frontend/Dockerfile.prod
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
FROM node:20-alpine AS base
FROM node:24-alpine AS base

WORKDIR /testnet

RUN corepack enable
RUN corepack prepare pnpm@9.1.1 --activate
RUN corepack prepare pnpm@9.1.4 --activate

RUN apk add --no-cache \
libc6-compat \
Expand Down
2 changes: 1 addition & 1 deletion packages/boutique/shared/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"author": "",
"license": "ISC",
"devDependencies": {
"@types/node": "^20.17.30"
"@types/node": "^24.13.1"
},
"dependencies": {
"zod": "^3.25.76"
Expand Down
14 changes: 7 additions & 7 deletions packages/shared/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,18 +14,18 @@
"author": "",
"license": "ISC",
"devDependencies": {
"@types/node": "^20.17.30",
"tsc-alias": "^1.8.16",
"typescript": "^5.9.3",
"@types/express": "^4.17.23",
"ioredis": "^5.8.0"
"@types/node": "^24.13.1",
"ioredis": "^5.8.0",
"tsc-alias": "^1.8.16",
"typescript": "^5.9.3"
},
"dependencies": {
"awilix": "^12.0.5",
"axios": "^1.12.2",
"express": "^4.21.2",
"objection": "^3.1.5",
"knex": "^3.1.0",
"winston": "^3.18.3",
"axios": "^1.12.2"
"objection": "^3.1.5",
"winston": "^3.18.3"
}
}
2 changes: 1 addition & 1 deletion packages/wallet/backend/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:iron-slim
FROM node:24-slim

RUN apt-get update && \
apt-get install -y python3 build-essential && \
Expand Down
6 changes: 3 additions & 3 deletions packages/wallet/backend/Dockerfile.prod
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
FROM node:20-alpine AS base
FROM node:24-alpine AS base

WORKDIR /testnet

RUN corepack enable
RUN corepack prepare pnpm@9.1.1 --activate
RUN corepack prepare pnpm@9.1.4 --activate
RUN apk add --no-cache \
libc6-compat \
python3 \
Expand Down Expand Up @@ -32,7 +32,7 @@ RUN rm -rf ./node_modules ./packages/wallet/backend/node_modules ./packages/wall
RUN --mount=type=cache,id=pnpm,target=/root/.local/share/pnpm/store pnpm install -r --frozen-lockfile --prod \
| grep -v "cross-device link not permitted\|Falling back to copying packages from store"

FROM node:20-alpine AS runner
FROM node:24-alpine AS runner

WORKDIR /testnet

Expand Down
2 changes: 1 addition & 1 deletion packages/wallet/backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@
"@types/crypto-js": "^4.2.2",
"@types/express": "^4.17.23",
"@types/jest": "^29.5.14",
"@types/node": "^20.17.30",
"@types/node": "^24.13.1",
"@types/uuid": "^10.0.0",
"jest": "^29.7.0",
"node-mocks-http": "^1.17.2",
Expand Down
2 changes: 1 addition & 1 deletion packages/wallet/frontend/Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:iron-slim
FROM node:24-slim

# Set the working directory
WORKDIR /home/testnet
Expand Down
6 changes: 3 additions & 3 deletions packages/wallet/frontend/Dockerfile.prod
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
FROM node:20-alpine AS base
FROM node:24-alpine AS base

WORKDIR /testnet

RUN corepack enable
RUN corepack prepare pnpm@8.10.5 --activate
RUN corepack prepare pnpm@9.1.4 --activate

RUN apk add --no-cache \
libc6-compat \
Expand Down Expand Up @@ -50,7 +50,7 @@ ENV PORT=$PORT \

RUN pnpm wallet:frontend build

FROM node:20-alpine AS runner
FROM node:24-alpine AS runner

WORKDIR /testnet

Expand Down
2 changes: 1 addition & 1 deletion packages/wallet/frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@
"@next/bundle-analyzer": "^13.4.12",
"@next/eslint-plugin-next": "^13.4.12",
"@tailwindcss/forms": "^0.5.10",
"@types/node": "^20.17.30",
"@types/node": "^24.13.1",
"@types/nprogress": "^0.2.3",
"@types/react": "18.3.25",
"@types/react-dom": "18.3.7",
Expand Down
2 changes: 1 addition & 1 deletion packages/wallet/shared/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
"author": "",
"license": "ISC",
"devDependencies": {
"@types/node": "^20.17.30"
"@types/node": "^24.13.1"
},
"dependencies": {
"zod": "^3.25.76"
Expand Down
Loading
Loading