Bug 876645

Summary: Review Request: python-fixtures - Fixtures, reusable state for writing clean tests and more
Product: [Fedora] Fedora Reporter: Pádraig Brady <p>
Component: Package ReviewAssignee: Eduardo Echeverria <echevemaster>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: echevemaster, mrunge, notting, package-review
Target Milestone: ---Flags: echevemaster: fedora-review+
gwync: fedora-cvs+
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-11-23 07:45:16 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Pádraig Brady 2012-11-14 16:36:27 UTC
Spec URL: http://fedorapeople.org/~pbrady/python-fixtures/python-fixtures.spec
SRPM URL: http://fedorapeople.org/~pbrady/python-fixtures/python-fixtures-0.3.9-1.fc15.src.rpm
Description: Fixtures defines a Python contract for reusable state / support logic,
primarily for unit testing. Helper and adaption logic is included to
make it easy to write your own fixtures using the fixtures contract.
Glue code is provided that makes using fixtures that meet the Fixtures
contract in unittest compatible test cases easy and straight forward.
Fedora Account System Username: pbrady

Comment 1 Eduardo Echeverria 2012-11-15 08:22:15 UTC
Hi Pádraig
Initial Comments:
- BuildRequires:  python-devel
You must specify if you use python2-devel and python3-devel, python2-devel in this case.
http://fedoraproject.org/wiki/Packaging:Python#BuildRequires

- Requires: python-testtools >= 0.9.12
the latest version of python-testtools is python-testtools-0.9.21
So no need to specify the version in this case
http://koji.fedoraproject.org/koji/packageinfo?packageID=11850

- License: ASL 2.0 and BSD
the license field should be 
- License: ASL 2.0 or BSD
the author specifies:

"Fixtures is licensed under two licenses, the Apache License, Version 2.0
or the 3-clause BSD License. You may use this project under either of these
licenses - choose the one that works best for you"

Please include in the %doc section the files:
Apache-2.0
BSD
COPYING 

Regards

Comment 2 Eduardo Echeverria 2012-11-15 08:29:30 UTC
Fixed these points, I'll take the review

Comment 3 Pádraig Brady 2012-11-15 16:35:21 UTC
Spec URL: http://fedorapeople.org/~pbrady/python-fixtures/python-fixtures.spec
SRPM URL: http://fedorapeople.org/~pbrady/python-fixtures/python-fixtures-0.3.9-1.fc15.src.rpm
Description: Fixtures defines a Python contract for reusable state / support logic,
primarily for unit testing. Helper and adaption logic is included to
make it easy to write your own fixtures using the fixtures contract.
Glue code is provided that makes using fixtures that meet the Fixtures
contract in unittest compatible test cases easy and straight forward.
Fedora Account System Username: pbrady

Comment 4 Eduardo Echeverria 2012-11-16 07:00:36 UTC
Hi again Pádraig:

- Please upload the SRPM resulting.

- The changelog not right 
%changelog
* Wed Nov 14 2012 Pádraig Brady <P> - 0.3.9-2
- Initial package.

should be well:

* Wed Nov 14 2012 Pádraig Brady <P> - 0.3.9-2
- The changes you made to the spec should be exposed here.

* Wed Nov 14 2012 Pádraig Brady <P> - 0.3.9-1
- Initial package.

The license not right

License: ASL 2.0

should be well:

License: ASL 2.0 or BSD

https://fedoraproject.org/wiki/Licensing:FAQ?rd=Licensing/FAQ#How_should_I_handle_multiple_licensing_situations.3F
Please see point 4

Comment 5 Eduardo Echeverria 2012-11-16 07:02:10 UTC
And please include the file BSD in %doc section

Comment 6 Pádraig Brady 2012-11-16 09:50:16 UTC
I disagree re changelog. That should be consumer facing IMHO rather that developer facing, so there is no point in documenting the changes captured here in the changelog. I've updated the package to fix the licensing issue. thanks!

Comment 7 Pádraig Brady 2012-11-16 09:50:58 UTC
Spec URL: http://fedorapeople.org/~pbrady/python-fixtures/python-fixtures.spec
SRPM URL: http://fedorapeople.org/~pbrady/python-fixtures/python-fixtures-0.3.9-3.fc15.src.rpm
Description: Fixtures defines a Python contract for reusable state / support logic,
primarily for unit testing. Helper and adaption logic is included to
make it easy to write your own fixtures using the fixtures contract.
Glue code is provided that makes using fixtures that meet the Fixtures
contract in unittest compatible test cases easy and straight forward.
Fedora Account System Username: pbrady

Comment 8 Matthias Runge 2012-11-16 10:01:42 UTC
(In reply to comment #6)
> I disagree re changelog. That should be consumer facing IMHO rather that
> developer facing, so there is no point in documenting the changes captured
> here in the changelog. I've updated the package to fix the licensing issue.
> thanks!

I agree whit Eduardo, the changelog should reflect the changes of that package, especially the changes during review. Otherwise, they'd be lost, because the package is not in a SCM yet.

https://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs

Comment 9 Pádraig Brady 2012-11-16 11:58:31 UTC
Spec URL: http://fedorapeople.org/~pbrady/python-fixtures/python-fixtures.spec
SRPM URL: http://fedorapeople.org/~pbrady/python-fixtures/python-fixtures-0.3.9-4.fc15.src.rpm
Description: Fixtures defines a Python contract for reusable state / support logic,
primarily for unit testing. Helper and adaption logic is included to
make it easy to write your own fixtures using the fixtures contract.
Glue code is provided that makes using fixtures that meet the Fixtures
contract in unittest compatible test cases easy and straight forward.
Fedora Account System Username: pbrady

Comment 10 Eduardo Echeverria 2012-11-17 04:38:58 UTC
(In reply to comment #8)
> (In reply to comment #6)
> > I disagree re changelog. That should be consumer facing IMHO rather that
> > developer facing, so there is no point in documenting the changes captured
> > here in the changelog. I've updated the package to fix the licensing issue.
> > thanks!
> 
> I agree whit Eduardo, the changelog should reflect the changes of that
> package, especially the changes during review. Otherwise, they'd be lost,
> because the package is not in a SCM yet.
> 
> https://fedoraproject.org/wiki/Packaging:Guidelines#Changelogs

You're right, Thanks Matthias

(In reply to comment #9)
> Spec URL:
> http://fedorapeople.org/~pbrady/python-fixtures/python-fixtures.spec
> SRPM URL:
> http://fedorapeople.org/~pbrady/python-fixtures/python-fixtures-0.3.9-4.fc15.
> src.rpm
> Description: Fixtures defines a Python contract for reusable state / support
> logic,
> primarily for unit testing. Helper and adaption logic is included to
> make it easy to write your own fixtures using the fixtures contract.
> Glue code is provided that makes using fixtures that meet the Fixtures
> contract in unittest compatible test cases easy and straight forward.
> Fedora Account System Username: pbrady

Now, on to the formal review

Tested on Koji:
rawhide: http://koji.fedoraproject.org/koji/taskinfo?taskID=4697833
f18:     http://koji.fedoraproject.org/koji/taskinfo?taskID=4697835
f17:     http://koji.fedoraproject.org/koji/taskinfo?taskID=4697837


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/fixtures/876645-python-
     fixtures/licensecheck.txt
The package is dual licensing (License: ASL 2.0 or BSD)
[x]: Package consistently uses macro is (instead of hard-coded directory
     names).
[x]: If the package is under multiple licenses, the licensing breakdown must
     be documented in the spec.
[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.
[x]: 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: There are rpmlint messages (see attachment).
[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 40960 bytes in 6 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 (fixtures-0.3.9.tar.gz)
All packages what have functionality with python,  should be named python-foo
http://fedoraproject.org/wiki/Features/PythonNamingDependingOnImplementation

[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.
[-]: %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: There are rpmlint messages (see attachment).
[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-fixtures-0.3.9-4.fc17.noarch.rpm
          python-fixtures-0.3.9-4.fc17.src.rpm
python-fixtures.noarch: W: spelling-error %description -l en_US unittest -> unit test, unit-test, unities
python-fixtures.src: W: spelling-error %description -l en_US unittest -> unit test, unit-test, unities
2 packages and 0 specfiles checked; 0 errors, 2 warnings.




Rpmlint (installed packages)
----------------------------
# rpmlint python-fixtures
python-fixtures.noarch: W: spelling-error %description -l en_US unittest -> unit test, unit-test, unities
1 packages and 0 specfiles checked; 0 errors, 1 warnings.
# echo 'rpmlint-done:'



Requires
--------
python-fixtures-0.3.9-4.fc17.noarch.rpm (rpmlib, GLIBC filtered):
    
    python(abi) = 2.7
    python-testtools  



Provides
--------
python-fixtures-0.3.9-4.fc17.noarch.rpm:
    
    python-fixtures = 0.3.9-4.fc17



MD5-sum check
-------------
http://pypi.python.org/packages/source/f/fixtures/fixtures-0.3.9.tar.gz :
  CHECKSUM(SHA256) this package     : 00d8893791f1cff4b29aa76e6c844374b8a171582ddeb96b8bce0468c36d8af8
  CHECKSUM(SHA256) upstream package : 00d8893791f1cff4b29aa76e6c844374b8a171582ddeb96b8bce0468c36d8af8



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

PACKAGE APPROVED

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

Comment 11 Pádraig Brady 2012-11-17 11:39:52 UTC
New Package SCM Request
=======================
Package Name: python-fixtures
Short Description: Fixtures, reusable state for writing clean tests and more
Owners: pbrady
Branches: f17 f18 el6
InitialCC:

Comment 12 Gwyn Ciesla 2012-11-18 17:12:01 UTC
Git done (by process-git-requests).

Comment 13 Fedora Update System 2012-11-19 12:43:44 UTC
python-fixtures-0.3.9-4.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/python-fixtures-0.3.9-4.el6

Comment 14 Fedora Update System 2012-11-19 12:44:21 UTC
python-fixtures-0.3.9-4.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/python-fixtures-0.3.9-4.fc17

Comment 15 Fedora Update System 2012-11-19 12:44:55 UTC
python-fixtures-0.3.9-4.fc18 has been submitted as an update for Fedora 18.
https://admin.fedoraproject.org/updates/python-fixtures-0.3.9-4.fc18

Comment 16 Fedora Update System 2012-11-19 18:28:38 UTC
python-fixtures-0.3.9-4.el6 has been pushed to the Fedora EPEL 6 testing repository.

Comment 17 Fedora Update System 2012-11-23 07:45:18 UTC
python-fixtures-0.3.9-4.fc18 has been pushed to the Fedora 18 stable repository.

Comment 18 Fedora Update System 2012-11-28 11:49:19 UTC
python-fixtures-0.3.9-4.fc17 has been pushed to the Fedora 17 stable repository.

Comment 19 Fedora Update System 2012-12-04 19:57:41 UTC
python-fixtures-0.3.9-4.el6 has been pushed to the Fedora EPEL 6 stable repository.

Comment 20 Pádraig Brady 2014-11-14 16:10:15 UTC
Package Change Request
======================
Package Name: python-fixtures
New Branches: epel7
Owners: pbrady apevec

Comment 21 Gwyn Ciesla 2014-11-14 17:03:19 UTC
Git done (by process-git-requests).

Comment 22 Fedora Update System 2014-11-14 22:11:27 UTC
python-fixtures-0.3.14-3.el7 has been submitted as an update for Fedora EPEL 7.
https://admin.fedoraproject.org/updates/python-fixtures-0.3.14-3.el7

Comment 23 Fedora Update System 2014-12-19 01:00:55 UTC
python-fixtures-0.3.14-3.el7 has been pushed to the Fedora EPEL 7 stable repository.