Bug 691114 (python-msgpack) - Review Request: python-msgpack - A MessagePack (de)serializer
Summary: Review Request: python-msgpack - A MessagePack (de)serializer
Keywords:
Status: CLOSED ERRATA
Alias: python-msgpack
Product: Fedora
Classification: Fedora
Component: Package Review
Version: rawhide
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Matthias Runge
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: python-kombu
TreeView+ depends on / blocked
 
Reported: 2011-03-26 20:16 UTC by Fabian Affolter
Modified: 2013-05-31 14:45 UTC (History)
8 users (show)

Fixed In Version: python-msgpack-0.1.9-2.fc14
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2011-07-12 04:56:31 UTC
Type: ---
Embargoed:
mrunge: fedora-review+
gwync: fedora-cvs+


Attachments (Terms of Use)

Description Fabian Affolter 2011-03-26 20:16:25 UTC
Spec URL: http://fab.fedorapeople.org/packages/SRPMS/python-msgpack.spec
SRPM URL: http://fab.fedorapeople.org/packages/SRPMS/python-msgpack-0.1.9-1.fc14.src.rpm

Project URL: http://pypi.python.org/pypi/msgpack-python/

Description:
MessagePack is a binary-based efficient data interchange format that is
focused on high performance. It is like JSON, but very fast and small.
This is a Python (de)serializer for MessagePack.

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

rpmlint output:
[fab@laptop023 SRPMS]$ rpmlint python-msgpack-0.1.9-1.fc14.src.rpm 
python-msgpack.src: W: spelling-error Summary(en_US) serializer -> serialize, serializes, serialized
1 packages and 0 specfiles checked; 0 errors, 1 warnings.

[fab@laptop023 x86_64]$ rpmlint python-msgpack*
python-msgpack.x86_64: W: spelling-error Summary(en_US) serializer -> serialize, serializes, serialized
python-msgpack.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/msgpack/_msgpack.so _msgpack.so()(64bit)
2 packages and 0 specfiles checked; 0 errors, 2 warnings.

Comment 1 David Robinson 2011-04-13 11:28:06 UTC
Hi Fabian,

Just doing an informal review to help my case of being sponsored :-)

The description of the source RPM is wrong. It says:

    Celery is a task queue/job queue based on distributed message
    passing. It is focused on real-time operation, but supports
    scheduling as well.

    The execution units, called tasks, are executed concurrently on a
    single or more worker servers. Tasks can execute asynchronously
    (in the background) or synchronously (wait until ready).

    Celery is already used in production to process millions of tasks
    a day.

But the description in the spec linked to above is correct.

It'd be good if the nosetests provided were run in %check. I had a quick attempt at making them run but didn't get it working.

The MUST items appear OK to me:

OK: rpmlint must be run on the source rpm and all binary rpms the build produces. The output should be posted in the review.[1]

[zxvdr@laptop SRPMS]$ rpmlint python-msgpack-0.1.9-1.fc14.src.rpm 
python-msgpack.src: W: spelling-error Summary(en_US) serializer -> serialize, serializes, serialized
1 packages and 0 specfiles checked; 0 errors, 1 warnings.

[zxvdr@laptop x86_64]$ rpmlint python-msgpack-0.1.9-1.fc14.x86_64.rpm 
python-msgpack.x86_64: W: spelling-error Summary(en_US) serializer -> serialize, serializes, serialized
python-msgpack.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/msgpack/_msgpack.so _msgpack.so()(64bit)
1 packages and 0 specfiles checked; 0 errors, 2 warnings.

OK: The package must be named according to the Package Naming Guidelines .
OK: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption. [2] .
OK: The package must meet the Packaging Guidelines .
OK: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines .
OK: The License field in the package spec file must match the actual license. [3]
OK: If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package must be included in %doc.[4]
OK: The spec file must be written in American English. [5]
OK: The spec file for the package MUST be legible. [6]
OK: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use md5sum for this task. If no upstream URL can be specified for this package, please see the Source URL Guidelines for how to deal with this.

[zxvdr@laptop SOURCES]$ wget http://pypi.python.org/packages/source/m/msgpack-python/msgpack-python-0.1.9.tar.gz -O - | md5sum
--2011-04-13 20:24:55--  http://pypi.python.org/packages/source/m/msgpack-python/msgpack-python-0.1.9.tar.gz
Resolving pypi.python.org... 82.94.164.168, 2001:888:2000:d::a8
Connecting to pypi.python.org|82.94.164.168|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 42638 (42K) [application/x-gzip]
Saving to: “STDOUT”

100%[=========================================================>] 42,638      37.1K/s   in 1.1s    

2011-04-13 20:24:57 (37.1 KB/s) - written to stdout [42638/42638]

fea360812fd4bd485c07b03239f1ddd0  -
[zxvdr@laptop SOURCES]$ md5sum msgpack-python-0.1.9.tar.gz 
fea360812fd4bd485c07b03239f1ddd0  msgpack-python-0.1.9.tar.gz

OK: The package MUST successfully compile and build into binary rpms on at least one primary architecture. [7]
NA: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch.
??: All build dependencies must be listed in BuildRequires, except for any that are listed in the exceptions section of the Packaging Guidelines ; inclusion of those as BuildRequires is optional. Apply common sense.

The README states that Cython is required to build msgpack, but the try/except ImportError in setup.py suggests otherwise. I successfully built the package both with and without Cython...

NA: The spec file MUST handle locales properly.
OK: Packages must NOT bundle copies of system libraries.[11]
NA: If the package is designed to be relocatable, the packager must state this fact in the request for review, along with the rationalization for relocation of that specific package.
OK: A package must own all directories that it creates.
OK: A Fedora package must not list a file more than once in the spec file's %files listings.
OK: Each package must consistently use macros. [16]
OK: The package must contain code, or permissable content. [17]
NA: Large documentation files must go in a -doc subpackage.
OK: If a package includes something as %doc, it must not affect the runtime of the application.
NA: Header files must be in a -devel package. [19]
NA: Static libraries must be in a -static package. [20]
NA: If a package contains library files with a suffix (e.g. libfoo.so.1.1), then library files that end in .so (without suffix) must go in a -devel package. [19]
NA: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name}%{?_isa} = %{version}-%{release} [21]
OK: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.[20]
NA: Packages containing GUI applications must include a %{name}.desktop file, and that file must be properly installed with desktop-file-install in the %install section.
OK: Packages must not own files or directories already owned by other packages.
OK: All filenames in rpm packages must be valid UTF-8.

The SHOULD's are fine too:

OK: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it. [25]
NA: The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available. [26]
OK: The reviewer should test that the package builds in mock. [27]
??: The package should compile and build into binary rpms on all supported architectures. [28]
OK: The reviewer should test that the package functions as described. A package should not segfault instead of running, for example.

[zxvdr@laptop tmp]$ cat msgpack_test.py 
#!/usr/bin/env python

import msgpack
serialized = msgpack.packb([1,2,3])
print msgpack.unpackb(serialized)

[zxvdr@laptop tmp]$ python msgpack_test.py 
(1, 2, 3)

NA: If scriptlets are used, those scriptlets must be sane. This is vague, and left up to the reviewers judgement to determine sanity. [29]
NA: Usually, subpackages other than devel should require the base package using a fully versioned dependency. [21]
NA: The placement of pkgconfig(.pc) files depends on their usecase, and this is usually for development purposes, so should be placed in a -devel pkg. A reasonable exception is that the main pkg itself is a devel tool not installed in a user runtime, e.g. gcc or gdb. [30]
NA: If the package has file dependencies outside of /etc, /bin, /sbin, /usr/bin, or /usr/sbin consider requiring the package which provides the file instead of the file itself. [31]
OK: your package should contain man pages for binaries/scripts. If it doesn't, work with upstream to add them where they make sense.[32]

[zxvdr@laptop tmp]$ pydoc msgpack

Comment 2 David Robinson 2011-04-13 11:35:21 UTC
One suggestion, adding the lines below will fix up the private-shared-object-provides warning from rpmlink.

# we don't want to provide private python extension libs
%{?filter_setup:
%filter_provides_in %{python_sitearch}/.*\.so$
%filter_setup
}

http://fedoraproject.org/wiki/Packaging:AutoProvidesAndRequiresFiltering

Comment 3 Martin Gieseking 2011-04-13 19:12:26 UTC
David, good job. Your informal review looks fine. When reviewing Python packages, please also check the additional items listed here:
http://fedoraproject.org/wiki/Packaging:Python#How_to_package

A few additional comments:

(In reply to comment #1)
> It'd be good if the nosetests provided were run in %check. I had a quick
> attempt at making them run but didn't get it working.

Right. Running the tests would be nice if they are up-to-date with the module sources. You can execute them with 
   PYTHONPATH="%{buildroot}%{python_sitearch}" nosetests -w test
in a %check section.
Unfortunately, they currently crash with a segfault. Fabian, please ask upstream whether this is a bug in the Python module or a test-only issue.

The permissions of the .so file should be set to 755 (see rpmlint output):

$ rpmlint /var/lib/mock/fedora-14-x86_64/result/*.rpm
python-msgpack.src: W: spelling-error Summary(en_US) serializer -> serialize, serializes, serialized
python-msgpack.x86_64: W: spelling-error Summary(en_US) serializer -> serialize, serializes, serialized
python-msgpack.x86_64: W: private-shared-object-provides /usr/lib64/python2.7/site-packages/msgpack/_msgpack.so _msgpack.so()(64bit)
python-msgpack.x86_64: E: non-standard-executable-perm /usr/lib64/python2.7/site-packages/msgpack/_msgpack.so 0775L
3 packages and 0 specfiles checked; 1 errors, 3 warnings.


> The README states that Cython is required to build msgpack, but the try/except
> ImportError in setup.py suggests otherwise. I successfully built the package
> both with and without Cython...

The tarball contains the cython-created .c file. So there's no need recreate it.

Comment 4 Matthias Runge 2011-04-29 10:14:49 UTC
Fabian, 

are you going to provide a new (changed) SRPM?

Comment 5 Fabian Affolter 2011-05-16 11:36:49 UTC
(In reply to comment #4)
> are you going to provide a new (changed) SRPM?

Yes, I am.

Comment 6 Fabian Affolter 2011-06-24 20:51:55 UTC
Thanks for your comments.

* Fri Jun 24 2011 Fabian Affolter <fabian> - 0.1.9-2
- Tests are failing, they are not active at the moment
- Filtering added

Upstream was informed about the segfault.

Updated files:

Spec URL: http://fab.fedorapeople.org/packages/SRPMS/python-msgpack.spec
SRPM URL: http://fab.fedorapeople.org/packages/SRPMS/python-msgpack-0.1.9-2.fc15.src.rpm

rpmlint output:
[fab@laptop021 SRPMS]$ rpmlint python-msgpack-0.1.9-2.fc15.src.rpm 
python-msgpack.src: W: spelling-error Summary(en_US) de -> DE, ed, d
python-msgpack.src: W: spelling-error Summary(en_US) serializer -> serialize, serializes, serialized
python-msgpack.src: W: spelling-error %description -l en_US de -> DE, ed, d
python-msgpack.src: W: spelling-error %description -l en_US serializer -> serialize, serializes, serialized
python-msgpack.src:53: W: macro-in-comment %check
python-msgpack.src:54: W: macro-in-comment %{buildroot}
python-msgpack.src:54: W: macro-in-comment %{python_sitearch}
1 packages and 0 specfiles checked; 0 errors, 7 warnings.

[fab@laptop021 x86_64]$ rpmlint python-msgpack*
python-msgpack.x86_64: W: spelling-error Summary(en_US) de -> DE, ed, d
python-msgpack.x86_64: W: spelling-error Summary(en_US) serializer -> serialize, serializes, serialized
python-msgpack.x86_64: W: spelling-error %description -l en_US de -> DE, ed, d
python-msgpack.x86_64: W: spelling-error %description -l en_US serializer -> serialize, serializes, serialized
2 packages and 0 specfiles checked; 0 errors, 4 warnings.

Comment 7 Matthias Runge 2011-06-26 19:58:46 UTC
Package Review
==============

Key:
- = N/A
x = Check
! = Problem
? = Not evaluated

=== REQUIRED ITEMS ===
[x]  Package is named according to the Package Naming Guidelines.
[x]  Spec file name must match the base package %{name}, in the format %{name}.spec.
[x]  Package meets the Packaging Guidelines.
[x]  Package successfully compiles and builds into binary rpms on at least one supported architecture.
Tested on: x86-64
[x]  Rpmlint output:
[mrunge@herodot SPECS]$ rpmlint ./python-msgpack.spec ../RPMS/x86_64/python-msgpack-* ../SRPMS/python-msgpack-0.1.9-2.fc15.src.rpm 
./python-msgpack.spec:53: W: macro-in-comment %check
./python-msgpack.spec:54: W: macro-in-comment %{buildroot}
./python-msgpack.spec:54: W: macro-in-comment %{python_sitearch}
python-msgpack.x86_64: W: spelling-error Summary(en_US) de -> DE, ed, d
python-msgpack.x86_64: W: spelling-error Summary(en_US) serializer -> serialize, serializes, serialized
python-msgpack.x86_64: W: spelling-error %description -l en_US de -> DE, ed, d
python-msgpack.x86_64: W: spelling-error %description -l en_US serializer -> serialize, serializes, serialized
python-msgpack.src: W: spelling-error Summary(en_US) de -> DE, ed, d
python-msgpack.src: W: spelling-error Summary(en_US) serializer -> serialize, serializes, serialized
python-msgpack.src: W: spelling-error %description -l en_US de -> DE, ed, d
python-msgpack.src: W: spelling-error %description -l en_US serializer -> serialize, serializes, serialized
python-msgpack.src:53: W: macro-in-comment %check
python-msgpack.src:54: W: macro-in-comment %{buildroot}
python-msgpack.src:54: W: macro-in-comment %{python_sitearch}
3 packages and 1 specfiles checked; 0 errors, 14 warnings.
 
[x]  Buildroot is correct (%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n))
[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.
License type: ASL 2
[x]  If (and only if) the source package includes the text of the license(s) in its own file, then that file, containing the text of the license(s) for the package is included in %doc.
[x]  Spec file is legible and written in American English.
[x]  Sources used to build the package matches the upstream source, as provided in the spec URL.
MD5SUM this package    : fea360812fd4bd485c07b03239f1ddd0
MD5SUM upstream package: fea360812fd4bd485c07b03239f1ddd0
[x]  Package is not known to require ExcludeArch, OR:
Arches excluded:
Why:
[x]  All build dependencies are listed in BuildRequires, except for any that are listed in the exceptions section of Packaging Guidelines.
[-]  The spec file handles locales properly.
[-]  ldconfig called in %post and %postun if required.
[-]  Package must own all directories that it creates.
[-]  Package requires other packages for directories it uses.
[x]  Package does not contain duplicates in %files.
[x]  Permissions on files are set properly.
[x]  Package has a %clean section, which contains rm -rf %{buildroot} (or $RPM_BUILD_ROOT).
[x]  Package consistently uses macros.
[x]  Package contains code, or permissable content.
[-]  Large documentation files are in a -doc subpackage, if required.
[x]  Package uses nothing in %doc for runtime.
[x]  Header files in -devel subpackage, if present.
[x]  Static libraries in -devel subpackage, if present.
[-]  Package requires pkgconfig, if .pc files are present.
[-]  Development .so files in -devel subpackage, if present.
[-]  Fully versioned dependency in subpackages, if present.
[x]  Package does not contain any libtool archives (.la).
[-]  Package contains a properly installed %{name}.desktop file if it is a GUI application.
[x]  Package does not own files or directories owned by other packages.

=== SUGGESTED ITEMS ===
[x]  Latest version is packaged.
[x]  Package does not include license text files separate from upstream.
[-]  Description and summary sections in the package spec file contains translations for supported Non-English languages, if available.
[x]  Reviewer should test that the package builds in mock.
Tested on: fedora-14-x86_64
[x]  Package should compile and build into binary rpms on all supported architectures.
Tested on: x86-64
[x]  Package functions as described.
[x]  Scriptlets must be sane, if used.
[-]  The placement of pkgconfig(.pc) files are correct.
[x]  File based requires are sane.


================
*** APPROVED ***
================

Comment 8 Fabian Affolter 2011-06-26 21:18:43 UTC
Thanks Matthias for the review.

Comment 9 Fabian Affolter 2011-06-26 21:19:39 UTC
New Package SCM Request
=======================
Package Name: python-msgpack
Short Description: A MessagePack (de)serializer
Owners: fab
Branches: F14 F15
InitialCC:

Comment 10 Gwyn Ciesla 2011-06-26 23:12:41 UTC
Git done (by process-git-requests).

Comment 11 Fedora Update System 2011-06-30 05:31:57 UTC
python-msgpack-0.1.9-2.fc15 has been submitted as an update for Fedora 15.
https://admin.fedoraproject.org/updates/python-msgpack-0.1.9-2.fc15

Comment 12 Fedora Update System 2011-06-30 05:41:28 UTC
python-msgpack-0.1.9-2.fc14 has been submitted as an update for Fedora 14.
https://admin.fedoraproject.org/updates/python-msgpack-0.1.9-2.fc14

Comment 13 Fedora Update System 2011-06-30 18:56:56 UTC
python-msgpack-0.1.9-2.fc14 has been pushed to the Fedora 14 testing repository.

Comment 14 Fedora Update System 2011-07-12 04:56:23 UTC
python-msgpack-0.1.9-2.fc15 has been pushed to the Fedora 15 stable repository.

Comment 15 Fedora Update System 2011-07-12 05:05:31 UTC
python-msgpack-0.1.9-2.fc14 has been pushed to the Fedora 14 stable repository.

Comment 16 Rahul Sundaram 2011-07-12 06:39:50 UTC
Package Change Request
======================
Package Name: python-msgpack
New Branches: el6
Owners: sundaram pjp
InitialCC:

Comment 17 Gwyn Ciesla 2011-07-12 12:40:37 UTC
Git done (by process-git-requests).

Comment 18 Fabian Affolter 2011-07-18 19:58:00 UTC
Package Change Request
======================
Package Name: python-msgpack
New Branches: el5
Owners: fab
InitialCC:

Comment 19 Gwyn Ciesla 2011-07-18 20:06:43 UTC
Git done (by process-git-requests).

Comment 20 Pádraig Brady 2013-05-31 14:32:24 UTC
Package Change Request
======================
Package Name: python-msgpack
New Branches: el6
Owners: fab pbrady

Required for openstack-ceilometer havana release

Comment 21 Gwyn Ciesla 2013-05-31 14:45:47 UTC
Git done (by process-git-requests).


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