uhm, grunt? http://gruntjs.com/ It's exactly a "brand-new build system — reimagined from the ground up — that leverages all of the power of node, npm and their thriving ecosystems". I use it on several projects and it works really well. It's probably my favorite build system across all languages for its simplicity, extensibility, and utility.
Nobody is suggesting building every facet of a new build tool. But Cappuccino has a pretty significant library of custom tools built on top of our existing (custom) build system that will need to be rebuilt and rethought on top of a node based system. That's what this project is about.
Yeah, I was a little confused by what they were saying too. They really want to build something that is essentially the exact same thing a grunt? That just seems like the devs are bored with what they are working on and want to shave a yak for a while.
Exactly. If there is anything lacking in grunt for what they want they should contribute changes back. A wheel re-invention plus big-bang "we'll not just replace, we'll make it totally awesome" is not a great move.
The problem with grunt is that it doesn't detect if files have changed, it therefore does not replace ant, make, scons or any of the other build tools that don't build things that don't need to be built.
Yes this is not the same thing. Grunt rebuilds everything for tasks, and does not selectively build only targets that have had dependencies change. Make doesn't require any kind of running process for this.
Grunt has a core file selection abstraction. Adding mtime source/destination checks and removing files from the list as needed should let them add this without issue. When I looked at the file internals for a bug I encountered I didn't see why it wasn't added but I was/am in the middle of a different project so I didn't take the time to figure out why.
The lack is not a great reason to write yet another build system.
I'd agree. It's more like a composable set of shell scripts at the moment. How things fit together differs quite a bit from other build systems I've used (make, rake, ant) and after a significant amount of cursing, I've come around to it.