[Reply-To: set to opensuse-ruby]
Hi all,
After many discussions on this list, and also many internal
discussions within SUSE, I have attempted to summarise a collective
understanding about the pros and cons of the various strategies for
packaging Ruby applications.
This is not a complete understanding since it was not possible to
involve all experts in the area, nor is it even at this point a set of
guidelines or recommendations for which strategy to adopt. However
hopefully it should help Ruby application architects make an informed
decision about which approach best suits their project.
Feedback is warmly encouraged - please feel free to edit the wiki page
directly with your additions / amendments!
Thanks,
Adam
--
To unsubscribe, e-mail: opensuse-ruby+unsubscribe(a)opensuse.org
To contact the owner, e-mail: opensuse-ruby+owner(a)opensuse.org
Hi,
I currently try to package a rails app as RPM and ran into some issues that
don't know howto solve.
The current state of that package can be seen here:
https://build.opensuse.org/package/show?package=crowbar-barclamp-crowbar&pr…
The app ships with a Gemfile but does not include the Gemfile.lock (upstream
has some Good Reason(TM) for that). One of my problems is now that in order to
be able to use the app I need to call "bundle install" at some point either
during buildtime or after installing package. (Ideally with --local so it will
not talk to any remote servers and just use the gem install locally).
That means however that all gems listed in Gemfile will become BuildRequires of
the rails-app. Even when calling "gem install local --without developement
test" the gems in the development and test groups need to be present. Apart
from the fact that this will add quite a few useless build dependencies to the
package I also ran some other problems. E.g. the Gemfile contains this:
gem 'rcov', :platforms => :ruby_18, :group => [:development, :test]
gem 'simplecov', :platforms => :ruby_19, :group => :test, :require => false
Even when "bundle install" runs on a :ruby_19 platform it needs the gems for
the :ruby_18 to be present (AFAIK is needs access to some metadata of all gems
mentioned in Gemfile). That means even when building for Factory I would need
to add rubygem-rcov as a BuildRequires, which doesn't work as rubygem-rcov
depends on ruby-1.8 which we don't have on Factory.
Options to solve this I can think of:
1. Patch the gemfile to not require rcov
2. Avoid all dependencies on rubygem-*rpms, by calling "bundle install/package"
on my local machine and vendor all dependencies into the app's rpm package.
If possible I would like to avoid both of the above options. Does anybody here
have an idea if that is possible?
What is the general approach to packaging rails apps? (Avoid it? ;))
Is there a way to avoid bloating the BuildRequires and still create a working
RPM without the need to call bundler in the installed system?
--
regards,
Ralf
--
To unsubscribe, e-mail: opensuse-ruby+unsubscribe(a)opensuse.org
To contact the owner, e-mail: opensuse-ruby+owner(a)opensuse.org