* Add `NO_DOCKER` flag to `clearml-agent-services` entrypoint ([ClearML Agent GitHub PR #206](https://github.com/allegroai/clearml-agent/pull/206))
* Use `venv` module if `virtualenv` is not supported
* Find the correct python version when using a pre-installed python environment
* Add `/bin/bash` support in the task's `script.binary` property
* Add support for `.ipynb` script entry files (install nbconvert in runtime, convert file to python and execute the
python script). Includes `CLEARML_AGENT_FORCE_TASK_INIT` patching of `.ipynb` files (post-python conversion)
* Add `CLEARML_MULTI_NODE_SINGLE_TASK` (values -1, 0, 1, 2) for easier multi-node single Task workloads
* Add default docker `agent.default_docker.match_rules` configuration option (note: `matching_rules` are ignored if `--docker container` is passed in command line)
* Add `-m module args` in script entry now supports standalone script. Standalone script is placed in a file specified
by the `working_dir` setting in the `<dir>:<target_file>` format (e.g. `:standalone.py`), or in `untitled.py` if not specified
* Add `K8S_GLUE_POD_USE_IMAGE_ENTRYPOINT` env var to allow running k8s pods without overriding the image entrypoint
(useful for agents using prebuilt images in k8s)
* Add venv cache mount override for non-root containers (use: `agent.docker_internal_mounts.venvs_cache`)
* Add `/bin/bash -c "command"` support. Task binary should be set to `/bin/bash` and `entry_point` should be set to `-c command`
* Add support for tasks containing only bash script or python module command
* Add support for skipping container apt installs using `CLEARML_AGENT_SKIP_CONTAINER_APT` env var in k8s
**Bug Fixes**
* Fix git fetch did not update new tags ([ClearML Agent GitHub issue #209](https://github.com/allegroai/clearml-agent/issues/209))
* Fix file mode should be optional in configuration `files` section
* Fix `-m module $env` to support parsing `$env` before launching
* Fix setting tasks that were just marked as `aborted` to `started` - only force task to `started` after dequeueing it,
otherwise do nothing
* Fix slurm multi-node rank detection
* Fix passing only `--docker` (i.e. no default container image) when using `--dynamic-gpus` feature
* Fix logger object used even if `None`
* Fix a race condition where in rare conditions popping a task from a queue that was aborted did not set it to `started`
before the watchdog killed it (not applicable in k8s/slurm)
* Fix multi-node support to only send `pip freeze` update, only set task as `started`, and only update task status on exit for RANK 0
* Fix do not cache venv cache if venv/python skip env var was set
* Fix use same state transition in k8s if supported by the server (instead of stopping the task before re-enqueue)
* Fix failed Task in services mode logged as `User aborted` instead of `failed`. Add Task state reason string
* Fix remove task from pending queue and set to `failed` in k8s when applying the pod template fails
* Fix path substitution, making it possible to store unsubstituted URL for models ([ClearML GitHub PR #935](https://github.com/allegroai/clearml/pull/935))
* Support parsing queue name when providing execution queue in pipelines code ([ClearML GitHub PR #857](https://github.com/allegroai/clearml/pull/857))
* Ignore `None` values for keys in the `click` argument parser ([ClearML GitHub issue #902](https://github.com/allegroai/clearml/issues/902))
* Improve docstrings for `Task.mark_completed()` and `Task.close()` (ClearML GitHub PRs [#920](https://github.com/allegroai/clearml/pull/920) and [#921](https://github.com/allegroai/clearml/pull/921))
* Fix `UniformParameterRange.to_list` throws error when step size is not defined ([ClearML GitHub issue #858](https://github.com/allegroai/clearml/issues/858))
* Fix `StorageManager.list()` does not return size metadata ([ClearML GitHub issue #865](https://github.com/allegroai/clearml/issues/865))
* Fix storage with path substitutions ([ClearML GitHub issue #825](https://github.com/allegroai/clearml/issues/825))
* Fix extras in ClearML installation prevents clearml from being included in requirements ([ClearML GitHub issue #867](https://github.com/allegroai/clearml/issues/867))
* Fix metadata set on an uploaded model object is not accessible ([ClearML GitHub issue #890](https://github.com/allegroai/clearml/issues/890))
* Fix Azure storage upload not working ([ClearML GitHub issue #868](https://github.com/allegroai/clearml/issues/868))