**Completely new way to override Haskell packages**: removed `overrides` and `source-overrides`. Use `packages` to specify your source overrides; use `settings` to override individual packages in modular fashion (like NixOS modules). Additional changes include:
- Add `package.<name>.cabal.executables` referring to the executables in a package. This is auto-detected by parsing the Cabal file.
- Add `packages.<name>.local.*` to determine of a package is a local package or not.
- Add `projectFlakeName` option (useful in debug logging prefix)
- `flake.haskellFlakeProjectModules`: Dropped all defaults, except the `output` module, which now exports `packages` and `settings`. Added a `defaults.projectModules.output` option that allows the user to override this module, or directly access the generated module.
- Add `project.config.defaults.settings.default` defining sensible defaults for local packages.
- Add `project.config.defaults.enable` to turn off all default settings en masse.
Also, disable docs test due to https://github.com/hercules-ci/flake.parts-website/issues/332
Also,
Add a corresponding `outputs.apps` option, while the `outputs.localPackages` option is renamed to `outputs.packages` (it now contains package metadata, including packages and its executables).
- Add `./test` that aims to use all features of haskell-flake
- Add `./test/test.sh` that verifies that the devshell of `./test` is as one would expect
- Add `./runtest.sh` at project root to run the full test
- Run the same ^ in Github Actions
I'm *not* entirely happy with this approach; in particular, `test.sh` seems pretty hacky. But it works. Not sure if it will scale.