feat(pgpm): zero-config extensions cleanup + --pglite init flag (consolidated)#1358
Merged
Conversation
- --pglite is sugar for the pglite-boilerplates template repo (--repo overrides) - workspace init records the chosen boilerplate source in pgpm.json - bare `pgpm init` inside a pglite workspace inherits that source automatically - custom/single-family repos let .boilerplates.json resolve the variant dir Adds PGLITE_TEMPLATE_REPO constant and PgpmWorkspaceConfig.boilerplates field.
- Non-destructive .control rewrite: only the requires line is updated, preserving custom fields (schema, comment, relocatable, module_pathname) - Non-interactive flags: --add, --remove, --set
The pg-verify and totp fixtures carry custom .control comments; the old regenerate-from-defaults behavior wiped them. Now they are preserved, so the recorded snapshots are updated to match.
…tension pgpm init now scaffolds with no extensions by default; pgpm extension gained non-interactive --add/--remove/--set flags and rewrites only the requires line. Correct the skill's now-false 'fully interactive, don't use in CI' claims for init and extension, and drop legacy uuid-ossp/plpgsql requires examples.
…sh' into feat/pgpm-extensions-and-pglite
…/pgpm-extensions-and-pglite
Contributor
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
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
Consolidates three PRs (#1354, #1356, #1357) into one. Together they finish the extensions-workflow cleanup and add the
--pgliteinit flag. Pairs with the docs consolidation inconstructive-io/constructive.io.1. Harden
pgpm extension(was #1356)Makes
pgpm extensionthe canonical enable-later path:.controlrewrite — edits only therequires =line, preserving custom fields (schema,comment,relocatable,module_pathname, …) instead of regenerating the file from defaults.--add/--remove/--setfor CI/scripts; no flags ⇒ interactive picker (unchanged).2.
--pgliteinit flag with workspace inheritance (was #1354)--pgliteis sugar over--repopointing atpglite-boilerplates:Resolve/persist/read helpers live in
pgpm/cli/src/commands/init/boilerplate.ts(network-free unit tests); newPGLITE_TEMPLATE_REPOconstant and optionalPgpmWorkspaceConfig.boilerplatestype.3. pgpm skill docs (was #1357)
Updates
.agents/skills/pgpm/to document zero-config init + the non-interactivepgpm extensionflags, and corrects the now-false "fully interactive — don't use in CI" claims.(PR A, #1355 — defaulting
pgpm initto no extensions — already merged and is the base these build on.)Tests
All three branches' suites merged cleanly (no conflicts): extension writer/command unit + integration tests, init flag resolution + gated e2e, updated snapshots. 37/37 green on each source PR.
Link to Devin session: https://app.devin.ai/sessions/424b76f81a60499493ac946b57136ad9
Requested by: @pyramation