Hydra overrides are not applied if using uv as the package manager
Describe the bug
In the following workflow:
- Run a task locally
- Clone in the UI
- Change a configuration under Configuration > OmegaConf
- Set
_allow_omegaconf_edit_ = Trueunder Configuration > Hydra - Enqueue
I seem to be getting different results between pip and uv.
With pip, the parameters are successfully overridden. With uv, they fall back to whatever was in the original config.yaml.
To reproduce
Clone this repo: https://github.com/Anjum48/uv-hydra-testing
In the main branch, create a pip venv, and run entrypoint.py:
python -m venv .venv_pip
.\.venv_pip\Scripts\Activate.ps1
pip install -r .\requirements.txt
python .\entrypoint.pyThen override the run_name parameter (e.g. this is from pip) as described above. You will see this in the console after enqueuing:
Hello, Hydra and ClearML!
{'run': {'timestamp': '${now:%Y%m%d-%H%M%S}', 'run_name': 'this is from pip'}}Now in the uv-testing branch, create a uv venv and repeat:
uv venv
.\.venv\Scripts\Activate.ps1
uv pip install -r .\requirements.txt
python .\entrypoint.pyThen override the run_name parameter (e.g. this is from uv) as described above. You will see this in the console:
Hello, Hydra and ClearML!
{'run': {'timestamp': '${now:%Y%m%d-%H%M%S}', 'run_name': 'Default_Run_Name'}}Expected behaviour
What is the expected behaviour? What should've happened but didn't?
In the final step we should have seen:
Hello, Hydra and ClearML!
{'run': {'timestamp': '${now:%Y%m%d-%H%M%S}', 'run_name': 'this is from uv'}}What actually happened is that it defaulted to config\config.yaml
Environment
- Server type: self hosted
- ClearML SDK Version: 2.1.3
- ClearML Server Version: WebApp: 2.3.0-705 • Server: 2.3.0-705 • API: 2.34
- OS: Windows local, Linux server
Related Discussion
If this continues a slack thread, please provide a link to the original slack thread.
Source: clearml/clearml