eminetto / eltonminetto.dev

Repositório com os comentários do eltonminetto.dev
3 stars 0 forks source link

Alternatives to Makefiles written in Go #22

Open utterances-bot opened 4 months ago

utterances-bot commented 4 months ago

Alternatives to Makefiles written in Go

First things first: what is make? Present in all Linux distributions and Unix derivatives such as macOS, the tool’s manual describes it as:

https://eltonminetto.dev/en/post/2024-05-26-alternatives-make/

pellared commented 4 months ago

There is also https://github.com/goyek/goyek which is a an alternative to Mage.

Roemer commented 4 months ago

And also https://github.com/Roemer/gotaskr as alternative to Mage, with an included VSCode Extension for easy running and debugging tasks directly from VSCode.

marefr commented 4 months ago

Thanks nice comparison. I'm biased and have only used mage besides make.

One nice thing with mage is that's its very easy to share common mage build targets - you can just import it like any other Go module. Not sure how the others mentioned compares here, but it's at least much harder with make and multiple repositories.

This can be very convenient when providing an SDK, for example as we're doing with https://github.com/grafana/grafana-plugin-sdk-go/tree/main/build. Whenever you update the SDK version the common build targets automatically follows. Example of a plugin using our common build targets https://github.com/grafana/grafana-plugin-examples/blob/main/examples/datasource-basic/Magefile.go. In addition, we allow the common base to be configured/extended for any plugins that have additional needs.

philoserf commented 3 months ago

Thank you. Great job. I've been using Taskfile for years now for go projects and system-wide for general automation too.

fredrikaverpil commented 3 months ago

There’s also https://github.com/einride/sage 😊

kindermax commented 1 month ago

I've been working on https://github.com/lets-cli/lets for the last 4 years. It has many similarities to task but with slightly different approach on subcommands args parsing