Обновить

Комментарии 12

В чём преимущество перед стандартным Makefile?

Я бы говорил не о преимуществах, а скорее о фундаментальных различиях между Makefile и runo, потому что они решают разные задачи.

Makefile был разработан задолго до появления Docker и главной его задачей было оптимизировать процесс компиляции больших проектов. runo не претендует на это.
Своей основной задачей runo ставит упрощение работы с репозиториями и запуск любого действия одной простой командой, без предварительной установки, или настройки чего бы то ни было и для этого runo полагается на docker/compose.

Например, если у вас есть проект с Makefile, который должен билдится например на Debiad, вы не можете просто взять и запустить `make build" на вашей системе, если она не содержит всего, что нужно для этого таргета.
Вам вероятно придётся оборачивать всё в докер и выполнять что-то вроде "docker run ... make build"

А runo можно настроить так, чтобы можно было запустить просто "./runo build". Под капотом там вполне может быть и make (мы используем такую связку в тех проектах, котрые полагаются на make для компиляции). В Rust репозиториях вместо make скорее всего будет cargo, в Python - uv, или что-то похожее. Но с помощью runo можно будет в любом из этих репозиторив запустить просто "./runo build"

Т.е. runo это более высокоуровневая абстракция, надстройка над Makefile, cargo, uv (для сценария с билдами), которая призвана упростить жизнь в усложняющемся мире, где появляется всё больше языков и технологий и где одному и тому же человеку приходиться взаимодействовать с несколькими разными проектами, которые используют разные стеки технологий.

Надеюсь, что вторая часть статьи сможет более детально осветить эти моменты.

В makefile можно что угодно прописать, в том числе docker build/run и т.д.

Ага. А если пугает сложность и древность синтаксиса/логика мейкфайла, то можно использовать упрощенную альтернативу https://github.com/casey/just
Что нового реализует runo кроме своего формата toml-конфига, я честно не понял.

Сравнение с just гораздо более оправдано. Как видите, они оба существуют, just-ом пользуется довольно много людей, хотя есть мейкфайл. runo это шаг в ту же сторону, но ещё чуть дальше - более простой и популярный формат конфига, который (я надеюсь) позволит быстрее настроить всё что нужно и забыть об этой части; отсутствие необходимости установки. Возможно, мне стоит на примере какого-то одного проекта попытаться показать как это будет выглядеть для makefile, just и runo, чтобы сравнение было более наглядным.

Возможно, мне стоит сделать на примере какого-то одного проекта сравнение того как будет выглядеть конфиг для makefile и для runo для разных типов проектов (Rust/Python/Go/...)

Чем-то напоминает
Чем-то напоминает

Совершенно верно, но кажется именно так выглядит эволюция :) время идёт, сценарии использования меняются, приходится адаптироваться. Вечны только Linux и Git :)

runo это именно такой ассистент, но не для автомобилей, а для репозиториев. С ним вам больше не нужно будет искать в документации (если она есть :)) нужные команды, что-то настраивать, чтобы просто запустить тесты, или песочницу. Вам достаточно обратиться к ассистенту, он уже знает всё, что нужно об этом репозитории:

А в документации:


At this moment most part of them are just a mocks, which prints something to console, because at this moment ./runo doesn't know what test/build/... means for your project. 

Т.е. проблема "нужно что-то искать и настраивать" не решена.

Обман, везде обман...

Всё верно. В аналогии с автомобилем - на заводе ассистент всё-таки должны 1 раз настроить, чтобы он знал что конкретно нужно делать когда его просят "поехали домой". Так же работает и runo - достаточно один раз написать в конфиге что конкретно для данного репозитория означает test/build/... и дальше можно забыть об этом, ассистент будет брать эту информацию из конфига

Я по заголовку подумал, что проект что-то типа Warp, но для работы чисто с проектами - открываешь и говоришь - разверни мне тут все. и он сам думает как и разворачивает. А тут оказывается надо самому все писать)
а как заменой мейка пользуюсь Taskfile, хотя и мейк исторически много где еще есть. В нем действительно можно сделать все, что угодно, но немного не удобна работа с параметрам и переменными

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации