fix: upgrade graphile ecosystem to latest RC versions with compatibility fixes#820
Merged
pyramation merged 6 commits intomainfrom Mar 15, 2026
Merged
fix: upgrade graphile ecosystem to latest RC versions with compatibility fixes#820pyramation merged 6 commits intomainfrom
pyramation merged 6 commits intomainfrom
Conversation
… versions Updated all packages to use consistent pinned versions: - postgraphile: 5.0.0-rc.10 - @dataplan/pg: 1.0.0-rc.8 - @dataplan/json: 1.0.0-rc.6 - grafast: 1.0.0-rc.9 - grafserv: 1.0.0-rc.7 - graphile-build: 5.0.0-rc.6 - graphile-build-pg: 5.0.0-rc.8 - graphile-config: 1.0.0-rc.6 - graphile-utils: 5.0.0-rc.8 - pg-sql2: 5.0.0-rc.5 - tamedevil: 0.1.0-rc.6 - @graphile-contrib/pg-many-to-many: 2.0.0-rc.2 This resolves the type incompatibility where multiple versions of @dataplan/pg were being resolved (rc.5 and rc.8), causing PgExecutor private property conflicts during TypeScript compilation.
In graphile-build-pg@5.0.0-rc.8, the inflector can be called for relations where registry.pgRelations[codec.name]?.[relationName] returns undefined (e.g. ref-based relations). Added null guards to singleRelation, singleRelationBackwards, _manyRelation, and _manyToManyRelation to fall back to the default inflector when the relation lookup fails.
…dec support
In graphile-build-pg@5.0.0-rc.8, tsvector/tsquery codecs are now handled
natively via TYPES.tsvector from @dataplan/pg, and PgAttributesPlugin
HIDE_BY_DEFAULT hides tsvector columns by default.
Changes:
- Update isTsvectorCodec() to match built-in TYPES.tsvector by codec name
(the built-in codec has extensions: { oid } but no extensions.pg)
- Add entityBehavior to re-enable tsvector columns that rc.8 hides,
overriding HIDE_BY_DEFAULT so search plugins can detect and use them
- Update TsvectorCodecPlugin docs to reflect rc.8 compatibility
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Upgrades all graphile ecosystem packages to the latest compatible pinned RC versions and fixes breaking changes introduced in
graphile-build-pg@5.0.0-rc.8.Version Alignment
All graphile deps pinned (no
^) to the versions shipped withpostgraphile@5.0.0-rc.10:postgraphile5.0.0-rc.75.0.0-rc.10@dataplan/pg1.0.0-rc.51.0.0-rc.8grafast1.0.0-rc.71.0.0-rc.9graphile-build-pg5.0.0-rc.55.0.0-rc.8graphile-build5.0.0-rc.45.0.0-rc.6graphile-config1.0.0-rc.51.0.0-rc.6pg-sql25.0.0-rc.45.0.0-rc.5graphile-utils5.0.0-rc.55.0.0-rc.8grafserv1.0.0-rc.61.0.0-rc.7tamedevil0.1.0-rc.40.1.0-rc.6@graphile-contrib/pg-many-to-many2.0.0-rc.12.0.0-rc.2Breaking Change Fixes
1. Null guards in
custom-inflector.tsgraphile-build-pg@5.0.0-rc.8now calls inflectors for ref-based relations whereregistry.pgRelations[codec.name]?.[relationName]returnsundefined. Added null guards tosingleRelation,singleRelationBackwards,_manyRelation, and_manyToManyRelationthat fall back to PostGraphile's default behavior when the relation is undefined. Also fixed missing optional chaining onrelation.extensions?.tags?.foreignFieldName.2. tsvector codec compatibility in
graphile-searchgraphile-build-pg@5.0.0-rc.8added built-in tsvector/tsquery support (crystal#2954) which:TYPES.tsvectorfrom@dataplan/pg(hasextensions: { oid }but noextensions.pg)PgAttributesPlugin.HIDE_BY_DEFAULTFixed by:
isTsvectorCodec()to also match bycodec.name === 'tsvector'3. Updated
csv-to-pgtest snapshotsThe
pgsql-deparserdependency was updated as part of the lockfile refresh, changing SQL output formatting. Updated 7 snapshots inexport.test.tsto match the new deparser output.Review & Testing Checklist for Human
isTsvectorCodec()broadened check (codec.name === 'tsvector') and the entity behavior that re-enables hidden tsvector columns are the riskiest changes. Run the graphile-search and graphile-settings test suites locally to verifytsvTsvfilter fields appear correctly.return previous!(details)fallback delegates to PostGraphile defaults for ref-based relations. Check that relation field names in the generated schema haven't changed unexpectedly.@dataplan/pgcoexisting).pgsql-deparserupdate). Verify the SQL semantics are unchanged.Notes
TsvectorCodecPlugingather hook is now effectively a no-op on rc.8+ (the built-inPgCodecsPluginhandles tsvector first), but is kept for backward compatibility.Link to Devin session: https://app.devin.ai/sessions/7dae13db67bc4cc9b971e75984be2187
Requested by: @pyramation