Roadmap: node-pg-migrate v9 → v10 #1635
Pinned
Shinigami92
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Roadmap: node-pg-migrate v9 → v10
Hi everyone 👋
With
v9.0.0-alpha.9out the door, I want to share where node-pg-migrate is heading: how we plan to land v9 stable in the coming weeks, and what is shaping up for v10 beyond it.The short version: v9 is a bridge release. It keeps the door open for users still on Node versions that don't have first-class
package.jsonexports support, while we modernize the internals so v10 can move fully forward.Where we are today
Latest release:
v9.0.0-alpha.9Highlights of what's already shipped across the v9 alpha line (since v8):
jitifor TypeScript / mixed-extension migrations — replaces the previous TS loader story and unblocks a number of long-standing setup issues. See PR #1460.addConstraint,alterPolicy,alterSequence,alterTableand the operator-family helpers now throw early instead of silently producing invalid SQL.StringIdGeneratorreplaced with a generator function,indexMethodtyped asstringinstead ofNamein operator helpers.eslint → oxlint,prettier → oxfmt,tsup → tsdown, plus TypeScript v6. Faster local dev and CI, no runtime impact.v9 stable — the next ~1–2 months
The plan is to wrap up v9 with mostly cleanups rather than new features:
TODOs and rough edges in the codebase.jiti(e.g.tsconfigpaths).dropConstraint: addifTableExistsfor idempotent retries.v9.0.0.Why v9 is a bridge release: v9 is intentionally the last line that still aims to support Node versions and setups without solid
package.jsonexportsresolution. It is ESM-only (continuing from v8), but everything beyond that is still kept friendly to slightly older toolchains. v10 will drop that compatibility baggage — see below.On co-maintainers: I'm currently working with @brenoepics and @osdiab to bring them on as co-maintainers — see discussion #1629 and PR #1634. The goal is to spread review, release and triage load so this project stays healthy long-term. 🙏
v10 — early vision
v10 is the modernization release. Nothing here is locked in yet — that's exactly what this discussion is for — but the direction I want to telegraph:
pnpmv11 (#1626), devdependencies (#1622) anddotenv-expandv13 (#1620).dotenvdependency. We want to evaluate whether we can dropdotenv(anddotenv-expand) in favor of Node's built-in--env-fileflag andprocess.loadEnvFile(). The goal is one fewer runtime dependency and a simpler env story — but we still need to check feature parity (variable expansion, precedence rules, multi-file loading) before committing.require(esm). Node's newrequire(esm)support means CJS consumers can keep working without us shipping a CJS build. ESM stays the single source of truth.bin/folder moves intosrc/so the CLI is built and type-checked alongside the rest of the library. A full rewrite to Commander is on the table (see #1137) — feedback welcome on whether that's worth the churn.Other features that may land in or around v10 and are already on the radar — listed in our
vFuturemilestone:strictmode that hashes migration step contents to detect unintended changes to already-applied migrations.migrate statuscommand (applied / pending overview).--prettyoption for nicer formatted SQL output.Smaller, non-breaking improvements that can land in any version live in the
vAnytimemilestone — including bun setup docs, check-constraint shorthands, RLSPERMISSIVE/RESTRICTIVE, an initial-migration generator from an existing schema, and explicit migration listing instead of directory scanning (#651).We want your feedback
This roadmap is a proposal, not a commitment. If you have opinions on:
--env-file,require(esm), CLI rewrite scope),v9.0.0-alpha.9you've hit and want fixed before stable,please reply in this discussion. The more concrete input we get now, the better v9 stable and v10 will land.
Thanks to everyone using node-pg-migrate, filing issues, and contributing PRs — and a special thanks to @brenoepics and @osdiab for stepping up. ❤️
Beta Was this translation helpful? Give feedback.
All reactions