Bug 901365

Summary: Review Request: python-mongoengine - A Python Document-Object Mapper for working with MongoDB
Product: [Fedora] Fedora Reporter: Yohan Graterol <yohangraterol92>
Component: Package ReviewAssignee: Eduardo Echeverria <echevemaster>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: rawhideCC: echevemaster, notting
Target Milestone: ---Keywords: Reopened
Target Release: ---Flags: echevemaster: fedora-review+
gwync: fedora-cvs+
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: python-mongoengine-0.8.4-1.fc18 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-02-16 14:22:26 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Yohan Graterol 2013-01-18 04:11:36 UTC
Spec URL: http://www.yograterol.me/fedora/python-mongo/python-mongoengine.spec
SRPM URL: http://www.yograterol.me/fedora/python-mongo/python-mongoengine-0.7.9-1.fc18.src.rpm

Description:

MongoEngine is a Document-Object Mapper (think ORM, but for document databases) for working with MongoDB from Python. It uses a simple declarative API, similar to the Django ORM. 

Fedora Account System Username: yograterol

Comment 1 Eduardo Echeverria 2013-01-18 06:18:30 UTC
Hi Yohan:
I'm not sponsor, but I can give you some recommendations and/or advices.
First,  in each package that you present in BZ paste the rpmlint output, this makes more comfortable reviewing your potential sponsor (at this time) and the future reviewers , once you become a packager.[1]

Take a look at this link, will help you understand the review process. [2]

Find a willing sponsor, following the recommendations of this link [3]

Initial Comments: 

- Check properly your Requires and BuildRequires.
- The package contain tests, must run (check if it can be executed)
- The package contains documentation to should be built (Take a look) 

this line in the %changelog:
* http://readthedocs.org/docs/mongoengine-odm/en/latest/changelog.html
the changelog refers at your package, no to changelog of software itself [4]

[1] http://fedoraproject.org/wiki/Packaging:Guidelines#Use_rpmlint
[2] https://fedoraproject.org/wiki/Package_Review_Process
[3] https://fedoraproject.org/wiki/How_to_get_sponsored_into_the_packager_group
[4] https://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs

Kind Regards 
- Eduardo.

Comment 2 Yohan Graterol 2013-01-18 15:33:23 UTC
Hello Eduardo, thanks you for your answer.

I understand about paste rpmlint, I was not sure if do paste or not the rpmlint output.

Good!, I'm new in the community and I must understand the dynamics within the review process.

Following your recommendations, I changed the file python-mongoengine.spec, deleting the line: * http://readthedocs.org/docs/mongoengine-odm/en/latest/changelog.html in %changelog.

I re upload the file .spec and src.rpm.

Spec URL: http://www.yograterol.me/fedora/python-mongo/python-mongoengine.spec
SRPM URL: http://www.yograterol.me/fedora/python-mongo/python-mongoengine-0.7.9-1.fc18.src.rpm

rpmlint tests:

http://fpaste.org/fqJM/

python setup.py test

http://fpaste.org/wPMN/

Comment 3 Eduardo Echeverria 2013-01-27 05:30:09 UTC
Hi Yohan, the installation of python-mongoengine fails, Why?

Your "Requires" apparently are incorrect

Note that :
Requires: pymongo => 2.11
not currently available in fedora. Let's review

if you run the command 
yum --noplugins  provides pymongo
We have the output 

pymongo-2.1.1-2.fc18.x86_64 : Python driver for MongoDB
Repo        : fedora
 


python-pymongo-2.3-5.fc18.x86_64 : Python driver for MongoDB
Repo        : fedora
Matched from:
Provides    : pymongo = 2.3-5.fc18



python-pymongo-2.3-5.fc18.x86_64 : Python driver for MongoDB
Repo        : @fedora
Matched from:
Provides    : pymongo = 2.3-5.fc18

The version available is 2.1.1, and since in its spec is greater than 2.11 (What makes me think this is a typo), the correct BR should be 
python-pymongo

You should also take a look at this bug [1]

- Become familiar with the code of your package, check import statements,
this will help you know what are the dependencies for the package

- It's good idea make a scratch build on koji before submitting any package to bugzilla and put the link in the review, this makes it easier to review for a willing sponsor [2]

- Btw, don't install the documentation available in your package directly, should generate. use python-sphinx as BR for it
 

- Although you present the test as a link in the review, I see no section %check in the spec, please run the available tests

- Please bump the release number every time you make a change in the spec [3]

[1] bug 880372
[2] https://fedoraproject.org/wiki/Using_the_Koji_build_system#Scratch_Builds
[3] https://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs

Kind Regards

Comment 4 Yohan Graterol 2013-01-27 17:53:09 UTC
Hello Eduardo,

I made the corresponding changes after both investigate and follow your recommendations.

BUT,  in the process of build the file .rpm, did not complete and showed errors.

These are the errors:

======================================================================
ERROR: test_order_by_in_django_template (tests.test_django.QuerySetTest)
Ensure that QuerySets are properly ordered in Django template.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/makerpm/rpmbuild/BUILD/mongoengine-0.7.9/tests/test_django.py", line 32, in setUp
    connect(db='mongoenginetest')
  File "mongoengine/connection.py", line 162, in connect
    return get_connection(alias)
  File "mongoengine/connection.py", line 126, in get_connection
    raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
ConnectionError: Cannot connect to database default :
could not connect to localhost:27017: [Errno 111] Connection refused

======================================================================
ERROR: test_pagination (tests.test_django.QuerySetTest)
Ensure that Pagination works as expected
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/makerpm/rpmbuild/BUILD/mongoengine-0.7.9/tests/test_django.py", line 32, in setUp
    connect(db='mongoenginetest')
  File "mongoengine/connection.py", line 162, in connect
    return get_connection(alias)
  File "mongoengine/connection.py", line 126, in get_connection
    raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
ConnectionError: Cannot connect to database default :
could not connect to localhost:27017: [Errno 111] Connection refused

======================================================================
ERROR: test_q_object_filter_in_template (tests.test_django.QuerySetTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/makerpm/rpmbuild/BUILD/mongoengine-0.7.9/tests/test_django.py", line 32, in setUp
    connect(db='mongoenginetest')
  File "mongoengine/connection.py", line 162, in connect
    return get_connection(alias)
  File "mongoengine/connection.py", line 126, in get_connection
    raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
ConnectionError: Cannot connect to database default :
could not connect to localhost:27017: [Errno 111] Connection refused

======================================================================
ERROR: test_model_signals (tests.test_signals.SignalTests)
Model saves should throw some signals.
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/makerpm/rpmbuild/BUILD/mongoengine-0.7.9/tests/test_signals.py", line 23, in setUp
    connect(db='mongoenginetest')
  File "mongoengine/connection.py", line 162, in connect
    return get_connection(alias)
  File "mongoengine/connection.py", line 126, in get_connection
    raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
ConnectionError: Cannot connect to database default :
could not connect to localhost:27017: [Errno 111] Connection refused

----------------------------------------------------------------------
Ran 57 tests in 0.045s

FAILED (errors=56)
error: Bad exit status from /var/tmp/rpm-tmp.MxMS7j (%check)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.MxMS7j (%check)

What's your opinion Eduardo about it?

Comment 5 Eduardo Echeverria 2013-01-28 00:20:15 UTC
Hi Yohan 
simply,  mongoengine's tests need a running local instance of MongoDB :)

Comment 6 Yohan Graterol 2013-01-28 04:33:55 UTC
Hi Eduardo,

I could build the package rpm ;) 

Here is the files .spec and .src.rpm

http://www.yograterol.me/fedora/python-mongo/python-mongoengine.spec

http://www.yograterol.me/fedora/python-mongo/python-mongoengine-0.7.9-3.fc18.src.rpm

Comment 7 Eduardo Echeverria 2013-01-29 01:25:01 UTC
For the readers: 
I'll do the formal review, and I'll take care of sponsoring Yohan

Yohan, nice job ;)  
the package build is good, but some missing, "Requires", although they are also part of your BuildRequires, could identify what?

Comment 8 Yohan Graterol 2013-01-29 03:14:26 UTC
Hi Eduardo, thanks u for be my sponsor :) 

I reviewed the spec and I did changes with the requires... I hope this be fine.

http://www.yograterol.me/fedora/python-mongo/python-mongoengine.spec

http://www.yograterol.me/fedora/python-mongo/python-mongoengine-0.7.9-4.fc18.src.rpm

Comment 9 Eduardo Echeverria 2013-01-29 05:34:28 UTC
I'll do the formal review.

Package Review
==============

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



===== 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]: Package successfully compiles and builds into binary rpms on at least one
     supported primary architecture.
[x]: %build honors applicable compiler flags or justifies otherwise.
[x]: All build dependencies are listed in BuildRequires, except for any that
     are listed in the exceptions section of Packaging Guidelines.
[x]: Package contains no bundled libraries.
[x]: Changelog in prescribed format.
[x]: Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[x]: Sources contain only permissible code or content.
[x]: Each %files section contains %defattr if rpm < 4.4
[x]: Macros in Summary, %description expandable at SRPM build time.
[-]: Package contains desktop file if it is a GUI application.
[-]: Development files must be in a -devel package
[x]: Package requires other packages for directories it uses.
[x]: Package uses nothing in %doc for runtime.
[x]: Package is not known to require ExcludeArch.
[x]: Package does not contain duplicates in %files.
[x]: Permissions on files are set properly.
[x]: Package complies to the Packaging Guidelines
[x]: Spec file lacks Packager, Vendor, PreReq tags.
[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]: License field in the package spec file matches the actual license.
     Note: Checking patched sources after %prep for licenses. Licenses found:
     "Unknown or generated". 1 files have unknown license. Detailed output of
     licensecheck in /home/makerpm/mengine28/901365-python-
     mongoengine/licensecheck.txt
I checked manually on LICENSE file, MIT OK
[x]: Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: Package is named using only allowed ASCII characters.
[x]: Package is named according to the Package Naming Guidelines.
[x]: Package does not generate any conflict.
     Note: Package contains no Conflicts: tag(s)
[x]: Package do not use a name that already exist
[x]: Package obeys FHS, except libexecdir and /usr/target.
[-]: If the package is a rename of another package, proper Obsoletes and
     Provides are present.
[x]: Package must own all directories that it creates.
[x]: Package does not own files or directories owned by other packages.
[x]: Package installs properly.
[x]: Package is not relocatable.
[x]: Requires correct, justified where necessary.
[x]: CheckResultdir
[x]: Rpmlint is run on all rpms the build produces.
     Note: No rpmlint messages.
[x]: Sources used to build the package match the upstream source, as provided
     in the spec URL.
[x]: Spec file is legible and written in American English.
[x]: Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: Package contains systemd file(s) if in need.
[x]: File names are valid UTF-8.
[-]: Large documentation must go in a -doc subpackage.
     Note: Documentation size is 768000 bytes in 53 files.
[x]: Packages must not store files under /srv, /opt or /usr/local

Python:
[x]: Package contains BR: python2-devel or python3-devel
[x]: Binary eggs must be removed in %prep
     Note: Cannot find sources under BUILD (using prebuilt sources?)
[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.
[x]: Package meets the Packaging Guidelines::Python

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

Generic:
[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]: 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]: Dist tag is present.
[x]: No file requires outside of /etc, /bin, /sbin, /usr/bin, /usr/sbin.
[x]: Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[?]: Package functions as described.
[x]: Latest version is packaged.
[x]: Package does not include license text files separate from upstream.
[x]: The placement of pkgconfig(.pc) files are correct.
[x]: SourceX tarball generation or download is documented.
[!]: SourceX / PatchY prefixed with %{name}.
     Note: Source0 (mongoengine-0.7.9.tar.gz)
[x]: SourceX is a working URL.
[-]: 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.
[x]: %check is present and all tests pass.
[x]: Packages should try to preserve timestamps of original installed files.
[x]: Spec use %global instead of %define.

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

Generic:
[x]: Rpmlint is run on all installed packages.
     Note: No rpmlint messages.
[x]: Spec file according to URL is the same as in SRPM.
[x]: Large data in /usr/share should live in a noarch subpackage if package is
     arched.


Rpmlint
-------
Checking: python-mongoengine-0.7.9-4.fc19.src.rpm
          python-mongoengine-0.7.9-4.fc19.noarch.rpm
2 packages and 0 specfiles checked; 0 errors, 0 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint python-mongoengine
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
# echo 'rpmlint-done:'



Requires
--------
python-mongoengine-0.7.9-4.fc19.noarch.rpm (rpmlib, GLIBC filtered):
    
    python(abi) = 2.7
    python-blinker
    python-imaging
    python-pymongo
    python-pymongo-gridfs



Provides
--------
python-mongoengine-0.7.9-4.fc19.noarch.rpm:
    
    python-mongoengine = 0.7.9-4.fc19



MD5-sum check
-------------
http://pypi.python.org/packages/source/m/mongoengine/mongoengine-0.7.9.tar.gz :
  CHECKSUM(SHA256) this package     : 729e6dd366b049a0dcd1694a36f1a8166d4643dd2074ff6c9c085aa349164673
  CHECKSUM(SHA256) upstream package : 729e6dd366b049a0dcd1694a36f1a8166d4643dd2074ff6c9c085aa349164673

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

PACKAGE APPROVED

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

Welcome to the package maintainers group.

Yohan , you can now proceed to request a repository:
https://fedoraproject.org/wiki/Package_SCM_admin_requests

Comment 10 Yohan Graterol 2013-01-30 02:31:44 UTC
thanks for the review

New Package SCM Request
=======================
Package Name: python-mongoengine
Short Description: A Python Document-Object Mapper for working with MongoDB
Owners: yograterol echevemaster
Branches: f17 f18
InitialCC:

Comment 11 Gwyn Ciesla 2013-01-30 11:39:31 UTC
Git done (by process-git-requests).

Comment 12 Fedora Update System 2013-02-01 00:40:28 UTC
python-mongoengine-0.7.9-4.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/python-mongoengine-0.7.9-4.fc18

Comment 13 Fedora Update System 2013-02-01 03:46:21 UTC
python-mongoengine-0.7.9-4.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/python-mongoengine-0.7.9-4.fc17

Comment 14 Fedora Update System 2013-02-02 04:22:01 UTC
python-mongoengine-0.7.9-4.fc18 has been pushed to the Fedora 18 testing repository.

Comment 15 Fedora Update System 2013-02-19 01:25:29 UTC
python-mongoengine-0.7.9-4.fc17 has been pushed to the Fedora 17 stable repository.

Comment 16 Fedora Update System 2013-02-19 01:28:15 UTC
python-mongoengine-0.7.9-4.fc18 has been pushed to the Fedora 18 stable repository.

Comment 17 Eduardo Echeverria 2013-09-16 21:07:08 UTC
Package Change Request
======================
Package Name: python-mongoengine
New Branches: el6
Owners: yograterol echevemaster

Comment 18 Gwyn Ciesla 2013-09-17 12:37:38 UTC
Git done (by process-git-requests).

Comment 19 Fedora Update System 2013-10-04 15:46:23 UTC
python-mongoengine-0.7.10-1.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/python-mongoengine-0.7.10-1.el6

Comment 20 Fedora Update System 2013-10-04 21:15:20 UTC
python-mongoengine-0.7.10-1.el6 has been pushed to the Fedora EPEL 6 testing repository.

Comment 21 Fedora Update System 2013-10-09 03:27:35 UTC
python-mongoengine-0.7.10-2.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/python-mongoengine-0.7.10-2.el6

Comment 22 Fedora Update System 2013-10-25 17:40:21 UTC
python-mongoengine-0.7.10-2.el6 has been pushed to the Fedora EPEL 6 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 23 Fedora Update System 2013-11-17 05:00:35 UTC
python-mongoengine-0.8.4-1.fc20 has been submitted as an update for Fedora 20.
https://admin.fedoraproject.org/updates/python-mongoengine-0.8.4-1.fc20

Comment 24 Fedora Update System 2013-11-17 05:04:09 UTC
python-mongoengine-0.8.4-1.fc19 has been submitted as an update for Fedora 19.
https://admin.fedoraproject.org/updates/python-mongoengine-0.8.4-1.fc19

Comment 25 Fedora Update System 2013-11-17 05:12:58 UTC
python-mongoengine-0.8.4-1.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/python-mongoengine-0.8.4-1.fc18

Comment 26 Fedora Update System 2013-11-18 02:54:01 UTC
Package python-mongoengine-0.8.4-1.fc20:
* should fix your issue,
* was pushed to the Fedora 20 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing python-mongoengine-0.8.4-1.fc20'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2013-21565/python-mongoengine-0.8.4-1.fc20
then log in and leave karma (feedback).

Comment 27 Fedora Update System 2013-11-26 04:06:15 UTC
python-mongoengine-0.8.4-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 Fedora Update System 2013-11-26 04:06:31 UTC
python-mongoengine-0.8.4-1.fc20 has been pushed to the Fedora 20 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 29 Fedora Update System 2013-11-26 04:09:20 UTC
python-mongoengine-0.8.4-1.fc18 has been pushed to the Fedora 18 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 30 Yohan Graterol 2015-02-15 15:28:38 UTC
Package Change Request
======================
Package Name: python-mongoengine
New Branches: el7
Owners: yograterol echevemaster

Comment 31 Gwyn Ciesla 2015-02-16 14:20:09 UTC
Git done (by process-git-requests).