Skip to content

chore(deps): update from pgsql-parser + dev-utils, trust benjie so graphile can resolve - #1668

Merged
pyramation merged 3 commits into
mainfrom
feat/update-deps-pgsql-parser-dev-utils
Aug 6, 2026
Merged

chore(deps): update from pgsql-parser + dev-utils, trust benjie so graphile can resolve#1668
pyramation merged 3 commits into
mainfrom
feat/update-deps-pgsql-parser-dev-utils

Conversation

@pyramation

@pyramation pyramation commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Summary

makage update-deps from pgsql-parser and dev-utils (13 first-party bumps: schema-typescript, inflekt, confstash, komoji, git-changed, nested-obj, yanse, pnpm-policy, @pgsql/*, @inquirerer/utils, @constructive-io/fetch), plus the fix for the ERR_PNPM_NO_MATURE_MATCHING_VERSION wall that made any re-resolution impossible:

graphile/graphile-cache: No matching version found for grafast@1.1.1 ...
Version 1.1.1 satisfies the specs but was released at Tue Aug 04 2026

Nothing was wrong with the update — the graphile v5 stack is pinned to exact versions published inside the 14-day quarantine, and an exact pin has nothing older to fall back to, so the lockfile could be installed but never regenerated.

The fix is maintainers: [pyramation, benjie] in pnpm-policy.yaml. Trusting the account that publishes the whole family exempts grafast, graphile-build*, postgraphile, grafserv, graphile-config, @dataplan/*, pg-sql2 in one line, and keeps working through the next upgrade — a grafast@1.1.1 waiver would have to be rewritten for 1.1.3. Two consequences worth knowing:

  • It widens past graphile. benjie also publishes graphql itself, graphiql, graphql-language-service, monaco-graphql, ruru, tamedevil, pg-introspection — those skip the wait now too.
  • inventory moves in-repo (./pnpm-policy.inventory.json, rebuild with pnpm run policy:refresh). The shared @constructive-io/pnpm-policy export is generated from pyramation alone, so it cannot express this; the dependency on it is dropped. Moving it back is a data-only republish of that package with benjie in its own maintainers.

intersect: true keeps the emitted list honest — of 1024 inventory names, 49 are in this lockfile and get emitted; 975 are omitted.

The remaining exceptions are unchanged from what landed with the policy: toolchain floors (@typescript-eslint/*, @types/*, @playwright/test, minimatch, @0no-co/graphql.web) whose ^floor is the newest release, each expiring the day that version turns 14d.

One thing to know about pnpm deps

pnpm up -r -i -L still fights the policy, and no config fixes it: an exemption does not extend to the exempted package's own exact-pinned dependencies (pnpm#11068). Excluding @typescript-eslint/* just moves the error down to @typescript-eslint/type-utils@8.66.0, and waiving minimatch@10.2.6 moves it to brace-expansion@5.0.9 underneath. -L asks for the newest of everything, which is precisely what a quarantine refuses — drop -L, or wait out the window, rather than waiving deeper each time.

Lockfile diff size

pnpm-lock.yaml shows −7.2k/+2.6k lines with the same package set: the committed file had been run through prettier (resolution: expanded to a wrapped { integrity: ... } block), and pnpm rewrote it in its canonical one-line form. 1532 resolution: entries out, 1528 in.

Verified: pnpm install, pnpm install --frozen-lockfile, pnpm build, pnpm lint, pnpm policy:check all clean.

inflekt 0.8.0

The inflekt bump surfaced a real regression: 0.7.2 read every -is/-us word as already singular, so an apis table round-tripped to apises — failing getGraphQLQueryName('apis') and the apis query in the server integration test (400, the schema had named the field apises). Fixed upstream in constructive-io/dev-utils#112 and consumed here as ^0.8.0; no code in this repo needed to change.

Link to Devin session: https://app.devin.ai/sessions/c2c27132839a45219a440fd10cbf13a6
Requested by: @pyramation

…k skips the wait

Every re-resolution failed with ERR_PNPM_NO_MATURE_MATCHING_VERSION: the graphile v5
stack is pinned to exact versions published inside the two-week window, and no older
release satisfies an exact pin. Exempting the account that publishes the whole family
survives the next upgrade, unlike a version-by-version waiver.

The inventory moves in-repo because the shared @constructive-io/pnpm-policy export is
built from pyramation alone. Waivers remain for toolchain floors (@typescript-eslint,
@types/*, @playwright/test, minimatch, @0no-co/graphql.web) whose floor is the newest
release, each expiring the day that version turns 14d.
makage update-deps --from <pgsql-parser|dev-utils>. pnpm rewrote pnpm-lock.yaml in its
canonical format; the committed file had been run through prettier, which is most of
the diff.
@pyramation pyramation self-assigned this Aug 5, 2026
@devin-ai-integration

Copy link
Copy Markdown
Contributor

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@socket-security

socket-security Bot commented Aug 5, 2026

Copy link
Copy Markdown

@blacksmith-sh

This comment has been minimized.

0.7.2 read every -is/-us word as already singular, so an "apis" table
became "apises" in getGraphQLQueryName and in the generated schema.
constructive-io/dev-utils#112.
@pyramation
pyramation merged commit b212a7f into main Aug 6, 2026
21 checks passed
@pyramation
pyramation deleted the feat/update-deps-pgsql-parser-dev-utils branch August 6, 2026 00:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant