Bug 1818936 - Review Request: perl-Mojolicious-Plugin-OpenAPI - OpenAPI / Swagger plugin for Mojolicious
Summary: Review Request: perl-Mojolicious-Plugin-OpenAPI - OpenAPI / Swagger plugin fo...
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Petr Pisar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2020-03-30 18:11 UTC by Emmanuel Seyman
Modified: 2020-04-26 10:50 UTC (History)
2 users (show)

Fixed In Version: perl-Mojolicious-Plugin-OpenAPI-3.31-2.fc33
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2020-04-26 10:50:21 UTC
Type: ---
Embargoed:
ppisar: fedora-review+


Attachments (Terms of Use)

Description Emmanuel Seyman 2020-03-30 18:11:17 UTC
Spec URL: http://people.parinux.org/~seyman/fedora/perl-Mojolicious-Plugin-OpenAPI/perl-Mojolicious-Plugin-OpenAPI.spec
SRPM URL: http://people.parinux.org/~seyman/fedora/perl-Mojolicious-Plugin-OpenAPI/perl-Mojolicious-Plugin-OpenAPI-3.30-1.fc31.src.rpm
Description:
Mojolicious::Plugin::OpenAPI is a Mojolicious::Plugin that add routes and
input/output validation to your Mojolicious application based on a OpenAPI
(Swagger) specification. This plugin supports both version 2.0 and 3.x,
though 3.x might have some missing features.

Fedora Account System Username: eseyman
Rpmlint Output: 1 packages and 1 specfiles checked; 0 errors, 0 warnings.

Comment 1 Petr Pisar 2020-04-08 15:05:22 UTC
URL and Source0 addresses are usable. Ok.
Source0 archive (SHA-256: e828a3256bb2217abd1b947c0cad145e09a5fc8e858aade3b04792d4b8a6a5b4) is original. Ok.
Summary verified from lib/Mojolicious/Plugin/OpenAPI.pm. Ok.
Description verified from lib/Mojolicious/Plugin/OpenAPI.pm. Ok.

License verified from Makefile.PL, lib/Mojolicious/Plugin/OpenAPI.pm, README.md. Ok.
MIT-licensed files not in any binary package: t/v3-style-array.t, t/v3-basic.t, t/spec/v2-petstore.json, t/v3-nullable.t.
ASL 2.0-licensed files no in any binary package: t/spec/bundlecheck.json.
TODO: Please, put a comment into the spec file above the License tag reading that these files have a different license.

No XS code, noarch BuildArch is Ok.

FIX: Build-require 'perl-generators'. You package does does not list all Perl run-time dependencies and it relies on the generators.
FIX: Build-require 'perl-interpreter' (perl-Mojolicious-Plugin-OpenAPI.spec:51).
FIX: Build-require 'make' (perl-Mojolicious-Plugin-OpenAPI.spec:52). The macro is provided by rpm that does not depend on make.

TODO: Constrain 'perl(Mojolicious)' dependency with '>= 8.00' (META.json:34) if you believe that the metadata are correct.
TODO: Unset DUMMY_DB_ERROR, JSON_VALIDATOR_DEBUG, and MOJO_OPENAPI_DEBUG environment variables before executing "make check". They are used through-out the code and could influence the tests.
TODO: Suggest 'perl(Text::Markdown)' (lib/Mojolicious/Plugin/OpenAPI/SpecRenderer.pm:8).
TODO: Recommend 'perl(Config)' (lib/JSON/Validator/OpenAPI/Mojolicious.pm:10).

Test::Pod, Test::Pod::Coverage, Test::CPAN::Changes are optional. Ok.

TODO: Build-require 'perl(Text::Markdown)' for optional tests (t/plugin-spec-renderer-standalone.t:43).

All tests pass. Ok.

TODO: There are suspicous warnings printed when running the tests. It would be greate to report them to the upstream:
Format rule for 'unknown' is missing at /usr/share/perl5/vendor_perl/JSON/Validator.pm line 750.
Format rule for 'binary' is missing at /usr/share/perl5/vendor_perl/JSON/Validator.pm line 750.
Use of uninitialized value in string eq at /home/test/rpmbuild/BUILD/Mojolicious-Plugin-OpenAPI-3.30/blib/lib/JSON/Validator/OpenAPI/Mojolicious.pm line 58.
Use of uninitialized value in string eq at /home/test/rpmbuild/BUILD/Mojolicious-Plugin-OpenAPI-3.30/blib/lib/JSON/Validator/OpenAPI/Mojolicious.pm line 58.

$ rpmlint perl-Mojolicious-Plugin-OpenAPI.spec ../SRPMS/perl-Mojolicious-Plugin-OpenAPI-3.30-1.fc33.src.rpm ../RPMS/noarch/perl-Mojolicious-Plugin-OpenAPI-3.30-1.fc33.noarch.rpm 
sh: /usr/bin/python2: No such file or directory
2 packages and 1 specfiles checked; 0 errors, 0 warnings.
rpmlint is OK.

$ rpm -q -lv -p ../RPMS/noarch/perl-Mojolicious-Plugin-OpenAPI-3.30-1.fc33.noarch.rpm 
drwxr-xr-x    2 root     root                        0 Apr  8 16:54 /usr/share/doc/perl-Mojolicious-Plugin-OpenAPI
-rw-r--r--    1 root     root                    12242 Mar 24 02:24 /usr/share/doc/perl-Mojolicious-Plugin-OpenAPI/Changes
-rw-r--r--    1 root     root                    10945 Mar 24 02:24 /usr/share/doc/perl-Mojolicious-Plugin-OpenAPI/README.md
-rw-r--r--    1 root     root                     3104 Apr  8 16:53 /usr/share/man/man3/JSON::Validator::OpenAPI::Mojolicious.3pm.gz
-rw-r--r--    1 root     root                     4848 Apr  8 16:53 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI.3pm.gz
-rw-r--r--    1 root     root                     4053 Apr  8 16:53 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::Cors.3pm.gz
-rw-r--r--    1 root     root                     4334 Apr  8 16:53 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::Guides::OpenAPIv2.3pm.gz
-rw-r--r--    1 root     root                     4908 Apr  8 16:53 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::Guides::OpenAPIv3.3pm.gz
-rw-r--r--    1 root     root                     1915 Apr  8 16:53 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::Guides::Swagger2.3pm.gz
-rw-r--r--    1 root     root                     2712 Apr  8 16:53 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::Security.3pm.gz
-rw-r--r--    1 root     root                     2935 Apr  8 16:53 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::SpecRenderer.3pm.gz
drwxr-xr-x    2 root     root                        0 Apr  8 16:53 /usr/share/perl5/vendor_perl/JSON
drwxr-xr-x    2 root     root                        0 Apr  8 16:53 /usr/share/perl5/vendor_perl/JSON/Validator
drwxr-xr-x    2 root     root                        0 Apr  8 16:53 /usr/share/perl5/vendor_perl/JSON/Validator/OpenAPI
-rw-r--r--    1 root     root                    20604 Mar 24 02:23 /usr/share/perl5/vendor_perl/JSON/Validator/OpenAPI/Mojolicious.pm
drwxr-xr-x    2 root     root                        0 Apr  8 16:53 /usr/share/perl5/vendor_perl/Mojolicious
drwxr-xr-x    2 root     root                        0 Apr  8 16:53 /usr/share/perl5/vendor_perl/Mojolicious/Plugin
drwxr-xr-x    2 root     root                        0 Apr  8 16:53 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI
-rw-r--r--    1 root     root                    20868 Mar 24 02:24 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI.pm
-rw-r--r--    1 root     root                    14203 Mar  6 01:01 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Cors.pm
drwxr-xr-x    2 root     root                        0 Apr  8 16:53 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Guides
-rw-r--r--    1 root     root                     8423 Mar  3 07:53 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Guides/OpenAPIv2.pod
-rw-r--r--    1 root     root                    10470 Mar  3 07:53 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Guides/OpenAPIv3.pod
-rw-r--r--    1 root     root                     1782 Mar  3 07:53 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Guides/Swagger2.pod
-rw-r--r--    1 root     root                     6974 Mar  6 01:01 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Security.pm
-rw-r--r--    1 root     root                    34282 Mar  9 07:41 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/SpecRenderer.pm
File permissions and layout are Ok.

$ rpm -q --requires -p ../RPMS/noarch/perl-Mojolicious-Plugin-OpenAPI-3.30-1.fc33.noarch.rpm | sort -f | uniq -c
      1 perl(:MODULE_COMPAT_5.30.2)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsZstd) <= 5.4.18-1
FIX: Build-requiere 'perl-generators'.
FIX: Run-require 'perl(JSON::Validator) >= 3.16' explicitly for the versinon constrain.

$ rpm -q --provides -p ../RPMS/noarch/perl-Mojolicious-Plugin-OpenAPI-3.30-1.fc33.noarch.rpm | sort -f | uniq -c
      1 perl-Mojolicious-Plugin-OpenAPI = 3.30-1.fc33
FIX: Build-require 'perl-generators'.

$ resolvedeps rawhide ../RPMS/noarch/perl-Mojolicious-Plugin-OpenAPI-3.30-1.fc33.noarch.rpm 
Binary dependencies are resolvable. Ok.

Otherwise the package is in line with Fedora and Perl packaging guide lines.
Please correct all 'FIX' items, consider fixing 'TODO' items and provide a new spec file.
Resolution: Package NOT approved.

The package builds in Fedora 33 (https://koji.fedoraproject.org/koji/taskinfo?taskID=43131004). Ok.

Comment 2 Emmanuel Seyman 2020-04-08 18:14:22 UTC
Thank you for the review, Petr.
I believe I've taken into account all your comments. I also updated the package to version 3.31 which came out since I submitted the review request.

Spec URL: http://people.parinux.org/~seyman/fedora/perl-Mojolicious-Plugin-OpenAPI/perl-Mojolicious-Plugin-OpenAPI.spec
SRPM URL: http://people.parinux.org/~seyman/fedora/perl-Mojolicious-Plugin-OpenAPI/perl-Mojolicious-Plugin-OpenAPI-3.31-1.fc31.src.rpm

Comment 3 Petr Pisar 2020-04-09 09:00:39 UTC
This is a rebase, restarting the review.

Url and Source0 addresses are usable. Ok.
Source0 archive (SHA-256: 7689ad5922614094d699c2c3441cb05c7d58cd691779e4f8e79ea456f0f46782) is original. Ok.
Summary verified from lib/Mojolicious/Plugin/OpenAPI.pm. Ok.
Description verified from lib/Mojolicious/Plugin/OpenAPI.pm. Ok.
License verified from Makefile.PL, lib/Mojolicious/Plugin/OpenAPI.pm, README.md. Ok.
Other files have other good licenses and are not distributed in any binary package. Ok.
No XS code, noarch BuildArch is Ok.

FIX: Do not build-require 'perl(YAML::XS)' it's nowhere directly used.
TODO: You can remove one of the 'perl(Mojolicious)' BuildRequires. One is enough.
TODO: Build-require 'perl(Data::Validate::IP)' for an optional test (t/v2-formats.t:69:).

All tests pass. Ok.

$ rpmlint perl-Mojolicious-Plugin-OpenAPI.spec ../SRPMS/perl-Mojolicious-Plugin-OpenAPI-3.31-1.fc33.src.rpm ../RPMS/noarch/perl-Mojolicious-Plugin-OpenAPI-3.31-1.fc33.noarch.rpm 
sh: /usr/bin/python2: No such file or directory
2 packages and 1 specfiles checked; 0 errors, 0 warnings.
rpmlint is Ok.

$ rpm -q -lv -p ../RPMS/noarch/perl-Mojolicious-Plugin-OpenAPI-3.31-1.fc33.noarch.rpm 
drwxr-xr-x    2 root     root                        0 Apr  9 10:41 /usr/share/doc/perl-Mojolicious-Plugin-OpenAPI
-rw-r--r--    1 root     root                    12342 Mar 31 13:42 /usr/share/doc/perl-Mojolicious-Plugin-OpenAPI/Changes
-rw-r--r--    1 root     root                    10945 Mar 31 13:42 /usr/share/doc/perl-Mojolicious-Plugin-OpenAPI/README.md
-rw-r--r--    1 root     root                     3104 Apr  9 10:40 /usr/share/man/man3/JSON::Validator::OpenAPI::Mojolicious.3pm.gz
-rw-r--r--    1 root     root                     4848 Apr  9 10:40 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI.3pm.gz
-rw-r--r--    1 root     root                     4053 Apr  9 10:40 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::Cors.3pm.gz
-rw-r--r--    1 root     root                     4334 Apr  9 10:40 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::Guides::OpenAPIv2.3pm.gz
-rw-r--r--    1 root     root                     4908 Apr  9 10:40 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::Guides::OpenAPIv3.3pm.gz
-rw-r--r--    1 root     root                     1915 Apr  9 10:40 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::Guides::Swagger2.3pm.gz
-rw-r--r--    1 root     root                     2712 Apr  9 10:40 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::Security.3pm.gz
-rw-r--r--    1 root     root                     2936 Apr  9 10:40 /usr/share/man/man3/Mojolicious::Plugin::OpenAPI::SpecRenderer.3pm.gz
drwxr-xr-x    2 root     root                        0 Apr  9 10:40 /usr/share/perl5/vendor_perl/JSON
drwxr-xr-x    2 root     root                        0 Apr  9 10:40 /usr/share/perl5/vendor_perl/JSON/Validator
drwxr-xr-x    2 root     root                        0 Apr  9 10:40 /usr/share/perl5/vendor_perl/JSON/Validator/OpenAPI
-rw-r--r--    1 root     root                    20604 Mar 24 02:23 /usr/share/perl5/vendor_perl/JSON/Validator/OpenAPI/Mojolicious.pm
drwxr-xr-x    2 root     root                        0 Apr  9 10:40 /usr/share/perl5/vendor_perl/Mojolicious
drwxr-xr-x    2 root     root                        0 Apr  9 10:40 /usr/share/perl5/vendor_perl/Mojolicious/Plugin
drwxr-xr-x    2 root     root                        0 Apr  9 10:40 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI
-rw-r--r--    1 root     root                    20868 Mar 31 13:42 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI.pm
-rw-r--r--    1 root     root                    14203 Mar  6 01:01 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Cors.pm
drwxr-xr-x    2 root     root                        0 Apr  9 10:40 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Guides
-rw-r--r--    1 root     root                     8423 Mar  3 07:53 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Guides/OpenAPIv2.pod
-rw-r--r--    1 root     root                    10470 Mar  3 07:53 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Guides/OpenAPIv3.pod
-rw-r--r--    1 root     root                     1782 Mar  3 07:53 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Guides/Swagger2.pod
-rw-r--r--    1 root     root                     6974 Mar  6 01:01 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/Security.pm
-rw-r--r--    1 root     root                    34334 Mar 31 13:38 /usr/share/perl5/vendor_perl/Mojolicious/Plugin/OpenAPI/SpecRenderer.pm
File layout and permissions are Ok.

$ rpm -q --requires -p ../RPMS/noarch/perl-Mojolicious-Plugin-OpenAPI-3.31-1.fc33.noarch.rpm | sort -f | uniq -c
      1 perl(:MODULE_COMPAT_5.30.2)
      1 perl(Carp)
      1 perl(constant)
      1 perl(JSON::Validator) >= 3.16
      1 perl(JSON::Validator::OpenAPI::Mojolicious)
      1 perl(JSON::Validator::Ref)
      1 perl(Mojo::Base)
      1 perl(Mojo::JSON)
      1 perl(Mojo::Util)
      1 perl(Scalar::Util)
      1 perl(Time::Local)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsZstd) <= 5.4.18-1
FIX: Run-require 'perl(Mojolicious::Plugin)' (lib/Mojolicious/Plugin/OpenAPI.pm:2).

$ rpm -q --provides -p ../RPMS/noarch/perl-Mojolicious-Plugin-OpenAPI-3.31-1.fc33.noarch.rpm | sort -f | uniq -c
      1 perl(JSON::Validator::OpenAPI::Mojolicious)
      1 perl(Mojolicious::Plugin::OpenAPI) = 3.31
      1 perl(Mojolicious::Plugin::OpenAPI::Cors)
      1 perl(Mojolicious::Plugin::OpenAPI::Security)
      1 perl(Mojolicious::Plugin::OpenAPI::SpecRenderer)
      1 perl-Mojolicious-Plugin-OpenAPI = 3.31-1.fc33
Binary provides are Ok.

$ resolvedeps rawhide ../RPMS/noarch/perl-Mojolicious-Plugin-OpenAPI-3.31-1.fc33.noarch.rpm
Binary dependencies are resolvable. Ok.

The package builds in Fedora 33 (https://koji.fedoraproject.org/koji/taskinfo?taskID=43155856). Ok.

Otherwise the package is in line with Fedora and Perl packaging guile lines.

Please correct the 'FIX' items and consider fixing 'TODO' items before building this package.
Resolution: Package APPROVED.

Comment 5 Gwyn Ciesla 2020-04-09 14:46:27 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/perl-Mojolicious-Plugin-OpenAPI

Comment 6 Emmanuel Seyman 2020-04-26 10:50:21 UTC
Package submitted to f32 stable repo/


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