

A solution to assets management in Rails - lfxx
https://rails-assets.org/

======
jbverschoor
TL;DR -> Gem repo which automatically converts Bower packages to gems

Awesome! Was looking for something like this. I used to have a "vendorassets"
directory where I could sanely manage 3rd party assets. Still a pain in the
ass sometimes.

Rails-gems are usually out of date and everyone seems to jump the bower-ship.

------
danaw
Just set bower to install into vendor/assets and link to those instead in your
stylesheets/scripts. No need to add an additional layer of indirection and
increasing the length of you Gemfile. Your bower.json should be where this
information is stored, not you Gemfile.

~~~
munificent
How do you lock your bower dependencies then?

~~~
chrisweekly
Bower deps are bound by semver; and if you're willing to commit them (which
you should, if your project is a webapp and not a software library) then you
can lock them w 100% certainty and control. /$.02

~~~
Smudge
Why exactly should you be willing to commit them? There are certainly ways to
lock your versions while still vendoring the files on deploy.

~~~
ulisesrmzroche
But the libraries you depend on may not work nicely together, minor versions
for them could create breaking bugs in your app, and a ton of other things
that can go wrong. The easiest way to put your app at the real working truth
(no difference btween dev, prod, etc) is to commit your vendor files.

~~~
Smudge
If you're relying on specific version releases of the libraries, you'll always
be vendoring the same files (and if not the deploy should fail). If you are
relying on a non-versioned release from a git repo, you can point to a
particular commit hash in that library's repo. Neither of these requires
checking your app's dependencies directly into its git repo.

Source control is not in itself a solution for dependency resolution. Sure,
once your dependencies are worked out you can check them in, if you really
want them hard-coded, but it shouldn't be necessary. Claiming so is a failure
to understand how dependency resolution works -- part of the point of bower,
or rubygems, or what have you, is knowing that you'll always get the same
versions in all environments.

~~~
ulisesrmzroche
Yeah, sure buddy. I think you're just kind of a noob and are really not
getting the whole picture yet. Google around for the debate, it's been thrown
around for ages, or start here maybe.

[https://www.npmjs.org/doc/faq.html#Should-I-check-my-
node_mo...](https://www.npmjs.org/doc/faq.html#Should-I-check-my-node_modules-
folder-into-git)

~~~
Smudge
I didn't realize we were talking about node here, so I suppose you're right.
I'm a noob at node. Which of course is _ages_ old. _Way_ older than any of
those other technologies I've been using for the past 15 years or so.

Sarcasm aside, I have to say I'm surprised at npm's best practices, but
whatever. Personally, I'd rather not make my line count graph explode every
time I add or remove a dependency. I still firmly believe that source control
is not the only way to reliably vendor files.

------
clarkevans
Is there an equivalent to this in Python land (I've looked but not seen
anything)? It'd be great to have "pip install bower-bootstrap".

~~~
rhizome31
Fanstatic is pretty close:
[http://www.fanstatic.org/](http://www.fanstatic.org/)

------
ffn
Oh sweet. Looks like I don't have to put vendor assets code into my git repos
anymore. Thanks rails-assets.org

~~~
adamtj
That would tie your ability to deploy your code to the availability of rails-
assets.org. How many nines are they promising you and how much are you paying
for it?

~~~
sheerun
You're totally right, we want to decentralize Rails Assets in some way.

On other hand we're pretty close to the uptime of GitHub and we're not going
anywhere, so I would't worry too much.

------
joevandyk
I don't get this.

It's not hard to download a JavaScript or css file and put them in app/assets.

What warrants the additional complexity?

~~~
Smudge
It's not that hard, but do it 50 times, manually managing a complex dependency
tree (which jQuery version does this thing need again?), and you'll realize
how nice it would be to have a package manager for your client-side
dependencies.

------
PetrolMan
This is really neat but my problem with the asset pipeline hasn't been
managing library dependencies but the general slowness of the process.

------
twerquie
What's wrong with just using Bower?

~~~
gkop
Check out [http://bower.io/](http://bower.io/) :

> Bower is a package manager for the web. It offers a generic, unopinionated
> solution to the problem of front-end package management, while exposing the
> package dependency model via an API that can be consumed by a more
> opinionated build stack.

rails-assets is an example of a higher-level, more opinionated stack that adds
value on top of bower.

~~~
nixme
You know sprockets includes bower support. Just add the path.

------
kaonashi
(the wrong) solution to asset management in Rails

------
Bluestrike2
That's pretty nifty.

