Hacker News new | ask | show | jobs
by BiteCode_dev 1847 days ago
A bit of a plug, but if you are using python in your project already, give a try to pydoit (pydoit.org/). It completely replaced make, task runners or build systems for me.

Pydoit is the sweet spot for most of my use cases:

- it scales up (graph of deps, file watcher, etc) but above all, it scales DOWN (simple stuff are dead simple)

- it promotes a declarative task definition

- it embraces the shell yet let you use python if you need to

- it gets out of your way and doesn't try to rule your project. It just runs what you want and disapear.

- the doc is nice

The biggest drawback is that you need to pip install it, which means non python devs will avoid it. I wish it was provided as an stand alone executable

3 comments

a meta-plug is in order for pipx, then: https://pipxproject.github.io/pipx/

which wholly abstracts "pip install this thing that has an entry_point without hating your life."

Having to work with multi-language codebases cures one real fast of any interest in single-language build systems.

Still, make kinda sucks. I've yet to meet a build system that ticks these boxes: multi-language, simple, fast.

pydoit is not single language in the sense it limits your to tasks for your language. It's completely agnostic in that sense, and I use it for non python projects as well.

Even the fact it's using python to declare your tasks is not a problem: it's basically a function signature and a mapping, nothing you can't master in 5 minutes, and certainly simpler than make files DSL. Also easier to get right and debug.

The problem is the fact you need python to install it and run it, which non python dev will rightfully not care to do.