Skip to content

docs(build): venvs, and why pipx install ./src/packages/api fails - #33

Merged
osick merged 1 commit into
mainfrom
docs/build-venv-pipx
Sep 14, 2026
Merged

osick merged 1 commit into
mainfrom
docs/build-venv-pipx

Conversation

@osick

@osick osick commented Sep 14, 2026

Copy link
Copy Markdown
Owner

Summary

A user trying pipx install ./src/packages/api got this and could not place it:

pip seemed to fail to build package: fastapi>=0.110
ERROR: Could not find a version that satisfies the requirement helpmate<0.20,>=0.19.0
       (from helpmate-api) (from versions: none)

FastAPI is a red herring: pipx guesses the culprit from where pip's output stopped. The real cause is that helpmate is built from this tree and is not on PyPI, and pipx gives every application its own isolated venv, so a helpmate installed globally or in the active venv cannot satisfy the dependency. BUILD.md mentioned neither venvs nor pipx.

The new section under "Python package (pip)" covers the plain venv route, names the red herring, explains the isolation, and gives the fix (--preinstall "$PWD", repeatable for the dashboard), with the note that the preinstall compiles the core again and re-runs FetchContent, so the documented hang applies there too.

Test plan

  • Fix verified end to end in an isolated PIPX_HOME: pipx install ./src/packages/api --preinstall <repo> installs helpmate-api 0.19.0 with working helpmate-server and helpmate-tables
  • --preinstall semantics confirmed against pipx 1.17.2: "Optional package to be installed into the Virtual Environment before installing the main package"
  • make lint clean; tests/repo unchanged (the four failures on this box are the pre-existing stale-wheel version checks, 0.17.0 installed vs 0.19.0 in the tree)

🤖 Generated with Claude Code

https://claude.ai/code/session_01DFQB6YogM3gaauunTfMuxW

Someone hit this for real: pipx reports "pip seemed to fail to build
package: fastapi>=0.110", which is a guess from where pip's output stopped,
while the actual error two lines down is that `helpmate<0.20,>=0.19.0` has
"versions: none" -- it is built from this tree, not published to PyPI. pipx
also gives every application its own isolated venv, so a helpmate installed
elsewhere cannot satisfy it. The section names the red herring, explains the
isolation, and gives the fix (`--preinstall "$PWD"`, repeatable for the
dashboard), verified end to end: helpmate-api 0.19.0 with both console
scripts. It also covers the plain venv route and points at the FetchContent
hang that applies to the preinstall build too.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01DFQB6YogM3gaauunTfMuxW
@osick
osick merged commit 6c368f3 into main Sep 14, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant