[katello-devel] Bundler vs rpm-gems

Dmitri Dolguikh dmitri at redhat.com
Wed Aug 22 15:53:51 UTC 2012


On 22/08/12 04:39 PM, Petr Chalupa wrote:
> Sorry we probably misunderstood each other, I think the problem will 
> be when you try run the server. When bundler tries to require gems, it 
> wont know which gems to require because deployment gems weren't 
> installed and theirs dependencies weren't resolved when 'bundle 
> install development --without deployment' is run.

ahh, yes I was answering a different question.

To answer yours - in some cases bundle install --local would work, but 
only if the dependencies available locally are satisfactory (have you 
looked into using this instead of your approach?). Otherwise bundler_ext 
would work too, since it simply ignores versioning, and "loads" (not in 
ruby sense of the word) the latest gem version available.

-d
>
> Petr
>
> On 22.08.12 17:29, Dmitri Dolguikh wrote:
>> On 22/08/12 04:25 PM, Petr Chalupa wrote:
>>> Interesting :), did you try to:
>>>
>>> - yum install katello-all
>>> - run bundle install development
>>> - run katello
>>>
>>> I am not sure if bundler finds rpm-gems because they are not in
>>> Gemfile.lock, from bundlers point of view they are not present.
>> bundle install development --without deployment
>> -d
>>
>>>
>>> Petr
>>>
>>> On 22.08.12 17:21, Dmitri Dolguikh wrote:
>>>> On 22/08/12 09:48 AM, Dmitri Dolguikh wrote:
>>>>> Hey Petr,
>>>>> I have a fix for this in my local branch, using aeolus' bundler_ext
>>>>> [1] (which is now a gem). The only thing remaining is to create an 
>>>>> rpm
>>>>> for the gem, and make some minor changes to katello.spec.
>>>>>
>>>>> We can chat more if you'd like...
>>>>>
>>>>> [1] https://github.com/aeolus-incubator/bundler_ext
>>>>>
>>>>> -d
>>>>>
>>>>> On 22/08/12 09:39 AM, Petr Chalupa wrote:
>>>>>> Hi,
>>>>>>
>>>>>> as Ivan and Lukas said on mail-list, I had some ideas how to solve
>>>>>> our bundler/rpm issues. Then I had discussion with Ivan and Mirek 
>>>>>> and
>>>>>> here is the proposed solution.
>>>>>>
>>>>>> == Requirements
>>>>>>
>>>>>> When installing on fedora/rhel in production. Do not mess with the
>>>>>> production setup, rpm gems are used, 'bundle install' wont install
>>>>>> anything else.
>>>>>>
>>>>>> When installing on fedora/rhel in development. 'bundle install'
>>>>>> prefers rpm-gems even if there is a newer gem in our gem-repo [2].
>>>>>> Additional development dependencies are installed.
>>>>
>>>> Just realized that bundler supports this too. Create a group for
>>>> development dependencies, install katello from rpm, run 'bundler 
>>>> install
>>>> development' to install development-only gems.
>>>>
>>>> -d
>>>>
>>>>>>
>>>>>> When installing on any other system (Debian, Ubuntu, Mac, ...) in
>>>>>> development. 'bundle install' installs the same versions of gems as
>>>>>> would be installed on fedora. Optionally (at least made it possible
>>>>>> in the future) 'bundle install' installs not only the same versions
>>>>>> but also gems including security fixes included in rpm-gems.
>>>>>>
>>>>>> == Proposal
>>>>>>
>>>>>> I'll add monkey patch to katello/master for bundler which will 
>>>>>> ensure
>>>>>> that rpm-gems are preferred (even if they are older than gems in a
>>>>>> gem-repo). It's based on bkabrda's patch [1].
>>>>>>
>>>>>> I'll ensure that our gem repo [2] contains all gems needed for
>>>>>> katello development (some are still missing). This enables katello
>>>>>> (rails app) to be installed on any system without rubygems.org.
>>>>>>
>>>>>> I would like to work on this in the next iteration. Also I would 
>>>>>> like
>>>>>> to explore how difficult would be to create gem versions with
>>>>>> security patches (which is important for non fedora development - 
>>>>>> me).
>>>>>>
>>>>>> We also discussed it would be nice to move our gem-repo to github a
>>>>>> publish it on pages.github. The repo would be more visible. It would
>>>>>> allow us to use pull-requests for tracking new gem-dependencies. It
>>>>>> would be on one place.
>>>>>>
>>>>>> Petr
>>>>>>
>>>>>> [1] https://gist.github.com/2875212
>>>>>> [2] http://repos.fedorapeople.org/repos/katello/gems/
>>>>>>
>>>>>> _______________________________________________
>>>>>> katello-devel mailing list
>>>>>> katello-devel at redhat.com
>>>>>> https://www.redhat.com/mailman/listinfo/katello-devel
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> katello-devel mailing list
>>>>> katello-devel at redhat.com
>>>>> https://www.redhat.com/mailman/listinfo/katello-devel
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> katello-devel mailing list
>>>> katello-devel at redhat.com
>>>> https://www.redhat.com/mailman/listinfo/katello-devel
>>>>
>>>
>>> _______________________________________________
>>> katello-devel mailing list
>>> katello-devel at redhat.com
>>> https://www.redhat.com/mailman/listinfo/katello-devel
>>
>>
>> _______________________________________________
>> katello-devel mailing list
>> katello-devel at redhat.com
>> https://www.redhat.com/mailman/listinfo/katello-devel
>
> _______________________________________________
> katello-devel mailing list
> katello-devel at redhat.com
> https://www.redhat.com/mailman/listinfo/katello-devel





More information about the katello-devel mailing list