Skip to content

SK-3118: Restore python-dotenv dependency (fixes broken 1.0.0 import) - #280

Merged
saileshwar-skyflow merged 3 commits into
mainfrom
fix/flowvault-restore-dotenv-dep
Sep 16, 2026
Merged

saileshwar-skyflow merged 3 commits into
mainfrom
fix/flowvault-restore-dotenv-dep

Conversation

@saileshwar-skyflow

@saileshwar-skyflow saileshwar-skyflow commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

Problem

skyflow-flowvault-python==1.0.0 fails to import on a clean install:

>>> import skyflow
ModuleNotFoundError: No module named 'dotenv'

Root cause

The bundled common/ module (common/utils/_utils.py) imports dotenv, so python-dotenv is a runtime dependency of the flowvault wheel. It was dropped during the bulk removal on the assumption that only the deleted utils/_batching.py used it — but common is vendored into the wheel and needs it too. skyvault kept the dependency; flowvault should too.

Not caught earlier because every local/CI environment already had python-dotenv installed (via skyvault or dev extras), so the missing declaration only surfaces on a genuinely clean install (e.g. a fresh pip install from PyPI).

Fix

Re-add python-dotenv >= 1.1.0, < 2 to flowvault/setup.py.

Verification

  • Rebuilt wheel METADATA now lists Requires-Dist: python-dotenv<2,>=1.1.0.
  • Fresh venv → pip install <wheel> pulls in python-dotenv, and import skyflow succeeds.

Follow-up

PyPI 1.0.0 is immutable and broken, so this needs a 1.0.1 release (tag flowvault/v1.0.1), and 1.0.0 should be yanked on PyPI so pip install skips it.

saileshwar-skyflow and others added 3 commits September 16, 2026 17:25
The bundled common/ module (common/utils/_utils.py) imports `dotenv`, so
`python-dotenv` is a runtime dependency of the flowvault wheel. It was dropped
during the bulk removal on the mistaken belief that only the deleted
utils/_batching.py used it — but common is vendored into the wheel and needs it.
As a result a clean `pip install skyflow-flowvault-python` fails at
`import skyflow` with `ModuleNotFoundError: No module named 'dotenv'`.

Re-add `python-dotenv >= 1.1.0, < 2` (matching skyvault, which kept it).
Verified: the rebuilt wheel declares the dep, and a clean-venv install imports
`skyflow` successfully.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Build the wheel, install ONLY that wheel into a fresh virtualenv, and import
skyflow from outside the repo. The venv has just the wheel's declared runtime
dependencies, so a dependency missing from setup.py (like the python-dotenv drop
that broke 1.0.0) fails the import here. The existing unit-test job installs dev
deps, which masked this class of bug.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Before publishing to PyPI or JFrog (and even on a dry run), install each freshly
built artifact — wheel and sdist — into its own clean virtualenv and import it
from outside the repo. A missing runtime dependency in setup.py or a
non-self-contained sdist now fails the release job before anything is uploaded,
instead of shipping a broken artifact (as happened with 1.0.0's dropped
python-dotenv). Applies to both skyvault and flowvault releases.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@saileshwar-skyflow
saileshwar-skyflow merged commit 432ab85 into main Sep 16, 2026
13 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.

3 participants