Features
- conda
- Add `agent.package_manager.conda_env_as_base_docker` allowing "docker_cmd" to contain link to a full pre-packaged conda environment (`tar.gz` created by `conda-pack`). Use `TRAINS_CONDA_ENV_PACKAGE` environment variable to specify `conda tar.gz` file.
- Add conda support for read-only pre-built environment (pass conda folder as `docker_cmd` on Task)
- Improve trying to find conda executable
- k8s glue
- Add support for limited number of services exposing ports
- Add support for k8s pod custom user properties
- Allow selecting external `trains.conf` file for the pod itself
- Allow providing pod template, extra bash init script, alternate SSH server port, gateway address (k8s ingress/ELB)
- Allow specifying `cudatoolkit` version in the "installed packages" section when using conda as package manager https://github.com/allegroai/trains/issues/229
- Add `agent.package_manager.force_repo_requirements_txt`. If True, "Installed Packages" on Task are ignored, and only repository `requirements.txt` is used
- Pass `TRAINS_DOCKER_IMAGE` into docker for interactive sessions
- Add `torchcsprng` and `torchtext` to PyTorch resolving
Bug Fixes
- When logging suppress "\r" when reading a current chunk of a file/stream. Add `agent.suppress_carriage_return` (default True) to support previous behavior
- Make sure `TRAINS_AGENT_K8S_HOST_MOUNT` is used only once per mount
- Fix k8s glue script to trains-agent default docker script
- Fix apply git diff from submodule only
- conda
- Fix conda pip freeze to be consistent with trains 0.16.3
- Fix conda environment support for trains 0.16.3 full env. Add `agent.package_manager.conda_full_env_update` to allow conda to update back the requirements (default False, to preserve previous behavior)
- Fix running from conda environment - `conda.sh` not found in first conda PATH match
- Fix docker mode ubuntu/debian support by making sure not to ask for input (fix `tzdata` install)
- Fix repository detection - ignore environment `SSH_AUTH_SOCK`, only check if git user/pass are configured
- git diff
- Fix support for non-ascii diff
- Fix diff with empty line at the end will cause corrupt diff apply message
- Allow zero context diffs (useful when blind patching repository)
- Fix `daemon --stop` when agent UID cannot be located
- Fix nvidia docker support on some linux distros (SUSE)
- Fix nvidia pytorch dockers support
- Fix torch CUDA 11.1 support
- Fix requirements dict with null entry in `pip` should be considered None install from repository's `requirements.txt`