Hacker Newsnew | past | comments | ask | show | jobs | submit | devrc's commentslogin

I have been using Makefile for over 10 years in all of my projects, and here are some features I've always found lacking in Makefile:

1. There is no way to display documentation for commands and accepted parameters. Yes, you can write a special task that will display comments, but you have to copy it from project to project.

2. The need to pass named parameters when calling tasks. I want to write `make serve localhost 3000` instead of `make serve bind=localhost port=3000`

3. I've always had the need in different projects to use the same commands, so I had to copy tasks from project to project. I need a central place with commands that I can apply to any project.

4. The ability to write tasks in different languages. In some cases, it's easier to write in Python or TypeScript/Deno.

5. And most importantly, it is difficult to write commands in Makefile that can be used in different environments. For example, I need to run commands on different groups of servers: production and staging. This could look like: `make production TASK1 TASK2` or `make stage TASK1 TASK2`. In other words, the production/stage task sets up the parameters for executing tasks in a specific environment. It might be possible to call commands in this way with Makefile, but it seems too complicated.

As a result, I decided to write my own utility for task automation: https://github.com/devrc-hub/devrc

It solves all of the above problems and has other interesting features and also written in Rust .


I think Just (as in Justfile) also solves most of your points, is reasonably widely used, also written in Rust and has integration plugins for it in most editors.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: