Frontend Assets, JavaScript, Bower, etc

We’ve decided to standardize on pulling all our frontend asset libraries from Bower, via Rails Assets.

As we are already using some gems from Rails Assets, their dependencies are pulling in corresponding copies of base libraries.

Switching entirely to rails-assets-* gems will eliminate any duplication, and consequent version confusion.

This also means we no longer depend on Rails-specific repackaging of any libraries: in all cases, we’ll be using a copy straight out of Bower.

We’re giving up any Rails-specific helpers that might be packaged inside the *-rails gems. This is unfortunate, but currently unavoidable.

Finally, we still need a good solution for working with unreleased versions of bower packages: for now, that’s an open point of investigation, and known to be unpleasant.

@himdel is working on the rails-assets-* conversion in #3773. To get us past our most immediate hurdle, he has addressed just Angular in #3940.

I’m also going to look into what would be necessary for upstream to fully support using bower directly (without From what I’ve seen so far, it’s not quite there yet, but may not be that hard to achieve.