Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
9549de5
wip: yarn to pnpm
sdqede Oct 30, 2025
ec331af
chore: migrate boilerplate configs to pnpm
sdqede Oct 30, 2025
dfeb408
chore: enable pnpm workspaces in lerna
sdqede Oct 30, 2025
a09f690
imported pnpm-lock.yaml from yarn.lock
sdqede Oct 30, 2025
6d2c4ae
keep yarn.lock for testing
sdqede Oct 31, 2025
70a2925
refactor: update build scripts in package.json files to specify tscon…
sdqede Oct 31, 2025
08778cf
chore: replace lerna commands with pnpm in root scripts
sdqede Oct 31, 2025
d2196c1
chore: replace symlink-workspace with custom script
sdqede Oct 31, 2025
309dba1
fix: add explicit tsconfig.json path to build:dev script
sdqede Oct 31, 2025
d5a8774
fix(core): add missing dependencies for pnpm compatibility
sdqede Nov 3, 2025
8c4a3cd
fix: add missing dependencies and remove resolutions for pnpm
sdqede Nov 3, 2025
0626647
reinstall packages
sdqede Nov 3, 2025
9c0e242
fix(cli): add missing pg dependencies and fix template build script
sdqede Nov 3, 2025
70e16da
fix(launchql-gen): add graphql dependency for test compatibility with…
sdqede Nov 3, 2025
dc7c553
fix(pg-codegen): add @types/babel__generator for test compatibility w…
sdqede Nov 3, 2025
8d41e15
fix(s3-streamer): add glob dependencies for test compatibility with pnpm
sdqede Nov 3, 2025
3d9e90f
fix(pgsql-test): add moduleNameMapper for Jest to resolve workspace d…
sdqede Nov 3, 2025
06ae90d
fix(cli): add Jest moduleNameMapper for workspace dependencies
sdqede Nov 3, 2025
839a699
fix(introspectron): add Jest moduleNameMapper for workspace dependencies
sdqede Nov 3, 2025
45fa8ce
fix(launchql-gen): add Jest moduleNameMapper for workspace dependencies
sdqede Nov 3, 2025
fb8978e
fix(pg-codegen): add Jest moduleNameMapper for workspace dependencies
sdqede Nov 3, 2025
efe525b
deleted yarn.lock files
sdqede Nov 4, 2025
16cb3df
refactor(cli): use workspace:^ protocol and remove Jest moduleNameMapper
sdqede Nov 5, 2025
c56a849
refactor: migrate remaining packages to workspace:^ protocol and remo…
sdqede Nov 5, 2025
9f51136
refactor: remove manual symlink scripts, rely on pnpm workspace linking
sdqede Nov 5, 2025
f142168
fix(ci): make chmod step more robust in test workflow
sdqede Nov 5, 2025
e6e02d0
fix(introspectron): add explicit DocumentNode type and graphql depend…
sdqede Nov 6, 2025
4e2cd3f
feat(cli): add custom template support for init command
sdqede Nov 6, 2025
f7ce7b2
chore(templatizer): regenerate templates from updated boilerplates
sdqede Nov 6, 2025
a7eff0e
chore(templatizer): use pnpm in module boilerplate scripts
sdqede Nov 6, 2025
7f90cbf
docs(templatizer): fix incorrect README content
sdqede Nov 6, 2025
36dd75e
chore: update pnpm-lock.yaml to sync dependencies
sdqede Nov 10, 2025
04176c0
fix(ci): relink workspace bins after build to fix pnpm exec lql command
sdqede Nov 10, 2025
f00cec3
fix(ci): use direct node path instead of pnpm exec for lql command
sdqede Nov 10, 2025
24d4a98
fix(ci): use pnpm filter to execute CLI command with proper module re…
sdqede Nov 10, 2025
b03424f
fix(ci): run lql via pnpm exec node to ensure workspace deps
sdqede Nov 10, 2025
7396e4c
fix(ci,explorer): add missing pg-env dependency and fix CLI execution…
sdqede Nov 10, 2025
ef1e71a
fix(core,templatizer): add TypeScript declaration files and use works…
sdqede Nov 10, 2025
1d34fbd
fix(server): add missing @launchql/logger dependency
sdqede Nov 10, 2025
cf7c350
fix(templatizer): disable Git interactive prompts for public repo clo…
sdqede Nov 10, 2025
b9ea117
fix: resolve workspace dependency resolution issues in tests
sdqede Nov 11, 2025
498b4b9
chore: update pnpm-lock.yaml to sync explorer dependencies
sdqede Nov 11, 2025
026b957
fix(server): add missing graphile-utils dependency
sdqede Nov 11, 2025
e184bdd
fix(introspectron): add missing dependencies for test execution
sdqede Nov 11, 2025
f0559fb
fix(pgsql-test): add index re-exports for module resolution
sdqede Nov 11, 2025
aadd06f
fix(docs): use asterisk for list markers in CLI README
sdqede Nov 11, 2025
5456ed9
fix(pgsql-test): add missing csv-parse dependency
sdqede Nov 12, 2025
e803ec6
refactor: use workspace protocol for all internal dependencies
sdqede Nov 12, 2025
3032d40
chore: ignore pgsql-test output directory in git
sdqede Nov 12, 2025
966caa7
fix(templatizer): use launchql.plan instead of sqitch.plan in workspa…
sdqede Nov 12, 2025
aba88fc
chore: upgrade lerna to ^8.2.3 and update configuration format
sdqede Nov 12, 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
62 changes: 32 additions & 30 deletions .github/workflows/run-tests.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,9 +43,9 @@ jobs:
--health-interval 10s
--health-timeout 5s
--health-retries 5

steps:
# TODO remove deps on git config
# TODO remove deps on git config
- name: Configure Git (for tests)
run: |
git config --global user.name "CI Test User"
Expand All @@ -54,36 +54,38 @@ jobs:
- name: checkout
uses: actions/checkout@v4

- name: setup pnpm
run: |
corepack enable
corepack prepare [email protected] --activate

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

- name: build
run: yarn build

- name: fix lql permissions
run: chmod +x node_modules/.bin/lql
run: pnpm run build

- name: seed app_user
run: |
yarn lql admin-users bootstrap --yes
yarn lql admin-users add --test --yes
pnpm --filter @launchql/cli exec node dist/index.js admin-users bootstrap --yes
pnpm --filter @launchql/cli exec node dist/index.js 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 @@ -93,57 +95,57 @@ 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
AWS_SECRET_KEY: minioadmin
AWS_REGION: us-east-1
BUCKET_NAME: test-bucket

- name: launchql/upload-names
run: cd ./packages/upload-names && yarn test
run: cd ./packages/upload-names && pnpm test
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
**/node_modules/
**/.DS_Store
**/dist
**/yarn-error.log
**/pnpm-debug.log
lerna-debug.log
.vscode
ignore
ignore
packages/pgsql-test/output/
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
```

8 changes: 4 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,16 @@ RUN set -eux; \
ca-certificates curl git python3 make g++; \
update-ca-certificates || true; \
corepack enable; \
corepack prepare [email protected] --activate; \
corepack prepare [email protected] --activate; \
rm -rf /var/lib/apt/lists/*

# Copy full repo (build context must be repo root when building this image)
COPY . .

# Install and build all workspaces
RUN set -eux; \
yarn install --frozen-lockfile; \
yarn build
pnpm install --frozen-lockfile; \
pnpm run build

################################################################################
FROM ${BASE}:${BASE_VERSION} AS launchql
Expand All @@ -39,7 +39,7 @@ RUN set -eux; \
apt-get install -y --no-install-recommends ca-certificates postgresql-client; \
update-ca-certificates || true; \
corepack enable; \
corepack prepare [email protected] --activate; \
corepack prepare [email protected] --activate; \
rm -rf /var/lib/apt/lists/*

# Copy built repo from builder
Expand Down
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
Loading