Bug 1215046 - Review Request: python-gear - Pure Python Async Gear Protocol Library
Summary: Review Request: python-gear - Pure Python Async Gear Protocol Library
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
unspecified
medium
Target Milestone: ---
Assignee: Michael S.
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2015-04-24 07:53 UTC by Fabien Boucher
Modified: 2015-07-21 12:58 UTC (History)
4 users (show)

Fixed In Version: python-gear-0.5.7-1.el7
Clone Of:
Environment:
Last Closed: 2015-06-24 16:03:14 UTC
Type: ---
Embargoed:
misc: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Fabien Boucher 2015-04-24 07:53:52 UTC
Spec URL: https://ca.enocloud.com:8080/v1/AUTH_b57314058a4e42dabffc8cde6ccbf2de/fedora-packaging/python-gear.spec
SRPM URL: https://ca.enocloud.com:8080/v1/AUTH_b57314058a4e42dabffc8cde6ccbf2de/fedora-packaging/python-gear-0.5.5-0.20150423git9035599.fc21.src.rpm

Description: 
python-gear implements an asynchronous event-driven interface to Gearman.
It provides interfaces to build a client or worker, and access to the
administrative protocol. The design approach is to keep it simple, with a
relatively thin abstraction of the Gearman protocol itself. It should be
easy to use to build a client or worker that operates either synchronously
or asynchronously. The module also provides a simple Gearman server for
use as a convenience in unit tests. The server is not designed for
production use under load.

Fedora Account System Username: fbo

This is my first package.

Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=9547655

Comment 1 Pranav Kant 2015-05-05 22:08:07 UTC
Just a quick informal review.

* You need either python2-devel or python3-devel in BR. See: http://fedoraproject.org/wiki/Packaging:Python#BuildRequires

* You have some commented out commands in %build section. Either use them or remove them.

* Binary eggs must be removed in %prep section; remove .egg-info files.

* You don't need %clean section. Fedora handles it for you.

Comment 2 Fabien Boucher 2015-05-07 14:26:37 UTC
Hi Pranav, thanks for the review.

I've updated the spec file and src.rpm.

https://ca.enocloud.com:8080/v1/AUTH_b57314058a4e42dabffc8cde6ccbf2de/fedora-packaging/python-gear.spec
https://ca.enocloud.com:8080/v1/AUTH_b57314058a4e42dabffc8cde6ccbf2de/fedora-packaging/python-gear-0.5.5-0.fc21.src.rpm

I no longer rely on a specific git ref but on the last tagged version available on pypi. The tag is a bit old but recently, gear has been tagged 0.5.6 and it's a matter of time this version is available on pypi too.

Regarding python[2|3]-devel in BuildRequires section I think only python2-devel is needed indeed AFAIK python-gear does not include any python 3 files.

I removed the commented commands. A missing dependency to sphinx make the doc building impossible.

About the eggs-info directory maybe I'm wrong but here http://fedoraproject.org/wiki/Packaging:Python#Files_to_include it is mentioned to keep it.

I removed the %clean section.

Cheers,
Fabien

Koji build: https://koji.fedoraproject.org/koji/taskinfo?taskID=9678302

Comment 3 Fabien Boucher 2015-05-07 16:43:56 UTC
Version 0.5.6 has been pushed on pypi by upstream today so I updated again the spec file to use the new tag.

https://ca.enocloud.com:8080/v1/AUTH_b57314058a4e42dabffc8cde6ccbf2de/fedora-packaging/python-gear.spec
https://ca.enocloud.com:8080/v1/AUTH_b57314058a4e42dabffc8cde6ccbf2de/fedora packaging/python-gear-0.5.6-0.fc21.src.rpm

Koji build: http://koji.fedoraproject.org/koji/taskinfo?taskID=9679722

Cheers,
Fabien

Comment 5 Michael S. 2015-05-28 20:17:05 UTC
Package Review
==============

Legend:
[x] = Pass, [!] = Fail, [-] = Not applicable, [?] = Not evaluated
[ ] = Manual review needed


Issues:
=======
- license go in %license, not in %doc anymore
  http://fedoraproject.org/wiki/Packaging/LicensingGuidelines#License_Text

- There is no need to add a explit requires python, since rpm take care of that
( especially since that's a unversionned python deps )

- ideally, a comment saying that the patch cannot be sent upstream ( and why )
or a comment saying it was sent upstream would be nice

- any reasons to not have a %check section since the package ship a tox.ini file ?

- what about python 3 ?

Since most issues can be fixed quite easily, none are a blocker so I will sponsor you.  
===== MUST items =====

Generic:
[x]: Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses
     found: "Apache (v2.0)", "Unknown or generated". 1 files have unknown
     license. Detailed output of licensecheck in /home/builder/1215046
     -python-gear/licensecheck.txt
[ ]: Package contains no bundled libraries without FPC exception.
[x]: Changelog in prescribed format.
[x]: Sources contain only permissible code or content.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package uses nothing in %doc for runtime.
[x]: Package consistently uses macros (instead of hard-coded directory
     names).
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[!]: Requires correct, justified where necessary.
[x]: Spec file is legible and written in American English.
[-]: Package contains systemd file(s) if in need.
[x]: Package is not known to require an ExcludeArch tag.
[x]: Large documentation must go in a -doc subpackage. Large could be size
     (~1MB) or number of files.
     Note: Documentation size is 40960 bytes in 6 files.
[x]: Package complies to the Packaging Guidelines
[x]: Package successfully compiles and builds into binary rpms on at least
     one supported primary architecture.
[x]: Package installs properly.
[x]: Rpmlint is run on all rpms the build produces.
     Note: There are rpmlint messages (see attachment).
[x]: Package requires other packages for directories it uses.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: Package uses either %{buildroot} or $RPM_BUILD_ROOT
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Macros in Summary, %description expandable at SRPM build time.
[x]: Dist tag is present.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package use %makeinstall only when make install DESTDIR=... doesn't
     work.
[x]: Package is named using only allowed ASCII characters.
[x]: Package does not use a name that already exists.
[x]: Package is not relocatable.
[x]: Sources used to build the package match the upstream source, as
     provided in the spec URL.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[x]: File names are valid UTF-8.
[x]: Packages must not store files under /srv, /opt or /usr/local

Python:
[x]: Python eggs must not download any dependencies during the build
     process.
[x]: A package which is used by another package via an egg interface should
     provide egg info.
[!]: Package meets the Packaging Guidelines::Python
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep

===== SHOULD items =====

Generic:
[x]: If the source package does not include license text(s) as a separate
     file from upstream, the packager SHOULD query upstream to include it.
[x]: Final provides and requires are sane (see attachments).
[-]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: Patches link to upstream bugs/comments/lists or are otherwise
     justified.
[-]: Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[x]: Package should compile and build into binary rpms on all supported
     architectures.
[!]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed
     files.
[x]: Packager, Vendor, PreReq, Copyright tags should not be in spec file
[x]: Sources can be downloaded from URI in Source: tag
[x]: Reviewer should test that the package builds in mock.
[x]: Buildroot is not present
[x]: Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: SourceX is a working URL.
[x]: Spec use %global instead of %define unless justified.

===== EXTRA items =====

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: There are rpmlint messages (see attachment).
[x]: Spec file according to URL is the same as in SRPM.


Rpmlint
-------
Checking: python-gear-0.5.6-0.fc21.noarch.rpm
          python-gear-0.5.6-0.fc21.src.rpm
python-gear.noarch: W: no-manual-page-for-binary geard
2 packages and 0 specfiles checked; 0 errors, 1 warnings.




Rpmlint (installed packages)
----------------------------
python-gear.noarch: W: no-manual-page-for-binary geard
1 packages and 0 specfiles checked; 0 errors, 1 warnings.



Requires
--------
python-gear (rpmlib, GLIBC filtered):
    /usr/bin/python
    python
    python(abi)
    python-argparse
    python-daemon
    python-extras



Provides
--------
python-gear:
    python-gear



Source checksums
----------------
https://pypi.python.org/packages/source/g/gear/gear-0.5.6.tar.gz :
  CHECKSUM(SHA256) this package     : 9e56cc8a3df10329aa67a97312b08bf5d57af7a381acf9a32e99a00963fc8317
  CHECKSUM(SHA256) upstream package : 9e56cc8a3df10329aa67a97312b08bf5d57af7a381acf9a32e99a00963fc8317


Generated by fedora-review 0.5.3 (bcf15e3) last change: 2015-05-04
Command line :/bin/fedora-review -b 1215046
Buildroot used: fedora-21-x86_64
Active plugins: Python, Generic, Shell-api
Disabled plugins: Java, C/C++, fonts, SugarActivity, Ocaml, Perl, Haskell, R, PHP, Ruby
Disabled flags: EXARCH, DISTTAG, EPEL5, BATCH, EPEL6

Comment 6 Fabien Boucher 2015-05-29 13:29:45 UTC
Hi Michael,

Thank for the review !

I guess I can fix the items you mentioned after I got the access to the SCM ?
I'll do the SCM request. For python 3, it seems the library is compatible so I'll add the required elements in the spec file.

Cheers,
Fabien

Comment 7 Fabien Boucher 2015-05-29 13:57:50 UTC
New Package SCM Request
=======================
Package Name: python-gear
Short Description: Pure Python Async Gear Protocol Library
Upstream URL: https://github.com/openstack-infra/gear
Owners: fbo
Branches: f20 f21 f22 epel7
InitialCC: misc

Comment 8 Gwyn Ciesla 2015-05-29 15:09:16 UTC
Git done (by process-git-requests).

Comment 9 Fedora Update System 2015-06-01 13:07:18 UTC
python-gear-0.5.7-1.fc22 has been submitted as an update for Fedora 22.
https://admin.fedoraproject.org/updates/python-gear-0.5.7-1.fc22

Comment 10 Fedora Update System 2015-06-01 13:12:53 UTC
python-gear-0.5.7-1.fc21 has been submitted as an update for Fedora 21.
https://admin.fedoraproject.org/updates/python-gear-0.5.7-1.fc21

Comment 11 Fedora Update System 2015-06-01 13:16:42 UTC
python-gear-0.5.7-1.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/python-gear-0.5.7-1.el7

Comment 12 Fedora Update System 2015-06-01 17:05:48 UTC
python-gear-0.5.7-1.el7 has been pushed to the Fedora EPEL 7 testing repository.

Comment 13 Fedora Update System 2015-06-24 16:03:14 UTC
python-gear-0.5.7-1.fc22 has been pushed to the Fedora 22 stable repository.

Comment 14 Fedora Update System 2015-06-25 23:55:45 UTC
python-gear-0.5.7-1.el7 has been pushed to the Fedora EPEL 7 stable repository.


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