- Added dry run support using `--dry-run`
- Added the first (alpha) implementation of the `viz` sub-command
- Introduced `--no-path-resolution` to skip relative path to be resolved
- Introduced `COMPOSE_ANSI` to define the `--ansi` default value
- Introduced `COMPOSE_STATUS_STDOUT` to get status messages sent to stdout
- Fixed the BuildKit progressui integration
- Fixed a bug to stop blocking the events loop collecting logs
- Restored support for `--memory`
- Fixed a bug which meant containers didn't stop after termination
- Compose now lets users declare the build secret target
- Fixed a bug which caused a container to be recreated when the config has not changed
- Fixed a race condition when `--parallel` is used with a large number of dependent services
- Compose now checks the local image matches the required platform
- Fixed local image removal when `compose down` is ran with `--project-name`
- Compose now detects the active endpoint trying to remove the network and skips with a warning
- Removed unnecessary [] output
- Compose detects that a Windows terminal is not a `console.File` to avoid a panic
- `--parallel` now has precedence over `COMPOSE_PARALLEL_LIMIT`
- Compose now reports that the external network is not found when Swarm is disabled
## 2.17.2
{{< release-date date="2023-03-26" >}}
### Update
- Dependencies upgrade: bump compose-go to v1.13.2
### Bug fixes and enhancements
- Fixed invalid project name error for directories with uppercase characters or `.` in the name. Fixed [compose#10405](https://github.com/docker/compose/issues/10405)
## 2.17.1
{{< release-date date="2023-03-24" >}}
### Update
- Dependencies upgrade: bump buildkit to v0.11.5
- Dependencies upgrade: bump compose-go to v1.13.1
- Dependencies upgrade: bump golang to 1.20.2
### Bug fixes and enhancements
- Fixed panic on `alpha watch` command. Pull Request [compose#10393](https://github.com/docker/compose/pull/10393)
- Prevented conflicts for services named `extensions`. Fixed [compose-go#247](https://github.com/compose-spec/compose-go/issues/247)
- Compose now validates project names more consistently. Fixed [compose-go#363](https://github.com/compose-spec/compose-go/issues/363)
## 2.17.0
{{< release-date date="2023-03-23" >}}
### Upgrade notes
- Project name validation is more strictly enforced. Project names can only include letters, numbers, `_`, `-` and must be lowercase and start with a letter or number.
- Boolean fields in YAML must be either `true` or `false`. Deprecated YAML 1.1 values such as "on" or "no" are not supported.
- Duplicate YAML merge keys (`<<`) are rejected.
### Update
- Dependencies upgrade: bump buildkit to v0.11.4
- Dependencies upgrade: bump buildx to v0.10.4
- Dependencies upgrade: bump containerd to 1.6.18
- Dependencies upgrade: bump compose-go to v1.13.0
### Bug fixes and enhancements
* Introduced `--wait-timeout` on `up` command. Fixed [compose#10269](https://github.com/docker/compose/issues/10269)
* Made `compose service --hash` output sort by service name. Pull Request [compose#10278](https://github.com/docker/compose/pull/10278)
* Compose now renders a compact TUI progress report to monitor layers download. Pull Request [compose#10281](https://github.com/docker/compose/pull/10281)
* Introduced `restart` for `depends_on`. Fixed [compose#10284](https://github.com/docker/compose/issues/10284)
* Added support of `NO_COLOR` env var. Fixed [compose#10340](https://github.com/docker/compose/issues/10340)
* Progress writer now uses `dockercli.Err` stream. Fixed [compose#10366](https://github.com/docker/compose/issues/10366)
* Added support for `additional_contexts` in the `build` service configuration. Fixed [compose#9461](https://github.com/docker/compose/issues/9461) [compose#9961](https://github.com/docker/compose/issues/9961)
* Added file delete/rename handling in `watch` mode. Pull Request [compose#10386](https://github.com/docker/compose/pull/10386)
* Introduced an `ignore` attribute in `watch` mode. Pull Request [compose#10385](https://github.com/docker/compose/pull/10385)