Skip to content

πŸ“ State of the project & 2026 roadmap β€” back to active maintenanceΒ #276

Description

@keonik

Hi everyone πŸ‘‹

First, an honest note: this project drifted for a while. Issues piled up, PRs sat unreviewed, and responses were slow. That's on me. I still care about prisma-erd-generator, and I'm putting it back into active maintenance. This issue is a public commitment to that and a roadmap for where it's headed.

Status (August 2026): 3.2.0 is out. Everything the original roadmap listed has shipped, the toolchain moved to bun + oxlint, and the open issue count went from ~30 to 2. This issue is kept up to date as a checklist rather than a comment thread β€” check here for current state.

βœ… Shipped

3.0.0 β€” Puppeteer is optional

The single biggest historical source of friction is gone. @mermaid-js/mermaid-cli (and with it puppeteer/Chromium) is now an optional peer dependency:

Features

Fixes

  • mermaidConfig was silently ignored for CommonJS config files β€” including the shape shipped as example-mermaid-config.js. Anyone following the docs had their config discarded.
  • Field-level @map applied to the wrong field when one name was a suffix of another (id vs user_id).
  • Composite-type relationships resolving to the wrong type; stray debug logging on the build console. (fix: resolve composite types by name and drop stray debug logΒ #274)
  • @@maped enums rendering a duplicate empty node.

Toolchain & CI

  • Package manager and task runner moved from pnpm to bun. Consumers are unaffected β€” the published package and its dependency ranges are unchanged. Clean install went from 2.2s to 0.63s, and CI jobs are ~30% faster (90s β†’ 63s median on Linux), almost all of it from bunx beating pnpm dlx on the ~35 Prisma invocations each job makes.
  • Linting moved to oxlint (47ms vs biome's 61ms). The formatter stayed on biome β€” benchmarking showed oxfmt about 1.8Γ— slower per file, and speed was the reason to consider moving it. oxlint's rule set is tuned to match the coverage biome's linter had, rather than taking its defaults.
  • Tests now fail CI loudly when a PR has no changeset, so nothing else can quietly ship without a changelog entry the way sortFields did.
  • Fixed a Windows CI flake that failed whole runs (Timeout calling "onTaskUpdate") after every test had already passed.

Three latent bugs surfaced during that work and are fixed: @types/node was never a direct devDependency and only resolved through pnpm's hoisting; the test runner spawned one worker per core in a suite where every test launches a headless Chromium; and mermaid CLI resolution on Windows assumed npm's shim layout, so a bun-installed project could not render images at all (#183-adjacent, shipping in 3.0.1).

🚒 Released

πŸ”­ What's next

Nothing urgent, which is the point.

  • Prisma 8 support: blocked on the generator plugin modelΒ #315 β€” Prisma 8. Blocked, not deferred. Prisma 8 is still a release candidate, its CLI has no generate command, and @prisma/generator-helper has no 8.x release β€” the generator plugin model this package is built on does not exist there. Supporting it means reading the emitted contract.json rather than being handed the DMMF, which is a new integration rather than a version bump.
  • Dependency refresh. TypeScript 6 and Vitest 4 are in flight (chore(deps-dev): upgrade TypeScript to 6.x and Vitest to 4.xΒ #317).
  • TypeScript 7 β€” blocked on tooling. 7.x is npm latest, and our source typechecks clean under it, but the native port's package no longer exposes the classic compiler API (ts.sys and ts.createProgram are undefined; everything moved under ./unstable/*). rollup-plugin-dts, which tsup uses for declaration output, breaks on it. Revisit when tsup supports the new API surface.
  • Regenerate ERD.svg when the schema changes. It went stale for a long time and nothing catches that.

How to help

  • πŸ› Retest old bugs on 3.2.0. Several closed issues were fixed by the engine-less rewrite, the optional-peer change, or the SVG text change. If one still reproduces, reopen it.

  • πŸ’¬ Weigh in on Prisma 8 support: blocked on the generator plugin modelΒ #315 if you know the intended migration path for third-party generators on Prisma 8.

  • πŸ™Œ PRs welcome. The repo uses bun:

    bun install
    bun run test
    bun run build
    bun run lint

    Add a changeset with bunx changeset so your change shows up in the release notes β€” CI fails the PR without one. For docs- or CI-only work, apply the skip-changeset label instead.

Thanks for your patience, and for continuing to use the tool. πŸ’š

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions