Skip to content

--postgres error tells users to pip install 'graphify[postgres]' — a package that doesn't exist on PyPI (should be graphifyy) #1906

Description

@rjmarin

Summary

The --postgres dependency error hands the user an install command that cannot work: it names the package graphify, but the published package is graphifyy (as the README itself notes: "The PyPI package is temporarily named graphifyy while the graphify name is being reclaimed"). graphify is 404 on PyPI, so following the instruction dead-ends.

Version: graphifyy==0.9.15, macOS arm64, installed via pipx.

Repro

$ graphify extract . --postgres 'postgresql://postgres:postgres@localhost:5434/mydb'
error: psycopg is required for --postgres. Install with: pip install 'graphify[postgres]'

Following it exactly:

$ pip install 'graphify[postgres]'
ERROR: Could not find a version that satisfies the requirement graphify[postgres] (from versions: none)
ERROR: No matching distribution found for graphify[postgres]

Confirming the name is unpublished:

$ curl -s -o /dev/null -w "%{http_code}" https://pypi.org/pypi/graphify/json
404
$ curl -s -o /dev/null -w "%{http_code}" https://pypi.org/pypi/graphifyy/json
200

Source

graphify/pg_introspect.py:18 is the only place in the package still using the old name:

"Install with: pip install 'graphify[postgres]'"

Everywhere else already says graphifyy — these are all correct:

  • detect.py:1313pip install graphifyy[office]
  • google_workspace.py:197pip install graphifyy[office,google]
  • extract.py:4401pip install "graphifyy[{_extra}]"
  • llm.py:952uv tool install "graphifyy[{extra}]"

Looks like a single missed spot from the rename rather than anything deeper.

Why this is worth more than a typo fix

Two reasons beyond the dead end:

  1. It gates a headline feature. --postgres is the "app code + database schema in one graph" path. A user who hits this error and trusts the message concludes the extra is broken. In my case the working incantation turned out to be pipx runpip graphifyy install "graphifyy[sql,postgres,terraform]" — note that pipx install --force "graphifyy[...]" silently does not add extras when the venv already exists, so the obvious retry doesn't help either.

  2. The name is unclaimed, and the README says it's being reclaimed. Right now pip install graphify[postgres] just fails. If anyone registers graphify on PyPI before the reclaim completes, this string turns into shipped code that instructs users to install a stranger's package. Worth fixing before that window rather than after.

Suggested fix

-            "Install with: pip install 'graphify[postgres]'"
+            "Install with: pip install 'graphifyy[postgres]'"

Might be worth a test or grep guard asserting no pip install 'graphify[ / graphify[ (single-y) strings survive in user-facing messages, so the next extra added doesn't reintroduce it.

Also, minor and adjacent: while --postgres was failing, the same run emitted
113 .sql file(s) contributed nothing to the graph because a dependency is missing: tree_sitter_sql not installed — so on a Postgres-backed repo the schema is missing from both directions until the extras land. The graphifyy[sql] hint there is correct; it's only the postgres one that's wrong.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions