Passing a list of parameters to `system` automatically gives us peace of
mind with regards to shell escaping. This is because it will not rely on
a shell invocation to run the given parameters, but directly exec to it.
The left-over shell invocations all use redirection.
They are thin wrappers over `system`, but two main points:
* They log the (unescaped) command.
* `run` will auto-die.
This removes the need to pepper `== 0 or die` in the script.
Resolving the values and being fancy is harder than the actual benefits
would give out.
Return all the info we have, and let the pager'd person deal with the
data.
A more durable solution would likely be to make a generic function that
wraps backticks and fails when $? is non-zero, rather than doing it
in-situ. There are other backtick uses that may be problematic
Prometheus now has a configured alert if an update job fails for a
while. Going back in time is not so unusual:
1. a hydra evaluation completes with some failed jobs
2. the channel advances to this commit
3. an admin restarts a failed job
4. the channel would go backward because the evaluation is complete
Since it is not a problem, make it a non-problematic exit code.
PRs to NixOS are a bit confused about if they should PR to release-* or nixos-* or nixpkgs-*. I think namespacing the refs will go a long way in making it more obvious.
From the nix 2.2 changelog:
> nix hash-file and nix hash-path now print hashes in SRI
> format by default. They also use SHA-256 by default
> instead of SHA-512 because that's what we use most of the
> time in Nixpkgs.
```
error: [json.exception.parse_error.101] parse error at 195: syntax error - invalid string: ill-formed UTF-8 byte; last read: '"bokml'; expected string literal
```
This is most probably caused by the upgrade in nixos-org-configurations/1b74e019b166d37a1510a99aeea86a0fa656854a
that, in turn, caused nlohmann_json to go from 2.1.0 -> 3.2.0
I haven't found concrete evidence in the changelog as to a change
changing the exception type. Though, the timing for failures matches
with this update.
Furthermore, once this fix is applied, launching the update locally
works fine.