Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

The most comprehensive make alternative in python I've seen is Scons (https://scons.org/)

It would be worth to see how they tackles some of the challenges you're looking into.

Blurb from the website:

SCons is an Open Source software construction tool. Think of SCons as an improved, cross-platform substitute for the classic Make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache. In short, SCons is an easier, more reliable and faster way to build software.



While I can't contest that SCons is comprehensive, I would never recommend it as a source of learning "what to do".

SCons is not idiomatic Python and it abuses things like `eval` which gives it terrible performance.

Source: I used to work for MongoDB and my full time job was to make SCons faster, which I eventually did by making it a Ninja generator (which has now been upstreamed). But the code is still pretty bad.

Using SCons however is much nicer than using make / autoconf IMO, especially now that you can farm the builds out to Ninja.


Oh definitely agree on the non-idiomatic python. I was thinking less of "how to correctly implement and write the python code" and more of the "learn the history and decisions on why it might do things, and the user experience of defining a build in python". I really liked its consistency of repeatable build steps, the way it handled it's dependencies, and accepted the tradeoff it presented for slowness. But its been perhaps 10 years since I looked it, likely longer, and rose coloured glasses are applicable.

And nice work making SCons faster!! not at easy thing to do at all.


An alternative to Scons could be Doit (<https://pydoit.org/>), which if I remember correctly was built as a faster alternative to Scons. See also reasons of some users to prefer the later to other mentioned here: <https://pydoit.org/stories.html>.


Also see waf https://waf.io/ which is a similar build system as scons to replace make including dependencies


I took a look at it in 2017, decided to stay with Makefiles.




Consider applying for YC's Winter 2026 batch! Applications are open till Nov 10

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

Search: