Lightning-AI / Lightning-AI/torchmetrics

Dependency resolving to the latest torchmetrics

Open
#3,439 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug / fix help wanted
Dominant language
Python
Stars
2.5k
Forks
526
Avg merge
6d 11h
Merged PRs (30d)
5

Description

## 🐛 Bug
When I install my project dependencies freshly, I get torchmetrics==1.0.3. According to https://lightning.ai/docs/torchmetrics/stable/, the latest stable version is 1.8.2. When I try to install any version higher than 1.8, it is not satisfiable.

### To Reproduce
```
uv add ty ruff pudb pdbp scalene textual-debugger rich numpy matplotlib pandas pandas-stubs numexpr bottleneck Jinja2 tabulate python-calamine xlsxwriter pyarrow backports.zstd pydicom simpleitk scikit-learn torch pytorch_optimizer monai einops kornia mlflow psutil pyrsmi nvidia-ml-py torchmetrics ray[default,data,train,tune,serve] debugpy bayesian-optimization traceml-ai --index https://download.pytorch.org/whl/rocm7.2
Using CPython 3.13.14 interpreter at: /home/ozer/micromamba/bin/python3
Creating virtual environment at: .venv
Resolved 202 packages in 2.10s
Prepared 22 packages in 1.35s
Installed 198 packages in 1.37s
+ aiohappyeyeballs==2.7.1
+ aiohttp==3.14.3
+ aiohttp-cors==0.8.1
+ aiosignal==1.4.0
+ alembic==1.18.5
+ annotated-doc==0.0.4
+ annotated-types==0.8.0
+ anyio==4.14.2
+ asttokens==3.0.2
+ attrs==26.1.0
+ backports-zstd==1.6.0
+ bayesian-optimization==3.3.0
+ blinker==1.9.0
+ bottleneck==1.6.0
+ cachetools==7.1.6
+ certifi==2022.12.7
+ cffi==2.1.0
+ charset-normalizer==2.1.1
+ click==8.4.2
+ cloudpickle==3.1.2
+ colorama==0.4.6
+ colorful==0.5.8
+ comm==0.2.3
+ contourpy==1.3.3
+ coverage==7.15.2
+ cryptography==48.0.1
+ cycler==0.12.1
+ databricks-sdk==0.122.0
+ debugpy==1.8.21
+ decorator==5.3.1
+ distlib==0.4.3
+ docker==7.2.0
+ einops==0.8.2
+ executing==2.2.1
+ fastapi==0.140.7
+ filelock==3.29.0
+ flask==3.1.3
+ flask-cors==6.0.5
+ fonttools==4.63.0
+ frozenlist==1.8.0
+ fsspec==2026.4.0
+ gitdb==4.0.12
+ gitpython==3.1.57
+ google-api-core==2.30.3
+ google-auth==2.56.2
+ googleapis-common-protos==1.75.0
+ graphene==3.4.3
+ graphql-core==3.2.11
+ graphql-relay==3.2.0
+ greenlet==3.5.4
+ grpcio==1.83.0
+ gunicorn==26.0.0
+ h11==0.16.0
+ httpcore==1.0.9
+ httptools==0.8.0
+ httpx==0.28.1
+ httpx-sse==0.4.3
+ huey==3.3.0
+ idna==3.4
+ importlib-metadata==7.1.0
+ iniconfig==2.3.0
+ ipython==9.15.0
+ ipython-pygments-lexers==1.1.1
+ ipywidgets==8.1.8
+ itsdangerous==2.2.0
+ jedi==0.20.0
+ jinja2==3.1.6
+ joblib==1.5.3
+ jsonschema==4.26.0
+ jsonschema-specifications==2025.9.1
+ jupyterlab-widgets==3.0.16
+ kiwisolver==1.5.0
+ kornia==0.8.3
+ kornia-rs==0.1.14
+ lightning-utilities==0.11.8
+ linkify-it-py==2.1.0
+ mako==1.3.12
+ markdown-it-py==4.2.0
+ markupsafe==3.0.3
+ matplotlib==3.11.1
+ matplotlib-inline==0.2.2
+ mcp==1.28.1
+ mdit-py-plugins==0.6.1
+ mdurl==0.1.2
+ mlflow==3.14.0
+ mlflow-skinny==3.14.0
+ mlflow-tracing==3.14.0
+ monai==1.6.0
+ mpmath==1.3.0
+ msgpack==1.2.1
+ multidict==6.7.1
+ narwhals==2.24.0
+ networkx==3.6.1
+ numexpr==2.14.2
+ numpy==2.4.4
+ nvidia-ml-py==13.610.43
+ opencensus==0.11.4
+ opencensus-context==0.1.3
+ opentelemetry-api==1.44.0
+ opentelemetry-exporter-prometheus==0.65b0
+ opentelemetry-proto==1.44.0
+ opentelemetry-sdk==1.44.0
+ opentelemetry-semantic-conventions==0.65b0
+ packaging==24.1
+ pandas==2.3.3
+ pandas-stubs==3.0.3.260530
+ parso==0.8.7
+ pdbp==1.8.2
+ pexpect==4.9.0
+ pillow==12.2.0
+ platformdirs==4.11.0
+ pluggy==1.6.0
+ prettytable==3.18.0
+ prometheus-client==0.26.0
+ prompt-toolkit==3.0.53
+ propcache==0.5.2
+ proto-plus==1.28.2
+ protobuf==6.33.6
+ psutil==7.2.2
+ ptyprocess==0.7.0
+ pudb==2025.1.5
+ pure-eval==0.2.3
+ py-spy==0.4.2
+ pyarrow==24.0.0
+ pyasn1==0.6.4
+ pyasn1-modules==0.4.2
+ pycparser==3.0
+ pydantic==2.13.4
+ pydantic-core==2.46.4
+ pydantic-settings==2.14.2
+ pydicom==3.0.2
+ pygments==2.20.0
+ pyjwt==2.13.0
+ pynvml==13.0.1
+ pyparsing==3.3.2
+ pyrsmi==1.1.0
+ pytest==9.1.1
+ pytest-cov==7.1.0
+ python-calamine==0.8.2
+ python-dateutil==2.9.0.post0
+ python-discovery==1.5.0
+ python-dotenv==1.2.2
+ python-multipart==0.0.32
+ pytorch-optimizer==3.10.1
+ pytz==2026.3.post1
+ pyyaml==6.0.3
+ ray==2.52.1
+ referencing==0.37.0
+ requests==2.28.1
+ rich==15.0.0
+ rpds-py==2026.6.3
+ ruff==0.16.0
+ scalene==2.3.0
+ scikit-learn==1.9.0
+ scipy==1.18.0
+ setuptools==78.1.0
+ simpleitk==2.5.5
+ six==1.17.0
+ skops==0.14.0
+ smart-open==8.0.1
+ smmap==5.0.3
+ sqlalchemy==2.0.51
+ sqlparse==0.5.5
+ sse-starlette==3.4.6
+ stack-data==0.6.3
+ starlette==1.3.1
+ sympy==1.14.0
+ tabcompleter==1.4.1
+ tabulate==0.10.0
+ tensorboardx==2.6.5
+ textual==8.2.8
+ textual-debugger==0.2.0
+ threadpoolctl==3.6.0
+ torch==2.13.0+rocm7.2
+ torchmetrics==1.0.3
+ traceml-ai==0.1.3
+ traitlets==5.15.1
+ triton-rocm==3.7.1
+ ty==0.0.65
+ typing-extensions==4.15.0
+ typing-inspection==0.4.2
+ tzdata==2026.3
+ uc-micro-py==2.0.0
+ urllib3==1.26.13
+ urwid==4.0.8
+ urwid-readline==0.15.1
+ uvicorn==0.51.0
+ uvloop==0.22.1
+ virtualenv==21.7.0
+ watchfiles==1.2.0
+ wcwidth==0.8.2
+ websockets==16.1.1
+ werkzeug==3.1.8
+ widgetsnbextension==4.0.15
+ wrapt==2.3.0
+ xlsxwriter==3.2.9
+ yarl==1.24.5
+ zipp==3.19.2
```

```
uv add 'torchmetrics>1.8'
× No solution found when resolving dependencies for split (markers: python_full_version >= '3.14'):
╰─▶ Because only torchmetrics==1.0.3 is available and your project depends on torchmetrics>1.8, we can conclude that your project's requirements are unsatisfiable.

hint: While the active Python version is 3.13, the resolution failed for other Python versions supported by your project. Consider limiting your project's supported Python versions using `requires-python`.
hint: `torchmetrics` was found on https://download.pytorch.org/whl/rocm7.2, but not at the requested version (torchmetrics>1.8). A compatible version may be available on a subsequent index (e.g., https://pypi.org/simple). By default, uv will only consider versions that are published on the first index that contains a given package, to avoid dependency confusion attacks. If all indexes are equally trusted, use `--index-strategy unsafe-best-match` to consider all versions from all indexes, regardless of the order in which they were defined.
hint: If you want to add the package regardless of the failed resolution, provide the `--frozen` flag to skip locking and syncing
```

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by rerunning the provided uv add command with the ROCm index and compare the torchmetrics versions visible on that index and PyPI. Inspect the project's dependency and publishing configuration; done means fresh resolution can select a current torchmetrics release without breaking the supported Python-version constraints.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, pytorch
Domain
build-system, machine-learning
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.