You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## Summary
Migrated local development and CMS tooling from Bun to pnpm, and removed
remaining Bun references from docs, templates, config comments, and
workflow steps to keep the repo consistent.
## Related Issue
Fixes INTORG-411
## Manual Test
1. From repo root: `pnpm install && pnpm run format && pnpm run lint &&
pnpm run build`
## Checks
- [x] `pnpm run format`
- [x] `pnpm run lint`
## PR Checklist
- [x] PR title follows Conventional Commits (e.g. `feat: ...`, `fix:
...`)
- [x] Linked issue included
**Lockfile**: `bun.lock` (Bun v1 uses a text lockfile; no `bun.lockb`)
9
+
**Package Manager**: pnpm
10
+
**Lockfile**: `pnpm-lock.yaml`
11
11
**Node Requirement**: Node.js >=18.20.8 (critical - 18.19.1 is insufficient)
12
12
**Development Port**: localhost:1103
13
13
@@ -16,37 +16,37 @@ This repository contains **interledger.org** – the official Interledger Founda
16
16
### Prerequisites
17
17
Ensure these are installed before running any commands:
18
18
-**Node.js**: >=18.20.8 (NOT 18.19.1). Check with `node --version`. If using nvm, ensure .nvmrc is respected.
19
-
-**Bun**: Any recent version (verify with `bun --version`)
19
+
-**pnpm**: Any recent version (verify with `pnpm --version`)
20
20
21
21
### Essential Commands (must run in repository root)
22
22
23
23
| Command | Purpose | Duration | Notes |
24
24
|---------|---------|----------|-------|
25
-
|`bun install`| Install dependencies |~30s | Always run before build/start |
26
-
|`bun run start`| Start dev server | - | Runs on localhost:1103 |
27
-
|`bun run build`| Build production site to ./dist/ |~30-45s |**Will fail with Node < 18.20.8**|
28
-
|`bun run lint`| Check code formatting and linting |~20-30s | Fails if ANY ESLint warnings exist |
29
-
|`bun run format`| Auto-fix formatting and run lint |~30-40s | Fixes Prettier issues; some warnings may remain |
30
-
|`bun run preview`| Preview the built site locally | - | Run `bun run build` first |
25
+
|`pnpm install`| Install dependencies |~30s | Always run before build/start |
26
+
|`pnpm run start`| Start dev server | - | Runs on localhost:1103 |
27
+
|`pnpm run build`| Build production site to ./dist/ |~30-45s |**Will fail with Node < 18.20.8**|
28
+
|`pnpm run lint`| Check code formatting and linting |~20-30s | Fails if ANY ESLint warnings exist |
29
+
|`pnpm run format`| Auto-fix formatting and run lint |~30-40s | Fixes Prettier issues; some warnings may remain |
30
+
|`pnpm run preview`| Preview the built site locally | - | Run `pnpm run build` first |
31
31
32
32
### CI Validation Pipeline
33
33
34
34
The GitHub Actions workflow (`.github/workflows/test-build.yml`) runs on every PR:
35
35
1. Checkout code
36
36
2. Setup Node.js (v18)
37
-
3. Setup Bun
38
-
4.`bun install`
39
-
5.**`bun run lint`** – Must pass with zero warnings
40
-
6.**`bun run build`** – Must succeed
37
+
3. Setup pnpm
38
+
4.`pnpm install`
39
+
5.**`pnpm run lint`** – Must pass with zero warnings
40
+
6.**`pnpm run build`** – Must succeed
41
41
42
-
**To replicate CI locally**: Run `bun install && bun run lint && bun run build`. Both lint and build must pass with no output errors.
42
+
**To replicate CI locally**: Run `pnpm install && pnpm run lint && pnpm run build`. Both lint and build must pass with no output errors.
43
43
44
44
### Important Caveats
45
45
46
46
-**Node Version**: The system may have multiple Node versions. If build fails with "Node.js vX.X.X is not supported by Astro", upgrade to >=18.20.8. The .nvmrc specifies `lts/iron` (Node 20), which is recommended.
47
-
-**Linting Warnings**: The repository has existing ESLint warnings in `cms/src/api/page/content-types/page/lifecycles.ts` that cause lint to fail. These are pre-existing and are not blocking the build itself – only linting checks. `bun run format` will attempt to fix issues but may not resolve all warnings.
48
-
-**Package Manager**: Do NOT use npm or yarn. Only use Bun for this project.
49
-
-**Bun Lockfile**: Netlify or scripts may expect `bun.lockb`, but Bun v1 generates `bun.lock` only. Update checks or docs if needed.
47
+
-**Linting Warnings**: The repository has existing ESLint warnings in `cms/src/api/page/content-types/page/lifecycles.ts` that cause lint to fail. These are pre-existing and are not blocking the build itself – only linting checks. `pnpm run format` will attempt to fix issues but may not resolve all warnings.
48
+
-**Package Manager**: Only use pnpm for this project.
49
+
-**Lockfile**: Keep `pnpm-lock.yaml` committed so CI and local installs stay deterministic.
50
50
51
51
## Project Layout and Architecture
52
52
@@ -74,7 +74,7 @@ The GitHub Actions workflow (`.github/workflows/test-build.yml`) runs on every P
74
74
│ ├── config/ # Strapi configuration
75
75
│ ├── scripts/ # MDX generation scripts
76
76
│ ├── public/uploads/ # Uploaded media
77
-
│ └── package.json # CMS dependencies (npm)
77
+
│ └── package.json # CMS dependencies (pnpm)
78
78
├── public/ # Static assets
79
79
│ ├── img/ # Images (organized by section/date)
80
80
│ ├── documents/ # PDFs and docs
@@ -124,22 +124,22 @@ The GitHub Actions workflow (`.github/workflows/test-build.yml`) runs on every P
124
124
125
125
## Known Issues and Workarounds
126
126
127
-
1.**ESLint warnings in CMS**: The file `cms/src/api/page/content-types/page/lifecycles.ts` contains warnings about unused variables and `any` types. These exist in the repo and are pre-existing. They do not block the build but do prevent `bun run lint` from passing.
127
+
1.**ESLint warnings in CMS**: The file `cms/src/api/page/content-types/page/lifecycles.ts` contains warnings about unused variables and `any` types. These exist in the repo and are pre-existing. They do not block the build but do prevent `pnpm run lint` from passing.
128
128
129
129
2.**Node version mismatch in CI**: The GitHub Actions workflow uses Node 18, but newer patch versions (>=18.20.8) are required. The workflow's `actions/setup-node@v3` should install a compatible patch version automatically.
130
130
131
131
3.**Translation structure commented out**: `src/config` in astro.config.mjs has an i18n config block commented with TODO. Do not enable without understanding the full routing implications.
132
132
133
-
4.**Formatters**: Prettier and ESLint run together. `bun run format` runs Prettier, then ESLint with auto-fix. Some ESLint warnings may remain unfixed and require manual intervention.
133
+
4.**Formatters**: Prettier and ESLint run together. `pnpm run format` runs Prettier, then ESLint with auto-fix. Some ESLint warnings may remain unfixed and require manual intervention.
134
134
135
135
## CMS Information
136
136
137
-
The CMS (Strapi v5.31.3) runs independently and uses **npm** (not Bun):
137
+
The CMS (Strapi v5.31.3) runs independently and uses **pnpm**:
138
138
```bash
139
139
cd cms
140
-
npm install
141
-
npm run develop # Runs on localhost:1337/admin
142
-
npm run build # Production build
140
+
pnpm install
141
+
pnpm run develop # Runs on localhost:1337/admin
142
+
pnpm run build # Production build
143
143
```
144
144
145
145
Content published in the CMS automatically generates MDX files in `src/content/foundation-pages/` via lifecycle hooks. MDX generation is handled by `cms/scripts/sync-mdx.cjs`.
@@ -151,12 +151,12 @@ CMS code changes are deployed to the Strapi VM when merged to `staging`. Content
151
151
## Making Changes
152
152
153
153
When making changes to Astro components, pages, or styles:
154
-
1. Run `bun run start` to start the dev server (hot reload enabled)
154
+
1. Run `pnpm run start` to start the dev server (hot reload enabled)
155
155
2. Make changes in `src/`
156
156
3. Test locally at localhost:1103
157
-
4. Before committing, run `bun run format` to fix formatting issues
157
+
4. Before committing, run `pnpm run format` to fix formatting issues
158
158
5. If format fails due to ESLint warnings, address warnings manually (check files listed in format output)
159
-
6. Verify `bun run build` succeeds (no output errors)
159
+
6. Verify `pnpm run build` succeeds (no output errors)
160
160
161
161
For content changes (MDX files), they are hot-reloaded during dev. For navigation changes, edit `src/config/navigation.json` and verify the sidebar updates correctly.
162
162
@@ -174,7 +174,7 @@ These files are auto-generated or have special constraints and should not be man
174
174
175
175
This guide contains validated information about the build process, commands, and known issues. If a command fails:
176
176
1. Check if Node version is >=18.20.8
177
-
2. Verify you ran `bun install` first
177
+
2. Verify you ran `pnpm install` first
178
178
3. Check the command in the table above for expected duration/behavior
179
179
4. Review the known issues section if the failure is pre-existing
- Blog posts: `src/content/foundation-blog-posts/`
139
139
- Grant tracks: `src/content/grants/`
140
140
141
141
### 🔍 Code Formatting
142
142
143
143
This project uses [ESLint](https://eslint.org/) for code linting and [Prettier](https://prettier.io/) for code formatting. Before submitting a pull request, please ensure your code is properly formatted:
144
144
145
-
1.**Fix issues**: Run `bun run format` to automatically format code and fix linting issues
146
-
2.**Check before pushing**: Run `bun run lint` to verify everything passes (CI will also run this)
145
+
1.**Fix issues**: Run `pnpm run format` to automatically format code and fix linting issues
146
+
2.**Check before pushing**: Run `pnpm run lint` to verify everything passes (CI will also run this)
147
147
148
148
ESLint is configured to work with TypeScript and Astro files. The configuration extends recommended rules from ESLint, TypeScript ESLint, and Astro ESLint plugins, and integrates with Prettier to avoid conflicts.
0 commit comments