Skip to content

build: declare Cython as a build dependency - #7

Merged
man4ish merged 1 commit into
mainfrom
fix/declare-build-deps
Oct 3, 2026
Merged

man4ish merged 1 commit into
mainfrom
fix/declare-build-deps

Conversation

@man4ish

@man4ish man4ish commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator

Problem: pip install . failed with ModuleNotFoundError: No module named 'Cython'. setup.py imports Cython to compile selected modules, but pyproject.toml had no [build-system] table, so pip's isolated build environment never had it.

Changes

  • pyproject.toml: declares the build requirements (setuptools>=68, wheel, Cython>=3).
  • CI: a new package job (Python 3.12) installs the package the way a consumer would, then imports the installed modules from outside the checkout, so they resolve from site-packages. The modules checked are auth.service, iam.client, iam.cache, policy.client, core.config, core.context, audit.client and middleware.s2s.

Not addressed here: the known layout issue in the README's package layout note. middleware.auth and middleware.policy import the nonexistent omnibioai_security_sdk package, so they still fail to import after install, and they are excluded from the new check. Separately, exceptions.py (a top-level module) is not included by find_packages(). Both need a decision about the package layout.

Verified locally

  • pip install . succeeds on Python 3.11 and 3.12, and the Cython modules install as compiled .so files.
  • The CI import script, run exactly as written, passes on Python 3.12.
  • The existing ruff check . and all 103 tests still pass.

🤖 Generated with Claude Code

https://claude.ai/code/session_016nxi4bp7DP1ancERNUUfzj


Generated by Claude Code

`pip install .` failed with "No module named 'Cython'": setup.py imports
Cython to compile selected modules, but pyproject.toml had no
[build-system] table, so pip's isolated build environment never had it.
pyproject.toml now declares setuptools, wheel, and Cython>=3.

CI gains a package job (Python 3.12) that installs the package as a
consumer would and imports the installed modules from outside the
checkout. middleware.auth and middleware.policy are left out of that
check: they still import the nonexistent omnibioai_security_sdk package,
the known layout issue described in README.md, which this change does not
address.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016nxi4bp7DP1ancERNUUfzj
@man4ish
man4ish merged commit 8d8764e into main Oct 3, 2026
5 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.

2 participants