std icon indicating copy to clipboard operation
std copied to clipboard

Integrate with bob

Open blaggacao opened this issue 3 years ago • 2 comments

https://github.com/benchkram/bob

blaggacao avatar Aug 26 '22 21:08 blaggacao

A few things to note:

  • The audience of bob seems to be non-nix users who want the reproducibility of nix without having to write anything themselves.
  • Asking the maintainers to consider native nix-integration is likely to conflict with the above.
  • The YAML format of bob adds an unnecessary level of indirection. An alternative is unlikely to be gained (see the above two points).
  • Bob doesn't actually build anything per se. The same functionality it offers can be achieved internally with runnables - with the only exception being handling dependencies.

Philosophically, I think we might be at odds with what bob is doing, so this friction might make integration harder than some other potential tools out there.

jmgilman avatar Sep 03 '22 17:09 jmgilman

I think your points are all very valid.

I'd have hoped that the integration would be somewhat easier.

When I was creating a branch for this last week that marked the start of a more detailed thought process, I realized that we also can have the desired on-ramp in a different format.

What we want:

  • a DAG runner that has an excellent UX
  • a possibility to write stuff naively in yaml and already onboaring into reproducability (while also gradually adopting Nix for derivations and config)

The biggest discrete jump is going from:

go build ...
go test ...

To:

mkDerivation { /* ... */ }

But this is also the red pill.

blaggacao avatar Sep 03 '22 17:09 blaggacao

For the time being, this has been superseded and aproximated further by #118.

That doesn't implement a DAG. But it does implement some degree of graduality in onboarding from a more familiar interface (here: Justfile/Makefile, there: yaml).

It also opens a relatively straight forward migration path to "lift up" Justfile definitions "into the Nix", by satisfying the nascent (still just a collateral of #119) Standard "task" interface.

blaggacao avatar Sep 07 '22 10:09 blaggacao