Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
6acf4ed
wip: yarn to pnpm
sdqede Oct 30, 2025
3ad8e3a
chore: migrate boilerplate configs to pnpm
sdqede Oct 30, 2025
eda8d0e
chore: enable pnpm workspaces in lerna
sdqede Oct 30, 2025
7e2df23
imported pnpm-lock.yaml from yarn.lock
sdqede Oct 30, 2025
da26bd5
keep yarn.lock for testing
sdqede Oct 31, 2025
edc3a2a
refactor: update build scripts in package.json files to specify tscon…
sdqede Oct 31, 2025
93b1902
chore: replace lerna commands with pnpm in root scripts
sdqede Oct 31, 2025
2bbe7ea
chore: replace symlink-workspace with custom script
sdqede Oct 31, 2025
e47571d
fix: add explicit tsconfig.json path to build:dev script
sdqede Oct 31, 2025
cff5439
fix(core): add missing dependencies for pnpm compatibility
sdqede Nov 3, 2025
a4ac716
fix: add missing dependencies and remove resolutions for pnpm
sdqede Nov 3, 2025
6d41657
reinstall packages
sdqede Nov 3, 2025
3378b95
fix(cli): add missing pg dependencies and fix template build script
sdqede Nov 3, 2025
2876630
fix(launchql-gen): add graphql dependency for test compatibility with…
sdqede Nov 3, 2025
cb21bf0
fix(pg-codegen): add @types/babel__generator for test compatibility w…
sdqede Nov 3, 2025
f90b5f4
fix(s3-streamer): add glob dependencies for test compatibility with pnpm
sdqede Nov 3, 2025
a1334d8
fix(pgsql-test): add moduleNameMapper for Jest to resolve workspace d…
sdqede Nov 3, 2025
5f01d74
fix(cli): add Jest moduleNameMapper for workspace dependencies
sdqede Nov 3, 2025
c929093
fix(introspectron): add Jest moduleNameMapper for workspace dependencies
sdqede Nov 3, 2025
533cac6
fix(launchql-gen): add Jest moduleNameMapper for workspace dependencies
sdqede Nov 3, 2025
fd541a1
fix(pg-codegen): add Jest moduleNameMapper for workspace dependencies
sdqede Nov 3, 2025
0a4bc3d
deleted yarn.lock files
sdqede Nov 4, 2025
131f1f6
refactor(cli): use workspace:^ protocol and remove Jest moduleNameMapper
sdqede Nov 5, 2025
a78ee06
refactor: migrate remaining packages to workspace:^ protocol and remo…
sdqede Nov 5, 2025
3719e83
refactor: remove manual symlink scripts, rely on pnpm workspace linking
sdqede Nov 5, 2025
7755e02
fix(ci): make chmod step more robust in test workflow
sdqede Nov 5, 2025
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
58 changes: 33 additions & 25 deletions .github/workflows/run-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,36 +52,44 @@ jobs:
- name: checkout
uses: actions/checkout@v4

- name: setup pnpm
run: |
corepack enable
corepack prepare pnpm@9.12.1 --activate

- name: deps
run: yarn
run: pnpm install --frozen-lockfile

- name: build
run: yarn build
run: pnpm run build

- name: fix lql permissions
run: chmod +x node_modules/.bin/lql
run: |
if [ -f node_modules/.bin/lql ]; then
chmod +x node_modules/.bin/lql
fi

- name: seed app_user
run: |
yarn lql admin-users bootstrap --yes
yarn lql admin-users add --test --yes
pnpm exec lql admin-users bootstrap --yes
pnpm exec lql admin-users add --test --yes
env:
PGHOST: pg_db
PGPORT: 5432
PGUSER: postgres
PGPASSWORD: password

- name: mime-bytes
run: cd ./packages/mime-bytes && yarn test
run: cd ./packages/mime-bytes && pnpm test

- name: launchql/core
run: cd ./packages/core && yarn test
run: cd ./packages/core && pnpm test

- name: launchql/cli
run: cd ./packages/cli && yarn test
run: cd ./packages/cli && pnpm test

- name: launchql/client
run: cd ./packages/client && yarn test
run: cd ./packages/client && pnpm test
env:
TEST_DATABASE_URL: postgres://postgres:password@pg_db:5432/postgres

Expand All @@ -91,51 +99,51 @@ jobs:
createdb graphile_test_db
psql -f sql/test.sql graphile_test_db
psql -f sql/roles.sql graphile_test_db
yarn test
pnpm test

- name: pgsql-test
run: |
cd ./packages/pgsql-test
yarn test
pnpm test

- name: launchql/orm
run: cd ./packages/orm && yarn test
run: cd ./packages/orm && pnpm test

- name: launchql/url-domains
run: cd ./packages/url-domains && yarn test
run: cd ./packages/url-domains && pnpm test

- name: launchql/uuid-hash
run: cd ./packages/uuid-hash && yarn test
run: cd ./packages/uuid-hash && pnpm test

- name: launchql/uuid-stream
run: cd ./packages/uuid-stream && yarn test
run: cd ./packages/uuid-stream && pnpm test

- name: launchql/introspectron
run: cd ./packages/introspectron && yarn test
run: cd ./packages/introspectron && pnpm test

- name: launchql/query-builder
run: cd ./packages/query-builder && yarn test
run: cd ./packages/query-builder && pnpm test

- name: launchql/query
run: cd ./packages/query && yarn test
run: cd ./packages/query && pnpm test

- name: launchql/launchql-gen
run: cd ./packages/launchql-gen && yarn test
run: cd ./packages/launchql-gen && pnpm test

- name: launchql/pg-ast
run: cd ./packages/pg-ast && yarn test
run: cd ./packages/pg-ast && pnpm test

- name: launchql/pg-codegen
run: cd ./packages/pg-codegen && yarn test
run: cd ./packages/pg-codegen && pnpm test

- name: launchql-gen
run: cd ./packages/launchql-gen && yarn test
run: cd ./packages/launchql-gen && pnpm test

- name: launchql/content-type-stream
run: cd ./packages/content-type-stream && yarn test
run: cd ./packages/content-type-stream && pnpm test

- name: launchql/s3-streamer
run: cd ./packages/s3-streamer && yarn test
run: cd ./packages/s3-streamer && pnpm test
env:
MINIO_ENDPOINT: http://minio_cdn:9000
AWS_ACCESS_KEY: minioadmin
Expand All @@ -144,4 +152,4 @@ jobs:
BUCKET_NAME: test-bucket

- name: launchql/upload-names
run: cd ./packages/upload-names && yarn test
run: cd ./packages/upload-names && pnpm test
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
**/node_modules/
**/.DS_Store
**/dist
**/yarn-error.log
**/pnpm-debug.log
lerna-debug.log
.vscode
ignore
6 changes: 3 additions & 3 deletions DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,14 @@ docker exec postgres /sql-bin/install.sh
Then you can run

```sh
yarn
yarn build
pnpm install
pnpm run build
```

Then to run a test:

```sh
cd packages/core
yarn test
pnpm test
```

4 changes: 2 additions & 2 deletions GRAPHQL_ISSUES.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ The following packages now have GraphQL resolutions set to `15.5.2`:

## Why Resolutions Aren't Sufficient

Yarn's `resolutions` field doesn't always override peer dependency requirements. When packages have conflicting peer dependency ranges, Node.js can still load multiple versions of GraphQL, causing the "duplicate modules" error.
pnpm's `overrides` field does not always override peer dependency requirements. When packages have conflicting peer dependency ranges, Node.js can still load multiple versions of GraphQL, causing the "duplicate modules" error.

## Investigation Findings

Expand All @@ -63,7 +63,7 @@ Yarn's `resolutions` field doesn't always override peer dependency requirements.
1. **Downgrade graphql-upload**: From `15.0.2` to `13.0.0` (supports GraphQL 15.5.2)
2. **Handle @pyramation/postgis**: Add to overrides or find alternative package
3. **Add overrides field**: Stronger enforcement than resolutions
4. **Clean install**: Remove node_modules and yarn.lock, reinstall
4. **Clean install**: Remove node_modules and pnpm-lock.yaml, then reinstall with `pnpm install`

### Option 2: Upgrade GraphQL (Higher Risk)
- Upgrade to GraphQL 16.x to satisfy `graphql-upload`
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ ssh:
docker exec -it postgres /bin/bash

roles:
yarn lql admin-users bootstrap --yes
yarn lql admin-users add --test --yes
pnpm exec lql admin-users bootstrap --yes
pnpm exec lql admin-users add --test --yes

install:
docker exec postgres /sql-bin/install.sh
Expand Down
2 changes: 1 addition & 1 deletion TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ await proj.deploy(
- [ ] DB_CWD, db.cwd ???? in types/src


- [ ] pnpm instead of yarn
- [x] switch package management to pnpm
- [ ] Add tests for pg-ast
- [ ] bring back csv-to-pg
- [ ] bootstrap-roles.sql and any other "bootstrap" can be included in actual code for onboarding
Expand Down
4 changes: 2 additions & 2 deletions __fixtures__/kitchen-sink/.travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ before_install:
- while ! docker exec -it postgritty pg_isready -U postgres -h 127.0.0.1; do echo "$(date) - waiting for database to start"; sleep 1; done
script:
- cd $PACKAGE
- yarn install
- yarn test
- pnpm install
- pnpm test
6 changes: 3 additions & 3 deletions __fixtures__/kitchen-sink/md.md
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,10 @@ cd packages/myfirstmodule
skitch maketest
```

Then you can use `jest` via `yarn` to test your logic.
Then you can use `jest` via `pnpm` to test your logic.

```sh
yarn test:watch
pnpm test:watch
```

## what's different
Expand Down Expand Up @@ -124,7 +124,7 @@ utility
You can install an npm module and then bundle it for `plv8`

```sh
yarn add my-awesome-npm-module
pnpm add my-awesome-npm-module
skitch bundle my-awesome-npm-module awesomeThing
```

Expand Down
2 changes: 1 addition & 1 deletion __fixtures__/kitchen-sink/shellscript
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ fi



find . -name yarn.lock | grep -v node_modules | xargs rm
find . -name pnpm-lock.yaml | grep -v node_modules | xargs rm
git add .
git commit -am "$1"
lerna publish
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
"copy": "copyfiles -f ../../LICENSE README.md package.json dist",
"clean": "rimraf dist/**",
"prepare": "npm run build",
"build": "npm run clean; tsc; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"build": "npm run clean; tsc -p tsconfig.json; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc -p tsconfig.json --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"lint": "eslint . --fix",
"test": "jest",
"test:watch": "jest --watch"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
"copy": "copyfiles -f ../../LICENSE README.md package.json dist",
"clean": "rimraf dist/**",
"prepare": "npm run build",
"build": "npm run clean; tsc; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"build": "npm run clean; tsc -p tsconfig.json; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc -p tsconfig.json --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"lint": "eslint . --fix",
"test": "jest",
"test:watch": "jest --watch"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
"copy": "copyfiles -f ../../LICENSE README.md package.json dist",
"clean": "rimraf dist/**",
"prepare": "npm run build",
"build": "npm run clean; tsc; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"build": "npm run clean; tsc -p tsconfig.json; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc -p tsconfig.json --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"lint": "eslint . --fix",
"test": "jest",
"test:watch": "jest --watch"
Expand Down
4 changes: 2 additions & 2 deletions __fixtures__/sqitch/simple/packages/my-first/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
"copy": "copyfiles -f ../../LICENSE README.md package.json dist",
"clean": "rimraf dist/**",
"prepare": "npm run build",
"build": "npm run clean; tsc; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"build": "npm run clean; tsc -p tsconfig.json; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc -p tsconfig.json --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"lint": "eslint . --fix",
"test": "jest",
"test:watch": "jest --watch"
Expand Down
4 changes: 2 additions & 2 deletions __fixtures__/sqitch/simple/packages/my-second/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
"copy": "copyfiles -f ../../LICENSE README.md package.json dist",
"clean": "rimraf dist/**",
"prepare": "npm run build",
"build": "npm run clean; tsc; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"build": "npm run clean; tsc -p tsconfig.json; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc -p tsconfig.json --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"lint": "eslint . --fix",
"test": "jest",
"test:watch": "jest --watch"
Expand Down
4 changes: 2 additions & 2 deletions __fixtures__/sqitch/simple/packages/my-third/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
"copy": "copyfiles -f ../../LICENSE README.md package.json dist",
"clean": "rimraf dist/**",
"prepare": "npm run build",
"build": "npm run clean; tsc; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"build": "npm run clean; tsc -p tsconfig.json; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc -p tsconfig.json --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"lint": "eslint . --fix",
"test": "jest",
"test:watch": "jest --watch"
Expand Down
4 changes: 2 additions & 2 deletions __fixtures__/stage/extensions/@launchql/base32/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ make up
Install modules

```sh
yarn install
pnpm install
```

## install the Postgres extensions
Expand All @@ -54,7 +54,7 @@ This basically `ssh`s into the postgres instance with the `packages/` folder mou
Testing will load all your latest sql changes and create fresh, populated databases for each sqitch module in `packages/`.

```sh
yarn test:watch
pnpm test:watch
```

## building new modules
Expand Down
4 changes: 2 additions & 2 deletions __fixtures__/stage/extensions/@launchql/faker/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -383,7 +383,7 @@ make up
Install modules

```sh
yarn install
pnpm install
```

## install the Postgres extensions
Expand All @@ -401,7 +401,7 @@ This basically `ssh`s into the postgres instance with the `packages/` folder mou
Testing will load all your latest sql changes and create fresh, populated databases for each sqitch module in `packages/`.

```sh
yarn test:watch
pnpm test:watch
```

## building new modules
Expand Down
4 changes: 2 additions & 2 deletions __fixtures__/stage/extensions/@launchql/inflection/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ make up
Install modules

```sh
yarn install
pnpm install
```

## install the Postgres extensions
Expand All @@ -61,7 +61,7 @@ This basically `ssh`s into the postgres instance with the `packages/` folder mou
Testing will load all your latest sql changes and create fresh, populated databases for each sqitch module in `packages/`.

```sh
yarn test:watch
pnpm test:watch
```

## building new modules
Expand Down
4 changes: 2 additions & 2 deletions __fixtures__/stage/extensions/@launchql/totp/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ make up
Install modules

```sh
yarn install
pnpm install
```

## install the Postgres extensions
Expand All @@ -123,7 +123,7 @@ This basically `ssh`s into the postgres instance with the `packages/` folder mou
Testing will load all your latest sql changes and create fresh, populated databases for each sqitch module in `packages/`.

```sh
yarn test:watch
pnpm test:watch
```

## building new modules
Expand Down
6 changes: 3 additions & 3 deletions __fixtures__/stage/packages/unique-names/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@
"copy": "copyfiles -f ../../LICENSE README.md package.json dist",
"clean": "rimraf dist/**",
"prepare": "npm run build",
"build": "npm run clean; tsc; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"build": "npm run clean; tsc -p tsconfig.json; tsc -p tsconfig.esm.json; npm run copy",
"build:dev": "npm run clean; tsc -p tsconfig.json --declarationMap; tsc -p tsconfig.esm.json; npm run copy",
"lint": "eslint . --fix",
"test": "jest",
"test:watch": "jest --watch"
Expand All @@ -35,4 +35,4 @@
"graphql-tag": "2.12.6",
"pgsql-test": "^2.6.0"
}
}
}
Loading