Summary
Installing the dependencies in requirements.txt fails because madengine (pinned to git+https://github.com/ROCm/madengine.git@main) cannot build its wheel. Hatchling >= 1.19 rejects a duplicate file path in the wheel archive, so metadata generation fails and madengine never installs.
This breaks any flow that does pip install -r requirements.txt from MAD (e.g. the mad_venv setup), and downstream the madengine CLI ends up "command not found".
Environment
- MAD branch:
develop
- madengine:
main (also reproduced on tags v2.1.0, v2.0.3)
- Python: 3.12
- pip: 24.0
- Hatchling: >= 1.19 (whatever build isolation pulls in)
Steps to reproduce
python3 -m venv /tmp/probe && . /tmp/probe/bin/activate
pip install --upgrade pip
pip install "git+https://github.com/ROCm/madengine.git@main"
ValueError: A second file is being added to the wheel archive at the same path: `madengine/scripts/common/test_echo.sh`.
error: metadata-generation-failed
Root cause
madengine's packaging includes madengine/scripts/common/test_echo.sh twice in the wheel (normal inclusion + force-include/artifacts). Hatchling < 1.19 silently allowed duplicate archive paths; Hatchling >= 1.19 errors. So the failure is driven by the Hatchling version, not the madengine tag.
Summary
Installing the dependencies in
requirements.txtfails becausemadengine(pinned togit+https://github.com/ROCm/madengine.git@main) cannot build its wheel. Hatchling >= 1.19 rejects a duplicate file path in the wheel archive, so metadata generation fails andmadenginenever installs.This breaks any flow that does
pip install -r requirements.txtfromMAD(e.g. themad_venvsetup), and downstream themadengineCLI ends up "command not found".Environment
developmain(also reproduced on tagsv2.1.0,v2.0.3)Steps to reproduce