[opensuse-ruby] Packaging OpenProject (a fork of Redmine/ChiliProject)
Hello all, I've been working for a while on packaging OpenProject (openproject.org), which is a very interesting fork of Redmine. I've been putting my packages here: https://build.opensuse.org/project/show/home:matthewtrescott:openproject As you can see, there are quite a lot of Ruby gem dependencies that I needed to package as well. Most of them were easy enough with gem2rpm though. I'd like to contribute my package to Factory eventually but there are so many packages... I just don't know where to begin. Should I start making OBS submitrequests to devel:languages:ruby:extensions for all those dependencies? I'm also not really sure where the main openproject package belongs—maybe devel:tools:scm? The potential sticky spot I can imagine with getting it accepted in Factory is the Node.js "dependency pack" (I archived the result of npm12 install). I think there is maybe a precompiled binary or two in there, which is not ideal. On the other hand, I can't imagine packaging all those dependencies just to be able to compile OpenProject's CSS and JavaScript. I was hoping to get some early feedback on these packages and suggestions for what I could improve. I know I still need to test certain things like memcached, remote databases, and non-standard sockets for Puma to listen on (currently I have a systemd socket unit with a hardcoded path). Thanks! Matthew Trescott -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
Matthew Trescott, Matthew Trescott writes:
As you can see, there are quite a lot of Ruby gem dependencies that I needed to package as well. Most of them were easy enough with gem2rpm though. I'd like to contribute my package to Factory eventually but there are so many packages... I just don't know where to begin. Should I start making OBS submitrequests to devel:languages:ruby:extensions for all those dependencies?
Depends on what your goal is and what your view on those dependencies are. If you want to get it into the distro, that is probably the right strategy, but it will bring lot of maintenance with it, as people will update gems and break your package. If your goal is just to run it on a openSUSE system, you may also look into the bundle_gems service (https://github.com/openSUSE/obs-service-bundle_gems), which would put all the dependencies inside the rpm of your Rails application. You can see software.opensuse.org spec file and _service to learn how it is used: https://build.opensuse.org/package/show/openSUSE:infrastructure:software.ope... Regards, -- Duncan Mac-Vicar P. - Director, Data Center Management; R&D SUSE Software Solutions Germany GmbH, Maxfeldstrasse 5, 90409 Nürnberg, Germany GF: Felix Imendörffer, HRB 36809, AG Nürnberg -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
Hello Duncan,
Depends on what your goal is and what your view on those dependencies are. If you want to get it into the distro, that is probably the right strategy, but it will bring lot of maintenance with it, as people will update gems and break your package.
My goal is to get it into the distro, to make it as easy as possible for others to install. Inspired by https://ourobengr.com/2013/10/tied-to-the-rails/ I made a patch to use the gem and require functions directly instead of using Bundler. I do know what you mean about updated gems breaking things however. I recently discovered that the versions of Reform and Reform::Rails I had packaged were too new and caused subtle problems. On the other hand, if I followed exactly what was in the Gemfile.lock, I would (still!) be missing the nice fix for a race condition that was added in delayed_cron_job 0.7.3. The Reform libraries also happen to be ones for which OpenProject loads overrides in config/initializers. If I keep to a single major version number (i.e. major.minor.bugfix) for all the "normal" libraries that aren't special cases like Reform, would you say that's a happy medium in terms of stability? Basically I've been putting something like "~> 2.5" instead of "~> 2.5.0" in my calls to the gem function.
If your goal is just to run it on a openSUSE system, you may also look into the bundle_gems service (https://github.com/openSUSE/obs-service-bundle_gems), which would put all the dependencies inside the rpm of your Rails application.
You can see software.opensuse.org spec file and _service to learn how it is used: https://build.opensuse.org/package/show/openSUSE:infrastructure:software.ope...
Thanks for the pointer! Even if I'm not using Bundler, that specfile answers a few questions I had about best practices, like how to package the Apache vhost template. Any input on the Node dependencies dilemma I mentioned? Is it OK to use a "dependency pack" for that? Matthew -- To unsubscribe, e-mail: opensuse-ruby+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-ruby+owner@opensuse.org
participants (2)
-
Duncan Mac-Vicar P.
-
Matthew Trescott