Bug 1663618 - Review Request: perl-App-ccdiff - Colored Character diff
Summary: Review Request: perl-App-ccdiff - Colored Character diff
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Jitka Plesnikova
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2019-01-05 15:01 UTC by Richard Fearn
Modified: 2019-01-19 02:25 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-01-19 02:25:50 UTC
Type: ---
Embargoed:
jplesnik: fedora-review+


Attachments (Terms of Use)

Description Richard Fearn 2019-01-05 15:01:16 UTC
Description of ccdiff:

All command-line tools that show the difference between two files fall
short in showing minor changes visuably useful. This tool tries to give
the look and feel of `diff --color` or `colordiff`, but extending the
display of colored output from red for deleted lines and green for added
lines to red for deleted characters and green for added characters within
the changed lines.

Spec URL: https://richardfearn.fedorapeople.org/perl-App-ccdiff/perl-App-ccdiff.spec
SRPM URL: https://richardfearn.fedorapeople.org/perl-App-ccdiff/perl-App-ccdiff-0.26-1.fc30.src.rpm

rpmlint output:

perl-App-ccdiff.noarch: W: spelling-error %description -l en_US visuably -> visually, advisably, viably
perl-App-ccdiff.noarch: W: spelling-error %description -l en_US colordiff -> color diff, color-diff, colorful
perl-App-ccdiff.src: W: spelling-error %description -l en_US visuably -> visually, advisably, viably
perl-App-ccdiff.src: W: spelling-error %description -l en_US colordiff -> color diff, color-diff, colorful
2 packages and 0 specfiles checked; 0 errors, 4 warnings.

The description is copied from the README (https://metacpan.org/source/HMBRAND/App-ccdiff-0.26/README.md) so I've opted to leave it as-is. ("colordiff" is correct.)

Comment 2 Jitka Plesnikova 2019-01-07 10:46:48 UTC
Source file is ok
Summary is ok
License is ok
Description is ok
URL and Source0 are ok
All tests passed

BuildRequires
FIX: Please add following BRs
     - perl(charnames) - lib/App/ccdiff.pm:7
     - perl(Getopt::Long) - lib/App/ccdiff.pm:10
     - perl(Term::ANSIColor) - lib/App/ccdiff.pm:9
     - perl(warnings) - used in Makefile.PL:2, lib/App/ccdiff.pm:6, ...
     - make - spec file lines 43, 50


$ rpm -qp --requires perl-App-ccdiff-0.26-1.fc30.noarch.rpm | sort | uniq -c
      1 perl(Algorithm::Diff)
      1 perl(charnames)
      1 perl(Getopt::Long)
      1 perl(:MODULE_COMPAT_5.28.1)
      1 perl(Term::ANSIColor)
      1 perl(:VERSION) >= 5.14.0
      1 perl(warnings)
      1 rpmlib(CompressedFileNames) <= 3.0.4-1
      1 rpmlib(FileDigests) <= 4.6.0-1
      1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
      1 rpmlib(PayloadIsXz) <= 5.2-1
      1 /usr/bin/perl
FIX: Please add following deps to Requires
     - perl(Pod::Usage) - ccdiff:106, lib/App/ccdiff.pm:106
     - perl-podlators - ccdiff:105, lib/App/ccdiff.pm:105
     - groff-base - ccdiff:105, lib/App/ccdiff.pm:105

$ rpm -qp --provides perl-App-ccdiff-0.26-1.fc30.noarch.rpm | sort | uniq -c
      1 perl(App::ccdiff) = 0.26
      1 perl-App-ccdiff = 0.26-1.fc30
Binary provides are Ok.

$ rpmlint ./perl-App-ccdiff*
perl-App-ccdiff.noarch: W: spelling-error %description -l en_US visuably -> visually, advisably, viably
perl-App-ccdiff.noarch: W: spelling-error %description -l en_US colordiff -> color diff, color-diff, colorful
perl-App-ccdiff.src: W: spelling-error %description -l en_US visuably -> visually, advisably, viably
perl-App-ccdiff.src: W: spelling-error %description -l en_US colordiff -> color diff, color-diff, colorful
2 packages and 1 specfiles checked; 0 errors, 4 warnings.
Rpmlint is ok

If you want to add the package to EPEL, please ignore these two TODO
TODO: The easier way to remove .packlist is used NO_PACKLIST option,
      which is part of perl(ExtUtils::MakeMaker) >= 6.76. It can be
      used in all Fedoras. The command is
      perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1

TODO: Remove the deleting empty directories in %install section. This is
      default behavior for Fedoras.

Please correct all 'FIX' issues and consider fixing 'TODO' items and
provide new spec file.

The package is not approved.

Comment 3 Richard Fearn 2019-01-07 22:30:01 UTC
Many thanks for the quick review, Jitka!

Is there a tool you used to find the missing dependencies?

> BuildRequires
> FIX: Please add following BRs
>      - perl(charnames) - lib/App/ccdiff.pm:7
>      - perl(Getopt::Long) - lib/App/ccdiff.pm:10
>      - perl(Term::ANSIColor) - lib/App/ccdiff.pm:9
>      - perl(warnings) - used in Makefile.PL:2, lib/App/ccdiff.pm:6, ...
>      - make - spec file lines 43, 50

Done. It looked to me like the build succeeded without these dependencies, so what was the rationale for including them? I couldn't see anything relevant in the packaging guidelines (https://docs.fedoraproject.org/en-US/packaging-guidelines/Perl/#_build_dependencies). Is it just that, since the script is being tested during the build, the BuildRequires should include all of the Requires?

> FIX: Please add following deps to Requires
>      - perl(Pod::Usage) - ccdiff:106, lib/App/ccdiff.pm:106
>      - perl-podlators - ccdiff:105, lib/App/ccdiff.pm:105
>      - groff-base - ccdiff:105, lib/App/ccdiff.pm:105

Done.

> If you want to add the package to EPEL, please ignore these two TODO
> TODO: The easier way to remove .packlist is used NO_PACKLIST option,
>       which is part of perl(ExtUtils::MakeMaker) >= 6.76. It can be
>       used in all Fedoras. The command is
>       perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1
> 
> TODO: Remove the deleting empty directories in %install section. This is
>       default behavior for Fedoras.

Ah, thanks. Both of the find commands were added automatically by `rpmdev-newspec -t perl`. I'll remove them for now, so that the spec is more appropriate for Fedora.

> Please correct all 'FIX' issues and consider fixing 'TODO' items and
> provide new spec file.

Spec URL: https://richardfearn.fedorapeople.org/perl-App-ccdiff/perl-App-ccdiff.spec
SRPM URL: https://richardfearn.fedorapeople.org/perl-App-ccdiff/perl-App-ccdiff-0.26-4.fc30.src.rpm

Scratch builds:

F29
https://koji.fedoraproject.org/koji/taskinfo?taskID=31881668
https://kojipkgs.fedoraproject.org//work/tasks/1669/31881669/perl-App-ccdiff-0.26-4.fc29.noarch.rpm

F30
https://koji.fedoraproject.org/koji/taskinfo?taskID=31881666
https://kojipkgs.fedoraproject.org//work/tasks/1667/31881667/perl-App-ccdiff-0.26-4.fc30.noarch.rpm

Thank you!

Comment 4 Jitka Plesnikova 2019-01-08 09:40:41 UTC
> Is there a tool you used to find the missing dependencies?
I am using tool tangerine and then I check the files manually. 
 
> > BuildRequires
> > FIX: Please add following BRs
> >      - perl(charnames) - lib/App/ccdiff.pm:7
> >      - perl(Getopt::Long) - lib/App/ccdiff.pm:10
> >      - perl(Term::ANSIColor) - lib/App/ccdiff.pm:9
> >      - perl(warnings) - used in Makefile.PL:2, lib/App/ccdiff.pm:6, ...
> >      - make - spec file lines 43, 50
+BuildRequires:  make
+BuildRequires:  perl(warnings)
+BuildRequires:  perl(charnames)
+BuildRequires:  perl(Term::ANSIColor)
+BuildRequires:  perl(Getopt::Long)
Ok

> Done. It looked to me like the build succeeded without these dependencies,
> so what was the rationale for including them? I couldn't see anything
> relevant in the packaging guidelines
> (https://docs.fedoraproject.org/en-US/packaging-guidelines/Perl/
> #_build_dependencies). Is it just that, since the script is being tested
> during the build, the BuildRequires should include all of the Requires?

The build succeeded, because the dependencies were loaded by other packages. 
However, if some dependencies change, it could caused the build failure. 

The BRs contain all dependencies which are needed for compile-time and tests.
Requires should listed all dependencies which can be needed by user.

> > FIX: Please add following deps to Requires
> >      - perl(Pod::Usage) - ccdiff:106, lib/App/ccdiff.pm:106
> >      - perl-podlators - ccdiff:105, lib/App/ccdiff.pm:105
> >      - groff-base - ccdiff:105, lib/App/ccdiff.pm:105
> 
> Done.
+Requires:       perl-podlators
+Requires:       groff-base
+Requires:       perl(Pod::Usage)
Ok

> 
> > If you want to add the package to EPEL, please ignore these two TODO
> > TODO: The easier way to remove .packlist is used NO_PACKLIST option,
> >       which is part of perl(ExtUtils::MakeMaker) >= 6.76. It can be
> >       used in all Fedoras. The command is
> >       perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1
> > 
> > TODO: Remove the deleting empty directories in %install section. This is
> >       default behavior for Fedoras.
> 
> Ah, thanks. Both of the find commands were added automatically by
> `rpmdev-newspec -t perl`. I'll remove them for now, so that the spec is more
> appropriate for Fedora.

-perl Makefile.PL INSTALLDIRS=vendor
+perl Makefile.PL INSTALLDIRS=vendor NO_PACKLIST=1

-find %{buildroot} -type f -name .packlist -exec rm -f {} ';'
-find %{buildroot} -depth -type d -exec rmdir {} 2>/dev/null ';'

Ok.

TODO: Please add version constrain 'perl(ExtUtils::MakeMaker) >= 6.76'

Please consider fixing 'TODO' item.

The package looks good.
Approved

Comment 5 Richard Fearn 2019-01-08 10:48:38 UTC
Thank you Jitka! Will add the version constraint.

New repo request: https://pagure.io/releng/fedora-scm-requests/issue/9382
and f29 branch request: https://pagure.io/releng/fedora-scm-requests/issue/9383

Comment 6 Gwyn Ciesla 2019-01-08 14:31:19 UTC
(fedscm-admin):  The Pagure repository was created at https://src.fedoraproject.org/rpms/perl-App-ccdiff

Comment 8 Fedora Update System 2019-01-09 12:21:58 UTC
perl-App-ccdiff-0.26-5.fc29 has been submitted as an update to Fedora 29. https://bodhi.fedoraproject.org/updates/FEDORA-2019-1fec6d2d48

Comment 9 Fedora Update System 2019-01-11 04:16:27 UTC
perl-App-ccdiff-0.26-5.fc29 has been pushed to the Fedora 29 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-1fec6d2d48

Comment 10 Fedora Update System 2019-01-19 02:25:50 UTC
perl-App-ccdiff-0.26-5.fc29 has been pushed to the Fedora 29 stable repository. If problems still persist, please make note of it in this bug report.


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