andreineculau
Joined 13 years ago
Joined 13 years ago
Been doing it for more than a decade and yet to get in trouble. Not one issue. Doing it consistently for my teams as we decrease cognitive load (developing on macs but targeting unix). Others would confirm https://news.ycombinator.com/item?id=17943202
Basically software will either use absolute paths i.e. wants to use your OS version for a dependency like grep, or will use whatever grep is in your $PATH and stick to safe invocations regardless if it's BSD/GNU or if it's version x or y
Code example: https://github.com/for-GET/katt/blob/master/doc/example-http...
Disclaimer: I'm one of the authors, thus biased, but the reason I'm mentioning KATT is that the low barrier of entry for captures and asserts makes it a nice requirement tool for non-techs to write complex API scenarios.
You can add hosted arm GitHub runners or register arm hosts for docker and see down to earth build times.
https://github.com/ysoftwareab/yplatform
It uses well-tested software (GNU Make, Bash, Homebrew, Docker) and there's not much to learn really.
* Incubated at Tobii (eyetracking, Sweden),
* it has been used for several projects of different sizes,
* tested on 12+ CIs !
* tested on macOS, Linux and Windows (WSL) !
* tested on 8+ Linux distros !
* comes with prebuilt Docker images !
Early integration with VSCode. And much more. Just read the README :)Happy to help anyone integrate it.
The only way to keep to node/javascript is if you only develop libraries (a website that doesn't get deployed -> still on library level).
I've been running very complex build systems via https://github.com/ysoftwareab/yplatform (disclaimer: author here) since 2016 on Linux, Mac and Windows without a problem.
I did implement though that uniform interface in https://github.com/ysoftwareab/yplatform
As others have mentioned on this thread, the problem is not just "use Makefiles instead of package.json scripts", but quickly ending up with duplicate Makefile content and then supporting more than just one language. It's inevitable.
PS
for those that don’t know, npm’s “scripts” functionality as we know it today was not “designed”, but it was simply a byproduct.
First introduced as an internal functionality for lifecycle support https://github.com/npm/npm/commit/c8e17cef720875c1f7cea1b49b... on 1 Mar 2010
and later extend to run arbitrary targets https://github.com/npm/npm/commit/9b8c0cf87a9d4ef560e17e060f... on 13 Dec 2010
This is the entire design backstory https://github.com/npm/npm/issues/298 .
Needless to say that GNU Make’s equivalent (or any other build system) is not to be found in npm’s scripts.
http://ysoftware.se http://andreineculau.com