Skip to content

fix: unpinned dependencies cause slow resolution and silent version downgrade #115

@Jaimin-Kundal

Description

@Jaimin-Kundal

Problem

While setting up the project locally, running pip install -r requirements.txt
triggered a dependency backtracking warning:

INFO: pip is still looking at multiple versions of gradio to determine which version is compatible with other requirements. This could take a while.
Downloading gradio-6.6.0-py3-none-any.whl.metadata (16 kB)
Collecting gradio-client==2.1.0 (from gradio->-r requirements.txt (line 8))
Downloading gradio_client-2.1.0-py3-none-any.whl.metadata (7.1 kB)
Collecting gradio (from -r requirements.txt (line 8))
Downloading gradio-6.5.1-py3-none-any.whl.metadata (16 kB)
Collecting gradio-client==2.0.3 (from gradio->-r requirements.txt (line 8))
Downloading gradio_client-2.0.3-py3-none-any.whl.metadata (7.1 kB)
Collecting gradio (from -r requirements.txt (line 8))
Downloading gradio-6.5.0-py3-none-any.whl.metadata (16 kB)
Downloading gradio-6.4.0-py3-none-any.whl.metadata (16 kB)
Downloading gradio-6.3.0-py3-none-any.whl.metadata (16 kB)
INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.

pip backtracked through 90+ versions of gradio before settling on
gradio==4.44.1, which is 2 major versions behind the current 6.x release.
This happened silently with no error a new contributor would have no idea
they're running outdated code.

Root cause: huggingface_hub==0.22.2 is pinned to April 2024. Modern
gradio requires a newer version, so pip is forced to keep downgrading gradio
until it finds a compatible version. All other packages are completely unpinned,
making installs unpredictable across different machines and times.

Result on my machine:

Package Actually Installed Latest Available
gradio 4.44.1 6.14.0
huggingface-hub 0.22.2 (old pin) 0.30+
openai 2.36.0 (unpinned) varies

Proposed Fix

Pin all direct dependencies to their verified compatible versions so every
contributor gets a fast, reproducible install with no backtracking.

I've verified a working pinned set locally pip check returns
No broken requirements found with zero conflicts.

Happy to open a PR with the updated requirements.txt if this looks good.

Environment

  • Python 3.13
  • pip latest
  • OS: Linux (Kali)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    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