New Features
- Add `CLEARML_AGENT_FORCE_POETRY` environment variable to allow forcing poetry even when using pip requirements manager
- Add `CLEARML_AGENT_FORCE_TASK_INIT` environment variable to allow runtime patching of script even if no repository is specified and the code is running a preinstalled docker
- Improve venv cache handling:
* Add `FileLock` readonly mode, default is write mode (i.e. exclusive lock, preserving behavior)
* Add venv cache now uses readonly lock when copying folders from venv cache into target folder. This enables multiple read, single write operation
* Do not lock the cache folder if we do not need to delete old entries
* Add `agent.venvs_cache.lock_timeout` to control the venv cache folder lock timeout (in seconds, default 30)
- Add protection for `truncate()` call
- Move configuration sanitization settings to the default config file
- Add queue ID report before pulling task
- Improve GPU monitoring for MIGs
Bug Fixes
- Use correct Python version in Poetry init (179, thanks nfzd!)
- Fix queue handling in `K8sIntegration` and `k8s_glue_example.py` (183, thanks FeU-aKlos!)
- Fix `FileNotFoundException` crash in `find_python_executable_for_version` (192, thanks ae-ae!)
- Fix delete temp console pipe log files after Task execution is completed (important for long lasting services agents to avoid collecting temp files on host machine)
- Fix `agent.enable_git_ask_pass` does not show in configuration dump
- Fix `pippip` is returned as a pip version if no value exists in `agent.package_manager.pip_version`
- Fix Python 3.12 support by removing `distutil` imports
- Fix `IOError` on file lock when using shared folder
- Fix torch resolver settings applied to `PytorchRequirement` instance are not used
- Fix comment lines (starting with ``) are not ignored in docker startup bash script
- Fix dynamic GPU sometimes misses the initial print