43CQEJTEQTKAA2WATBOZPD3PT35ZT76NBCRS2N6VIRY5KP467OTAC
### Development Workflow
When working on new features or bug fixes you want to be able to run Hydra from your working copy. There are
two ways to do this. One is better for interactive development and provides faster feedback cycles, the other
is more convenient for a single test run of Hydra from the working copy (suiteable for PR reviews).
This will spawn a shell that starts hydra-server, hydra-queue-runner, hydra-evaluator and postgres using [foreman](https://github.com/ddollar/foreman).
In order to not collide with potentially existing installations running on default ports hydra and postgres are running on custom ports:
Have a look at the [Procfile](./Procfile) if you want to see how the processes are being started. In order to avoid
conflicts with services that might be running on your host, hydra and postgress are started on custom ports:
**Note**: In some cases you may want to skip test execution. You can do so by passing `doCheck false`:
```
$ nix-shell default.nix -A runHydra --arg doCheck false
```
Note that this is only ever meant as an ad-hoc way of executing Hydra during development. Please make use of the
NixOS module for actually running Hydra in production.
#### Using foreman
When you are actively working on the code, you need fast feedback cycles and thus want incremental builds. Instead of using
`runHydra` you can just run `foreman start` directly in the normal `nix-shell` environment:
```
$ nix-shell
$ # hack hack
$ make
$ foreman start
```