On Wed, Sep 15, 2021 at 12:25 PM Vít Ondruch <[email protected]> wrote:

>
> Dne 15. 09. 21 v 11:45 Pavel Valena napsal(a):
>
>
> On Wed, Sep 15, 2021 at 10:49 AM Vít Ondruch <[email protected]> wrote:
>
>> https://src.fedoraproject.org/rpms/ruby/blob/rawhide/f/macros.rubygems#_57
>>
>> Maybe this ^^ could default to empty array instead of `nil`?
>>
>
> Yes, but that would just ignore the error. `nil` is fine with me.
>
>
>> OTOH, it might be worth of raising error for this case instead of just
>> being NOOP, because this helps to detect changes in gem and remove the
>> macro when it is not needed anymore.
>>
>
> Yes, that's what I'm proposing. It's just that the current error message
> is not explanative (it's not obvious what's broken).
>
> ```
> if dep
>     abort("#{name} dependency already exists") unless dependencyt
> ```
>
>
> You meant s/dependencyt/requirements/, right? And the error message could
> be probably more explanatory, e.g. it could include something like "without
> explicitly defined requirements" ...
>

Yes, sorry, `requirements`. Ok, I'll prepare a PR.

Pavel

>
> V.
>
>
>
> Like this?
>
> Pavel
>
>
>>
>> Vít
>>
>>
>> Dne 14. 09. 21 v 16:21 Pavel Valena napsal(a):
>>
>> Hello,
>>
>> I've encountered an issue while doing an update to vagrant-libvirt 0.5.3.
>>
>> ```
>> DEBUG: + echo 'gemspec_file = '\''../vagrant-libvirt-0.5.3.gemspec'\''
>> DEBUG:
>> DEBUG:   name = '\''rexml'\''
>> DEBUG:   requirements = nil
>> DEBUG:
>> DEBUG:   type = :runtime
>> DEBUG:
>> DEBUG:   spec = Gem::Specification.load(gemspec_file)
>> DEBUG:   abort("#{gemspec_file} is not accessible.") unless spec
>> DEBUG:
>> DEBUG:   dep = spec.dependencies.detect { |d| d.type == type && d.name
>> == name }
>> DEBUG:   if dep
>> DEBUG:     dep.requirement.concat requirements
>> DEBUG:   else
>> DEBUG:     spec.public_send "add_#{type}_dependency", name, requirements
>> DEBUG:   end
>> DEBUG:   File.write gemspec_file, spec.to_ruby'
>> DEBUG: + ruby
>> DEBUG: /usr/share/rubygems/rubygems/requirement.rb:146:in `concat':
>> undefined method `flatten' for nil:NilClass (NoMethodError)
>> DEBUG:  from -:13:in `<main>'
>> ```
>>
>> This is caused by (I've already removed it; and it works now):
>> ```
>> -# Rexml needs to be required since Ruby 3.0.
>> -# https://github.com/vagrant-libvirt/vagrant-libvirt/pull/1277
>> -%gemspec_add_dep -g rexml -s ../%{vagrant_plugin_name}-%{version}.gemspec
>> ```
>> As this would be an empty change (rexml was already added), and
>> `requirements` is `nil`, this is not expected use.
>>
>> Should we enhance the macros to cover this case with a proper error
>> message?
>>
>> Regards,
>> Pavel
>>
>> Additional notes:
>>
>> https://github.com/rubygems/rubygems/blob/3387dbf66d3721f1a25ea60d6bab8fddaf257f74/lib/rubygems/requirement.rb#L146
>> https://src.fedoraproject.org/rpms/vagrant-libvirt/pull-request/7
>>
>>
>>
>
>
_______________________________________________
ruby-sig mailing list -- [email protected]
To unsubscribe send an email to [email protected]
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/[email protected]
Do not reply to spam on the list, report it: 
https://pagure.io/fedora-infrastructure

Reply via email to