Bug 2244212 - Review Request: rubygem-faraday2 - HTTP/REST API client library
Summary: Review Request: rubygem-faraday2 - HTTP/REST API client library
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Nobody's working on this, feel free to take it
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On: 2244194 2244197
Blocks: 2244463
TreeView+ depends on / blocked
 
Reported: 2023-10-14 16:31 UTC by Benson Muite
Modified: 2023-10-16 16:24 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2023-10-16 16:24:00 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Comment 1 Jarek Prokop 2023-10-16 10:59:54 UTC
Unofficial review.

* I don't think `Conflicts: rubygem-faraday` makes sense with a regular Rubygem, as all the directories are namespaced with a version, therefore there should be no file conflicts, or other kind of conflicts, the packages rubygem-faraday and rubygem-faraday2 should be parallel installable without a problem.

There also isn't provides(rubygem-faraday) = %{version}
so even less chances for a conflict. (And not sure if the Fedora Packaging guide has any rules about this)

* Test suite isn't running *at all*, that's not great, nor desired state.

* There are also missing dependencies (maybe only rubygem-faraday-net_http?), that should definitely reach fedora before this package does, IOW a review request should exist for it and this ticket should depend on it.
If you'd try to require any part rubygem-faraday2, it will fail without the dependency.

Comment 2 Vít Ondruch 2023-10-16 11:19:10 UTC
Just as I said in the Ruby-SIG ML [1] I'd much rather see rubygem-faraday1 (as long as we need it) and keep the rubygem-faraday to follow the latest version.

(In reply to Jarek Prokop from comment #1)
> There also isn't provides(rubygem-faraday) = %{version}

There is autogenerated one:

~~~
$ rpm -qpP https://kojipkgs.fedoraproject.org//work/tasks/4444/107494444/rubygem-faraday2-2.7.11-1.fc40.noarch.rpm
rubygem(faraday) = 2.7.11
rubygem-faraday2 = 2.7.11-1.fc40
~~~

However I concur that there is no reason for conflicts.

> If you'd try to require any part rubygem-faraday2, it will fail without the dependency.

I don't think the package is installable due to missing dependency:

~~~
$ sudo dnf install https://kojipkgs.fedoraproject.org//work/tasks/4444/107494444/rubygem-faraday2-2.7.11-1.fc40.noarch.rpm
Repositories loaded.
 https://kojipkgs.fedoraproject.org//work/tasks/4444/107494444/rubygem-faraday2-2.7.11-1.fc40.noarch.rpm                                                                                              100% |  65.6 KiB/s |  37.4 KiB |  00m01sFailed to resolve the transaction:
Problem: conflicting requests
  - nothing provides rubygem(base64) needed by rubygem-faraday2-2.7.11-1.fc40.noarch
  - nothing provides (rubygem(faraday-net_http) >= 2.0 with rubygem(faraday-net_http) < 3.1) needed by rubygem-faraday2-2.7.11-1.fc40.noarch
  - nothing provides rubygem(ruby2_keywords) >= 0.0.4 needed by rubygem-faraday2-2.7.11-1.fc40.noarch
~~~


[1]: https://lists.fedoraproject.org/archives/list/ruby-sig@lists.fedoraproject.org/message/4DVEDKWQVACYNQN2JMWUNLWASHRB4M7N/(In reply to Jarek Prokop from comment #1)

Comment 3 Benson Muite 2023-10-16 14:30:47 UTC
Thanks for the suggestions. Copr with all needed dependencies:
https://copr.fedorainfracloud.org/coprs/fed500/rubygem-licensee/packages/

faraday-net_http requires faraday to build, but faraday only needs faraday-net_http to run.

Review request for faraday-net_http
https://bugzilla.redhat.com/show_bug.cgi?id=2244463

Comment 4 Jarek Prokop 2023-10-16 14:53:55 UTC
> I don't think the package is installable due to missing dependency:

Yeah DNF will scream much sooner than there will even be chance to try it as an user.

BTW base64 and ruby2_keywords can be removed from dependencies via the %gemspec_remove_dep macro and review requests dropped (for the sake of bringing and maintaining less packages).

These 2 packages have gemspecs provided by the ruby-default-gems and files are provided by ruby-libs.

Those libraries are probably low to none maintenance, but it is something that can be avoided completely.

> faraday-net_http requires faraday to build, but faraday only needs faraday-net_http to run.

Bootstrapping is the way to go usually, there are a few examples around the rubygem-* packages, cucumber is the first one that comes to mind: https://src.fedoraproject.org/rpms/rubygem-cucumber/blob/rawhide/f/rubygem-cucumber.spec#_3

It even has similar circular dependency problem. Here with aruba: https://src.fedoraproject.org/rpms/rubygem-cucumber/blob/rawhide/f/rubygem-cucumber.spec#_21

Aruba requires cucumber to run but cucumber requires aruba only for build, sounds like a similar situation for inspiration.

Comment 5 Vít Ondruch 2023-10-16 15:14:36 UTC
(In reply to Jarek Prokop from comment #4)
> BTW base64 and ruby2_keywords can be removed from dependencies via the
> %gemspec_remove_dep macro and review requests dropped (for the sake of
> bringing and maintaining less packages).

It depends. It might or might not be true. Less intrusive workaround is:

~~~
%global __requires_exclude ruby2_keywords
~~~

Used e.g. here:

https://src.fedoraproject.org/rpms/rubygem-mocha/blob/9138921e0c2e7cea4a5b24e6af591f4c1debb513/f/rubygem-mocha.spec#_21

Comment 6 Benson Muite 2023-10-16 16:24:00 UTC
Closing this. Rename request for current rubygem-faraday
https://bugzilla.redhat.com/show_bug.cgi?id=2244510
to allow it to be upgraded to the latest version.


Note You need to log in before you can comment on or make changes to this bug.