Hacker News new | comments | show | ask | jobs | submit login

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.

Grunt supports executing tasks when files/directories change using the grunt-contrib-watch plugin. https://github.com/gruntjs/grunt-contrib-watch

That isnt what the post you are replying to is saying

make etc will realise a build target doesnt need recompiled because nothing has changed, this lets you recompile fairly large projects where only a single file has changed reasonably quickly

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.

If it doesn't already have an source/destination check than it doesn't seem correct to call it a build tool. Or at least not a mature one.

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.

I believe the lack of conditional execution as a result of the kind of tasks javascript programmers encounter. I'm currently building a 125k sloc js app and the most expensive step (minification) takes less time than firing up the jvm on my machine and a clean build is 4s total. There are potentially more expensive things a build system could do but I think that's fairly representative and can see how saving a second or two off a build wouldn't be a priority.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact