# Changelog

## 2023-12-15

### Fixed

* Make `TTY` configurable in `run` files for Drupal projects.

## 2023-11-24

### Changed

* Simplified constraints on properties within the `Config` DTO class.

## 2023-11-23

### Added

* Test assertions for the expected violation messages.

### Fixed

* The `pre-push` Git hook should use `./run test:commit` instead of `just test-commit` since `just` is no longer used.
* Recursively merge `build.defaults.yaml` into the given configuration.
* Set `TTY` in the `pre-push` Git hook so it can run if using Docker.

### Changed

* Replace `set -ueo` in Git hook templates to use the long names and be consistent with `run` scripts.
* Add `isDocker` and `isFlake` to the Configuration DTO and remove duplicate variables within templates.

## 2023-11-22

### Added

* Add CHANGELOG.md.
* Add missing validation rules to the `Configuration` DTO object.
  * Add `dockerfile.stages.*.extra_directories` as an optional list of strings (used in the Drupal Commerce Kickstart example).
  * Allow `php.phpstan` and `php.phpcs` to be `false` or a Collection so their configuration files can not be generated (used in the Drupal Commerce Kickstart example).
  * Add `php.phpunit` and allow it to be set to `false` so its configuration files can not be generated (used in the Drupal Commerce Kickstart example).
    * No further PHPUnit configuration is supported.
  * Add `database.extra_databases`
  * Add `php.phpstan.baseline` as an optional boolean.
  * Add `node.version` as a string.
* Add a test to ensure extra databases is an optional array of non-blank strings.
* Add a test to ensure the project type is a valid type.
* Add a test to ensure the web server is a valid type.
* Add a `test` task to `run` script.

### Changed

* `App\Enum\ProjectType` now returns a string.
* `App\Enum\Webserver` now returns a string.
* `ConfigurationValidatorTest` no longer performs serialisation.
* Use `set -o errexit` and `set -o pipefail` in `run` scripts instead of `set -eu`.
* Use new database credentials by default.