Lots of web projects require you to run a build script after checking out the code, be it "Makefile", "grunt", "gulp", "build.xml", whichever. These often do the following:
- downloading dependencies (ex: running composer, npm install)
- running unit tests
- compiling JS templates
- minifying/concatenating JS or CSS files
However this adds an additional hurdles:
- to check in or not to check in minified code ?
- the design philosophy of ownCloud so far was that the code that comes out of git needs to be able to run directly
- raises the barrier of entry for new contributors
I don't think these are big issues. The barrier of entry can be reduced with proper documentation and helper scripts.
Also, even though ownCloud core from git might run, it is still missing most of the bundled apps.
I also noticed that many ownCloud apps themselves are using build scripts, like the mail app https://github.com/owncloud/mail (see Makefile and Gruntfile).
The reason that this is a blocker for JS dev in core for me is that it is not possible to properly use Handlebars template. So far, we need to compile the Handlebars template in real-time on the client side at load time because there is no build script to do it. However, for unit tests, we cannot compile these before running the tests without introducing another layer of async initialisation. I'd rather do it the proper way with a build script. See https://github.com/owncloud/core/issues/12848 for details.