Bug 880387 - Review Request: python-pymongo - Python driver for MongoDB
Review Request: python-pymongo - Python driver for MongoDB
Status: CLOSED ERRATA
Product: Fedora
Classification: Fedora
Component: Package Review (Show other bugs)
rawhide
All Linux
medium Severity medium
: ---
: ---
Assigned To: Mario Blättermann
Fedora Extras Quality Assurance
: Reopened
Depends On: 903425 913533 965745
Blocks:
  Show dependency treegraph
 
Reported: 2012-11-26 16:10 EST by Andrew McNabb
Modified: 2013-09-10 13:20 EDT (History)
8 users (show)

See Also:
Fixed In Version: python-pymongo-2.5.2-1.fc19
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-06-29 14:11:04 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
mario.blaettermann: fedora‑review+


Attachments (Terms of Use)

  None (edit)
Description Andrew McNabb 2012-11-26 16:10:22 EST
Spec URL: http://aml.cs.byu.edu/~amcnabb/python-pymongo.spec
SRPM URL: http://aml.cs.byu.edu/~amcnabb/python-pymongo-2.3-1.fc17.src.rpm
Description:

This review request is for renaming the pymongo package to python-pymongo. It also adds initial support for Python 3.

Fedora Account System Username: amcnabb
Comment 1 Andrew McNabb 2012-11-26 16:16:37 EST
I submitted this srpm to koji, and it built without any errors:

http://koji.fedoraproject.org/koji/taskinfo?taskID=4730498
Comment 2 Mario Blättermann 2012-11-27 13:45:11 EST
The source tarball contains a bundled egg-info. Please remove it before building your package (in the %prep section):

rm -rf pymongo.egg-info

See https://fedoraproject.org/wiki/Packaging:Python_Eggs#Upstream_Eggs for more information.
Comment 3 Andrew McNabb 2012-11-27 14:46:21 EST
(In reply to comment #2)
> The source tarball contains a bundled egg-info. Please remove it before
> building your package (in the %prep section):
> 
> rm -rf pymongo.egg-info

Done.

SRPM URL: http://aml.cs.byu.edu/~amcnabb/python-pymongo-2.3-2.fc17.src.rpm
Comment 4 Mario Blättermann 2012-11-27 15:14:27 EST
Scratch build for Rawhide:
http://koji.fedoraproject.org/koji/taskinfo?taskID=4734656

$ rpmlint -i -v *
python3-bson.i686: I: checking
python3-bson.i686: W: spelling-error %description -l en_US traversable -> traversal, traveler
The value of this tag appears to be misspelled. Please double-check.

python3-bson.i686: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python3-bson.x86_64: I: checking
python3-bson.x86_64: W: spelling-error %description -l en_US traversable -> traversal, traveler
The value of this tag appears to be misspelled. Please double-check.

python3-bson.x86_64: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python3-pymongo.i686: I: checking
python3-pymongo.i686: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python3-pymongo.x86_64: I: checking
python3-pymongo.x86_64: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python3-pymongo-gridfs.i686: I: checking
python3-pymongo-gridfs.i686: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python3-pymongo-gridfs.i686: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

python3-pymongo-gridfs.x86_64: I: checking
python3-pymongo-gridfs.x86_64: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python3-pymongo-gridfs.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

python-bson.i686: I: checking
python-bson.i686: W: spelling-error %description -l en_US traversable -> traversal, traveler
The value of this tag appears to be misspelled. Please double-check.

python-bson.i686: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python-bson.x86_64: I: checking
python-bson.x86_64: W: spelling-error %description -l en_US traversable -> traversal, traveler
The value of this tag appears to be misspelled. Please double-check.

python-bson.x86_64: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python-pymongo.src: I: checking
python-pymongo.src: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python-pymongo.src: I: checking-url http://pypi.python.org/packages/source/p/pymongo/pymongo-2.3.tar.gz (timeout 10 seconds)
python-pymongo.i686: I: checking
python-pymongo.i686: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python-pymongo.x86_64: I: checking
python-pymongo.x86_64: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python-pymongo-debuginfo.i686: I: checking
python-pymongo-debuginfo.i686: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python-pymongo-debuginfo.x86_64: I: checking
python-pymongo-debuginfo.x86_64: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python-pymongo-gridfs.i686: I: checking
python-pymongo-gridfs.i686: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python-pymongo-gridfs.i686: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

python-pymongo-gridfs.x86_64: I: checking
python-pymongo-gridfs.x86_64: I: checking-url http://api.mongodb.org/python (timeout 10 seconds)
python-pymongo-gridfs.x86_64: W: no-documentation
The package contains no documentation (README, doc, etc). You have to include
documentation files.

python-pymongo.spec: I: checking-url http://pypi.python.org/packages/source/p/pymongo/pymongo-2.3.tar.gz (timeout 10 seconds)
15 packages and 1 specfiles checked; 0 errors, 8 warnings.

Nothing of interest.

---------------------------------
key:

[+] OK
[.] OK, not applicable
[X] needs work
---------------------------------

[+] MUST: rpmlint must be run on the source rpm and all binary rpms the build produces. The output should be posted in the review.
[+] MUST: The package must be named according to the Package Naming Guidelines.
[+] MUST: The spec file name must match the base package %{name}, in the format %{name}.spec unless your package has an exemption.
[+] MUST: The package must meet the Packaging Guidelines.
[+] MUST: The package must be licensed with a Fedora approved license and meet the Licensing Guidelines.
[+] MUST: The License field in the package spec file must match the actual license.
    ASL 2.0 and MIT
[+] MUST: 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.
[+] MUST: The spec file must be written in American English.
[+] MUST: The spec file for the package MUST be legible.
[+] MUST: The sources used to build the package must match the upstream source, as provided in the spec URL. Reviewers should use sha256sum for this task as it is used by the sources file once imported into git. If no upstream URL can be specified for this package, please see the Source URL Guidelines for how to deal with this.
    $ sha256sum *
    8e43fdd7ea8e2aa965791af1b6e24186248023c6fde70092d9631b1d9150b1dc  pymongo-2.3.tar.gz
    8e43fdd7ea8e2aa965791af1b6e24186248023c6fde70092d9631b1d9150b1dc  pymongo-2.3.tar.gz.orig

[+] MUST: The package MUST successfully compile and build into binary rpms on at least one primary architecture.
[.] MUST: If the package does not successfully compile, build or work on an architecture, then those architectures should be listed in the spec in ExcludeArch. Each architecture listed in ExcludeArch MUST have a bug filed in bugzilla, describing the reason that the package does not compile/build/work on that architecture. The bug number MUST be placed in a comment, next to the corresponding ExcludeArch line.
[+] MUST: 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.
[.] MUST: The spec file MUST handle locales properly. This is done by using the %find_lang macro. Using %{_datadir}/locale/* is strictly forbidden.
[.] MUST: Every binary RPM package (or subpackage) which stores shared library files (not just symlinks) in any of the dynamic linker's default paths, must call ldconfig in %post and %postun.
[+] MUST: Packages must NOT bundle copies of system libraries.
[.] MUST: 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. Without this, use of Prefix: /usr is considered a blocker.
[+] MUST: A package must own all directories that it creates. If it does not create a directory that it uses, then it should require a package which does create that directory.
[+] MUST: A Fedora package must not list a file more than once in the spec file's %files listings. (Notable exception: license texts in specific situations)
[+] MUST: Permissions on files must be set properly. Executables should be set with executable permissions, for example.
[+] MUST: Each package must consistently use macros.
[+] MUST: The package must contain code, or permissable content.
[.] MUST: Large documentation files must go in a -doc subpackage. (The definition of large is left up to the packager's best judgement, but is not restricted to size. Large can refer to either size or quantity).
[+] MUST: If a package includes something as %doc, it must not affect the runtime of the application. To summarize: If it is in %doc, the program must run properly if it is not present.
[.] MUST: Static libraries must be in a -static package.
[.] MUST: Development files must be in a -devel package.
[.] MUST: In the vast majority of cases, devel packages must require the base package using a fully versioned dependency: Requires: %{name}%{?_isa} = %{version}-%{release}
[.] MUST: Packages must NOT contain any .la libtool archives, these must be removed in the spec if they are built.
[.] MUST: 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. If you feel that your packaged GUI application does not need a .desktop file, you must put a comment in the spec file with your explanation.
[+] MUST: Packages must not own files or directories already owned by other packages. The rule of thumb here is that the first package to be installed should own the files or directories that other packages may rely upon. This means, for example, that no package in Fedora should ever share ownership with any of the files or directories owned by the filesystem or man package. If you feel that you have a good reason to own a file or directory that another package owns, then please present that at package review time.
[+] MUST: All filenames in rpm packages must be valid UTF-8.


[.] SHOULD: If the source package does not include license text(s) as a separate file from upstream, the packager SHOULD query upstream to include it.
[.] SHOULD: The description and summary sections in the package spec file should contain translations for supported Non-English languages, if available.
[+] SHOULD: The reviewer should test that the package builds in mock.
    See Koji build above (which uses Mock anyway).
[+] SHOULD: The package should compile and build into binary rpms on all supported architectures.
[.] SHOULD: The reviewer should test that the package functions as described. A package should not segfault instead of running, for example.
[.] SHOULD: If scriptlets are used, those scriptlets must be sane. This is vague, and left up to the reviewers judgement to determine sanity.
[+] SHOULD: Usually, subpackages other than devel should require the base package using a fully versioned dependency.
[.] SHOULD: 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.
[.] SHOULD: 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.
[.] SHOULD: your package should contain man pages for binaries/scripts. If it doesn't, work with upstream to add them where they make sense.

----------------

PACKAGE APPROVED

----------------


Still one issue, though:

Requires:       %{name} = %{version}-%{release}

has to be 

Requires:       %{name}%{?_isa} = %{version}-%{release}

because your package isn't noarch. I trust you that you'll change it before building the packages ;)
Comment 5 Andrew McNabb 2012-11-27 15:50:00 EST
(In reply to comment #4)
> Requires:       %{name} = %{version}-%{release}
> 
> has to be 
> 
> Requires:       %{name}%{?_isa} = %{version}-%{release}
> 
> because your package isn't noarch. I trust you that you'll change it before
> building the packages ;)

Done. Thanks.
Comment 6 Andrew McNabb 2012-11-27 15:53:08 EST
New Package SCM Request
=======================
Package Name: python-pymongo
Short Description: Python driver for MongoDB
Owners: amcnabb silas
Branches: f18
InitialCC:
Comment 7 Jon Ciesla 2012-11-27 15:56:30 EST
Git done (by process-git-requests).
Comment 8 Fedora Update System 2012-11-27 16:27:19 EST
python-pymongo-2.3-3.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/python-pymongo-2.3-3.fc18
Comment 9 Andrew McNabb 2012-11-27 16:30:15 EST
Mario, thanks for the helpful review.
Comment 10 Fedora Update System 2012-11-27 21:07:44 EST
python-pymongo-2.3-3.fc18 has been pushed to the Fedora 18 testing repository.
Comment 11 Fedora Update System 2012-11-27 21:50:01 EST
python-pymongo-2.3-4.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/python-pymongo-2.3-4.fc18
Comment 12 Fedora Update System 2012-12-01 23:23:41 EST
python-pymongo-2.3-4.fc18 has been pushed to the Fedora 18 stable repository.
Comment 13 Michael Schwendt 2013-06-11 09:03:47 EDT
pymongo is still available in the repositories, too.

Please complete the renaming process:
https://fedoraproject.org/wiki/How_to_remove_a_package_at_end_of_life
Comment 14 Michael Schwendt 2013-06-11 09:09:36 EDT
"Obsoletes: pymongo <= 2.1.1-3" in python-pymongo is too low, because the last build is -3%{?dist}. That also needs to be fixed.
Comment 15 Andrew McNabb 2013-06-11 11:11:08 EDT
(In reply to Michael Schwendt from comment #13)
> pymongo is still available in the repositories, too.
> 
> Please complete the renaming process:
> https://fedoraproject.org/wiki/How_to_remove_a_package_at_end_of_life

Can you help do this? The pymongo maintainer hasn't removed the package (I'm pretty sure I made a request at some point), and I don't have permissions to do it.

(In reply to Michael Schwendt from comment #14)
> "Obsoletes: pymongo <= 2.1.1-3" in python-pymongo is too low, because the
> last build is -3%{?dist}. That also needs to be fixed.

I'll bump the version number again, but until the pymongo package is gone, this will be a recurring problem.
Comment 16 Fedora Update System 2013-06-11 11:30:14 EDT
python-pymongo-2.5-5.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/python-pymongo-2.5-5.fc19
Comment 17 Michael Schwendt 2013-06-11 16:14:37 EDT
* dead.package added in git master:
  http://pkgs.fedoraproject.org/cgit/pymongo.git/diff/

* koji block request:
  https://fedorahosted.org/rel-eng/ticket/5631

What I cannot help with is retiring the package in pkgdb. That step is still missing, too: https://admin.fedoraproject.org/pkgdb/acls/name/pymongo

Packager 'silas' could do that.
Comment 18 Andrew McNabb 2013-06-11 16:24:24 EDT
(In reply to Michael Schwendt from comment #17)
> * dead.package added in git master:
>   http://pkgs.fedoraproject.org/cgit/pymongo.git/diff/
> 
> * koji block request:
>   https://fedorahosted.org/rel-eng/ticket/5631

Thanks for taking care of this.

> What I cannot help with is retiring the package in pkgdb. That step is still
> missing, too: https://admin.fedoraproject.org/pkgdb/acls/name/pymongo
> 
> Packager 'silas' could do that.

I'm not sure whether silas is responsive. Is there someone with rights to do this for all packages who might be able to step in and help?
Comment 19 Toshio Ernie Kuratomi 2013-06-11 18:17:26 EDT
Which branches is the renaming/retiring of pymongo taking place?  F18, F19, and rawhide only?
Comment 20 Andrew McNabb 2013-06-11 21:20:07 EDT
(In reply to Toshio Ernie Kuratomi from comment #19)
> Which branches is the renaming/retiring of pymongo taking place?  F18, F19,
> and rawhide only?

Yes, F18, F19, and rawhide.
Comment 21 Toshio Ernie Kuratomi 2013-06-12 00:57:21 EDT
pymongo now marked as retired on those three branches in pkgdb.  Since the maintainer is nonresponsive, you might want to consider whether you want to take over the F17, EL5, and EL6 branches of that package as well.
Comment 22 Fedora Update System 2013-06-12 15:36:52 EDT
python-pymongo-2.5.2-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/python-pymongo-2.5.2-1.fc19
Comment 23 Michael Schwendt 2013-06-13 03:28:24 EDT
Obsoletes for pymongo-gridfs also needs to be increased.
Comment 24 Andrew McNabb 2013-06-13 12:46:52 EDT
(In reply to Michael Schwendt from comment #23)
> Obsoletes for pymongo-gridfs also needs to be increased.

Ugh. :(  Thanks.  This is building now.
Comment 25 Fedora Update System 2013-06-13 12:56:06 EDT
python-pymongo-2.5.2-2.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/python-pymongo-2.5.2-2.fc19
Comment 26 Fedora Update System 2013-06-13 14:08:26 EDT
Package python-pymongo-2.5.2-1.fc19:
* should fix your issue,
* was pushed to the Fedora 19 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing python-pymongo-2.5.2-1.fc19'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-10780/python-pymongo-2.5.2-1.fc19
then log in and leave karma (feedback).
Comment 27 Fedora Update System 2013-06-29 14:11:04 EDT
python-pymongo-2.5.2-1.fc19 has been pushed to the Fedora 19 stable repository.  If problems still persist, please make note of it in this bug report.
Comment 28 Pádraig Brady 2013-08-27 05:49:04 EDT
Package Change Request
======================
Package Name: python-pymongo
New Branches: el5 el6
Owners: pbrady amcnabb silas jhn
Comment 29 Jon Ciesla 2013-08-27 08:26:05 EDT
jhn not added, not a valid FAS account, can be added later in pkgdb.
Comment 30 Andrew McNabb 2013-08-27 11:00:35 EDT
(In reply to Pádraig Brady from comment #28)
> Package Change Request
> ======================
> Package Name: python-pymongo
> New Branches: el5 el6
> Owners: pbrady amcnabb silas jhn

It would be nice to have a little heads-up.

Who are pbrady and jhn?
Comment 31 Pádraig Brady 2013-08-27 14:34:39 EDT
Hi Andrew, I work on the OpenStack team in Red Hat
and was going to look at updating python-pymongo in epel.
Since I can do this anyway once the branch is created
as I'm a Fedora proven packager, I'll leave myself off the owners list.
Comment 32 Pádraig Brady 2013-08-27 14:35:22 EDT
Package Change Request
======================
Package Name: python-pymongo
New Branches: el5 el6
Owners: amcnabb silas
Comment 33 Jon Ciesla 2013-08-27 14:39:58 EDT
EL branches already exist.
Comment 34 Pádraig Brady 2013-09-10 13:20:03 EDT
EL6 update submitted:
https://admin.fedoraproject.org/updates/python-pymongo-2.5.2-3.el6

Also the above package is in testing at the RDO repos at http://openstack.redhat.com/

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