Up to now, we've been using recess as the official tool to compile less in bootstrapbase. From memory the decision to use recess as the official tool was more or less just because its what bootstrap 2 upstream used. It has actually always been particularly poor at debug output and so on and twitter have now stopped maintenance of recess (MDL-51582) so it makes sense to finally switch away from it.
Now that we have grunt - it seems natural to use that for building less, it makes it simpler and more standard for newcomers, basing on grunt means we can start to make use of other clever plugins without impacting developer workflow (like community developed themes are doing already), there is great tool support for grunt, it uses the same less.js as lessc etc etc. So thats what i've done in MDL-51582.
I think this is all fairly non controversial - the main reason for posting this is because I want to propose that we make this change on all supported branches (master, 30, 29). My rationale is:
- Consistent - less complicated for developers
- Making the change has no impact on third parties - only people changing core (in fact, people are already using lessc with out bootstrap in third party themes).
- We already require grunt for JS on these branches
- The grunt way is just easier than the manual commands we currently have (once grunt is installed)
This means once this is integrated, you'd have to use grunt instead of recess to compile less (to get consistent output). I welcome you feedback!