NOTE: THIS PROJECT WILL SHORTLY BE AT IT'S FIRST ALPHA RELEASE. BUT IS STILL FAR TOO UNSTABLE AND INCOMPLETE FOR PRODUCTION PROJECTS AT PRESENT.
YOU HAVE BEEN WARNED!!! ;)
It is an on-going attempt to help make developer's lives easier by reducing all typical build and code management tasks to as near zero-configuration as possible.
It can, and (and if you let it) will, do things automatically like:-
In addition to running tasks like the above, the Warhorse distribution also offers developers a range of "Conventions" for rapid project development. A set of carefully thought-out standard and standardised project layouts, templates, boilerplate code, naming and configuration schemes.
All with the emphasis on practicality, simplicity and readability.
So you can focus entirely on developing your app - rather than infrastructure.
In short, because it's ludicrously simple to use.
And simple because - instead of offering to let you spend a lot of time installing, scripting and configuring every build, tool and task that exists, or might exist, in the entire vast multiverse - Warhorse won't even let you install a single plug-in!
Warhorse was written, in part, as a reaction to approachs taken by typical build/dependency management tools and task runners such as Maven, Gradle, Grunt and Gulp. Warhorse tries to be everything that they are not:-
And it tries to do all this, whilst following industry standards and the best commonly-used and KISS patterns wherever possible.
Warhorse isn't designed to give you more and more choices, more and more options in your build process... it's designed, from the ground-up, to take them away!
So it's more like sculpting - than scaffolding.
And it's a damn sight faster too!
And if one of Warhorse's suggested project Conventions seems like a good fit for your project - then after a single:-
warhorse create <your convention>
...your entire project is laid out in the current directory - already setup and automated and ready for you and your team to do serious software development! How's that for zero-configuration?!? ;)
npm -g install warhorse
MacOS USERS: Warhorse will install with 'sudo' - but it is not advised. Instead, it is recommended that you follow NPM's advice and relocate your global package directory. See, npmjs.org - 'Fixing npm permissions' for guidance.
See Wiki:Quick Start for guide as well as links to further tutorials and documentation.
Warhorse takes one good thing from Java's Maven... the idea of "convention over configuration".
Sticking to good conventions - saves a ton of configurational complexity and consequently too, a ton of developer and tester time that would be wasted having to update all the special paths, namings and project layouts throughout the life of a changing project.
The 'Conventions' that Warhorse offers - are based on the multiple decades of experience of Warhorse's main developer - and the particular care taken to utilise "well-known" and standard structures and naming - wherever possible.
They have been designed to be logical - yet real-world. For example, a software 'src/' directory - most logically might have a corresponding 'dst/' directory. But Warhorse doesn't have a 'dst/' but rather 'dist/' instead. The reason being, of course, that use of 'dist/' - to contain the final distributed product - is ubiquitous among contemporary developers.
Thus Warhorse's conventions are not an attempt to impose some "pure", "best-practice" or ideal onto developers - but rather - to simply formalise and automate what 80% of good developers already do!
You can find more information the specific Conventions that Warhorse offers in Wiki:Warhorse Conventions.
Warhorse is distributed under the AGPL-3.0 license.
This may change in the future to the Apache License, Version 2.0.
Either way though, Warhorse can be used freely and without restriction to build any individual commercial or non-commercial project.
Your code is your code - and using Warhorse - doesn't change that. :)