Bug 816012

Summary: Review Request: python-virtualenvcontext - Switch virtualenvs with a python context manager
Product: [Fedora] Fedora Reporter: Ralph Bean <rbean>
Component: Package ReviewAssignee: Alec Leamas <leamas.alec>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: leamas.alec, notting, package-review
Target Milestone: ---Flags: leamas.alec: 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-05-26 06:55:23 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 Ralph Bean 2012-04-25 04:21:26 UTC
Spec URL: http://threebean.org/rpm/python-virtualenvcontext.spec
SRPM URL: http://threebean.org/rpm/python-virtualenvcontext-0.1.2-1.fc17.src.rpm
Description: 
Switch virtualenvs with a python context manager:

>>> from virtualenvcontext import VirtualenvContext

>>> try:
>>>     import kitchen
>>> except ImportError as e:
>>>     print "kitchen is definitely not installed in system-python"

>>> with VirtaulenvContext("my-venv"):
>>>     import kitchen
>>>     print "But it *is* installed in my virtualenv"

>>> try:
>>>     import kitchen
>>> except ImportError as e:
>>>     print "But once I exit that block, I lose my powers again..."


rpmlint output
==============
% find . -name "python-virtualenvcontext*" -exec rpmlint {} \;
python-virtualenvcontext.noarch: W: spelling-error Summary(en_US) virtualenvs -> virtual
python-virtualenvcontext.noarch: W: summary-not-capitalized C switch virtualenvs with a python context manager
python-virtualenvcontext.noarch: W: spelling-error %description -l en_US virtualenvs -> virtual
python-virtualenvcontext.noarch: W: spelling-error %description -l en_US virtualenv -> virtual
1 packages and 0 specfiles checked; 0 errors, 4 warnings.
0 packages and 1 specfiles checked; 0 errors, 0 warnings.
python-virtualenvcontext.src: W: spelling-error Summary(en_US) virtualenvs -> virtual
python-virtualenvcontext.src: W: spelling-error %description -l en_US virtualenvs -> virtual
python-virtualenvcontext.src: W: spelling-error %description -l en_US virtualenv -> virtual


koji - f17 - http://koji.fedoraproject.org/koji/taskinfo?taskID=4020750
koji - el6 - http://koji.fedoraproject.org/koji/taskinfo?taskID=4020752

Comment 1 Alec Leamas 2012-05-05 07:18:11 UTC
Provisional review: open issues are the license. Formally, I should ask you to inform upstream about the missing license file. However, since you actually are the upstream(?) I suggest that you fix it once and for all:
- Add a header with copyright and license info to all source files.
- Add the AGPL license file to the package, and include it in %doc
- Either include an overall copyright and license statement in README.rst, or just include PKG-INFO in %doc which already has this.

None of these are blockers. I will do a complete review as soon as you reply to this.

Comment 2 Alec Leamas 2012-05-05 07:24:02 UTC
BTW: I'm no native speaker,so... but I have a vague feeling that the 'virtualenv' in the summary might not be the best English.  However, I'm not the person to judge this, definitely not, so as long as you are comfortable with this it's fine w me as well.

That is not to say I trust rpmlint's spellcheck ;)

Comment 3 Alec Leamas 2012-05-05 10:31:53 UTC
Seems that this one requires python-virtualenvwrapper which is not in rawhide. Is this another request of yours? We need to figure out how to handle this.

Comment 4 Alec Leamas 2012-05-07 06:33:30 UTC
But now, Monday morning, python-virtualenvwrapper  is indeed in rawhide. /me scratches my head.

Comment 5 Ralph Bean 2012-05-07 16:47:02 UTC
(In reply to comment #2)
> BTW: I'm no native speaker,so... but I have a vague feeling that the
> 'virtualenv' in the summary might not be the best English.  However, I'm not
> the person to judge this, definitely not, so as long as you are comfortable
> with this it's fine w me as well.
> 
> That is not to say I trust rpmlint's spellcheck ;)

'virtualenv' is definitely invalid english, but it is a technical term referring to the python virtualenv module and the environments it creates.  

  https://apps.fedoraproject.org/packages/python-virtualenv

Comment 6 Ralph Bean 2012-05-07 16:49:11 UTC
(In reply to comment #1)
> Provisional review: open issues are the license. Formally, I should ask you to
> inform upstream about the missing license file. However, since you actually are
> the upstream(?) I suggest that you fix it once and for all:
> - Add a header with copyright and license info to all source files.
> - Add the AGPL license file to the package, and include it in %doc
> - Either include an overall copyright and license statement in README.rst, or
> just include PKG-INFO in %doc which already has this.
> 
> None of these are blockers. I will do a complete review as soon as you reply to
> this.

I am in fact the upstream.  :)  (I should have mentioned that!)

I put out a new version which resolves all the license ambiguity (Should be GPLv2+).  I also updated the spec to be a little more specific when declaring directory ownership.

Spec URL: http://threebean.org/rpm/python-virtualenvcontext.spec
SRPM URL: http://threebean.org/rpm/python-virtualenvcontext-0.1.3-1.fc17.src.rpm

Comment 7 Alec Leamas 2012-05-07 17:42:47 UTC
Package Review
==============

Key:
- = N/A
x = Pass
! = Fail
? = Not evaluated

==== Generic ====
[x]: MUST Package is licensed with an open-source compatible license and meets
     other legal requirements as defined in the legal section of Packaging
     Guidelines.
[x]: MUST Package successfully compiles and builds into binary rpms on at
     least one supported primary architecture.
[-]: MUST %build honors applicable compiler flags or justifies otherwise.
[x]: MUST All build dependencies are listed in BuildRequires, except for any
     that are listed in the exceptions section of Packaging Guidelines.
[x]: MUST Buildroot is not present
     Note: Unless packager wants to package for EPEL5 this is fine
[x]: MUST Package contains no bundled libraries.
[x]: MUST Changelog in prescribed format.
[x]: MUST Package has no %clean section with rm -rf %{buildroot} (or
     $RPM_BUILD_ROOT)
[x]: MUST Sources contain only permissible code or content.
[x]: MUST Each %files section contains %defattr if rpm < 4.4
[x]: MUST Macros in Summary, %description expandable at SRPM build time.
[x]: MUST Package requires other packages for directories it uses.
[x]: MUST Package uses nothing in %doc for runtime.
[x]: MUST Package is not known to require ExcludeArch.
[x]: MUST Permissions on files are set properly.
[x]: MUST Package does not contain duplicates in %files.
[x]: MUST Spec file lacks Packager, Vendor, PreReq tags.
[x]: MUST Package does not run rm -rf %{buildroot} (or $RPM_BUILD_ROOT) at the
     beginning of %install.
[-]: MUST Large documentation files are in a -doc subpackage, if required.
[x]: 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 is included in %doc.
[!]: MUST License field in the package spec file matches the actual license.
     Note: Licenses found: "UNKNOWN" For detailed output of licensecheck see
     file: /home/mk/src/FedoraReview/src/816012/licensecheck.txt
     LICENSE is AGPL
[x]: MUST Package consistently uses macros (instead of hard-coded directory
     names).
[x]: MUST Package is named according to the Package Naming Guidelines.
[x]: MUST Package does not generate any conflict.
[x]: MUST Package obeys FHS, except libexecdir and /usr/target.
[x]: MUST Package must own all directories that it creates.
[x]: MUST Package does not own files or directories owned by other packages.
[x]: MUST Package installs properly.
[x]: MUST Requires correct, justified where necessary.
[x]: MUST Rpmlint is run on all rpms the build produces
     There are rpmlint messages (see attachment)
[x]: MUST Sources used to build the package match the upstream source, as
     provided in the spec URL.
     Upstream MD5sum matches source
[x]: MUST Spec file is legible and written in American English.
[x]: MUST Spec file name must match the spec package %{name}, in the format
     %{name}.spec.
[-]: MUST Package contains a SysV-style init script if in need of one.
[x]: MUST File names are valid UTF-8.
[-]: MUST Useful -debuginfo package or justification otherwise.
[x]: SHOULD Reviewer should test that the package builds in mock.
[-]: 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.
[x]: SHOULD Dist tag is present.
[x]: SHOULD No file requires outside of /etc, /bin, /sbin, /usr/bin,
     /usr/sbin.
[x]: SHOULD Final provides and requires are sane (rpm -q --provides and rpm -q
     --requires).
[?]: SHOULD Package functions as described.
[x]: SHOULD Latest version is packaged.
[x]: SHOULD Package does not include license text files separate from
     upstream.
[x]: SHOULD SourceX is a working URL.
[-]: SHOULD Description and summary sections in the package spec file contains
     translations for supported Non-English languages, if available.
[-]: SHOULD Package should compile and build into binary rpms on all supported
     architectures.
[-]: SHOULD %check is present and all tests pass.
[x]: SHOULD Packages should try to preserve timestamps of original installed
     files.
[x]: SHOULD Spec use %global instead of %define.

Issues
------
[!] The LICENSE file is still AGPL, I presume you intended this to 
    be the GPL 2.0 COPYING?

[!] Since PKG-INFO is the only file with an overall license claim 
    (there's nothing in README.rst) include it in %doc

[!] The Summary: You might consider avoid the term virtualenv in the 
    summary, it's already in the name; using the name in the summary 
    is somewhat frowned upon. "Isolated python environments wrapper"?

[!] https://apps.fedoraproject.org/packages/python-virtualenv/ states 
    the license as "MIT-style permissive license" - that's not GPLv2+.

Mock tests.
-----------
<mock-chroot># rpmlint  python-virtualenvcontext
    python-virtualenvcontext.noarch: I: enchant-dictionary-not-found en_US
1 packages and 0 specfiles checked; 0 errors, 0 warnings.
<mock-chroot># rpm -q --provides python-virtualenvcontext
    python-virtualenvcontext = 0.1.3-1.fc18
<mock-chroot># rpm -q --requires python-virtualenvcontext | grep -v rpmlib
    python(abi) = 2.7
    python-virtualenvwrapper

Rpmlint
-------
rpmlint python-virtualenvcontext-0.1.3-1.fc18.src.rpm

python-virtualenvcontext.src: W: spelling-error Summary(en_US) virtualenvs -> virtual
python-virtualenvcontext.src: W: spelling-error %description -l en_US virtualenvs -> virtual
python-virtualenvcontext.src: W: spelling-error %description -l en_US virtualenv -> virtual
1 packages and 0 specfiles checked; 0 errors, 3 warnings.


rpmlint python-virtualenvcontext-0.1.3-1.fc18.noarch.rpm

python-virtualenvcontext.noarch: W: spelling-error Summary(en_US) virtualenvs -> virtual
python-virtualenvcontext.noarch: W: spelling-error %description -l en_US virtualenvs -> virtual
python-virtualenvcontext.noarch: W: spelling-error %description -l en_US virtualenv -> virtual
1 packages and 0 specfiles checked; 0 errors, 3 warnings.

MD5-sum check
-------------

/home/mk/src/FedoraReview/src/816012/virtualenvcontext-0.1.3.tar.gz :
  MD5SUM this package     : 9cb767634ca9cfdfac9e3aacd8a70d5b
  MD5SUM upstream package : 9cb767634ca9cfdfac9e3aacd8a70d5b


Generated by fedora-review 0.2.0git
External plugins:

Comment 8 Ralph Bean 2012-05-08 21:14:40 UTC
Spec URL: http://threebean.org/rpm/python-virtualenvcontext.spec
SRPM URL:
http://threebean.org/rpm/python-virtualenvcontext-0.1.4-1.fc17.src.rpm

(In reply to comment #7)
> Issues
> ------
> [!] The LICENSE file is still AGPL, I presume you intended this to 
>     be the GPL 2.0 COPYING?

Yes, another goof on my part.  It should be the correct GPL 2.0 now.  My
apologies for wasting your time.

> [!] Since PKG-INFO is the only file with an overall license claim 
>     (there's nothing in README.rst) include it in %doc

I understand.  It is included in %doc now.

> [!] The Summary: You might consider avoid the term virtualenv in the 
>     summary, it's already in the name; using the name in the summary 
>     is somewhat frowned upon. "Isolated python environments wrapper"?

I still believe this is the correct use.  Use of the virtualenv program is
widespread amongst python developers and the use of the word 'virtualenv' to
denote an environment created by the virtualenv program is common.  I can't back
this up and will change it to some other language if you insist.

> [!] https://apps.fedoraproject.org/packages/python-virtualenv/ states 
>     the license as "MIT-style permissive license" - that's not GPLv2+.

Unless I'm mistaken, since python-virtualenvcontext *uses* python-virtualenv and
not the other way around, and since python-virtualenvcontext has the stronger
license, python-virtualenvcontext is not relegated to bearing the same license
as its dependency python-virtualenv.  MIT is GPL-compatible.

Comment 9 Alec Leamas 2012-05-08 22:11:51 UTC
(In reply to comment #8)
> [cut]
> 
> Yes, another goof on my part.  It should be the correct GPL 2.0 now.  My
> apologies for wasting your time.
Don't apologize, there is really no need ;)

> I still believe this is the correct use.  Use of the virtualenv program is
> widespread amongst python developers and the use of the word 'virtualenv' to
> denote an environment created by the virtualenv program is common.  I can't
> back
> this up and will change it to some other language if you insist.
This is not a blocking issue. I still prefer something else directed to those not looking for virtualenv - those who do have already seen it in the name.


> > [!] https://apps.fedoraproject.org/packages/python-virtualenv/ states 
> >     the license as "MIT-style permissive license" - that's not GPLv2+.
> 
> Unless I'm mistaken, since python-virtualenvcontext *uses* python-virtualenv
> and
> not the other way around, and since python-virtualenvcontext has the stronger
> license, python-virtualenvcontext is not relegated to bearing the same license
> as its dependency python-virtualenv.  MIT is GPL-compatible.
Indeed, my bad, I got it wrong, missed it is another package...

***Approved

Comment 10 Ralph Bean 2012-05-08 22:32:26 UTC
(In reply to comment #9)
> [cut]
> ***Approved

Thanks for the review, Alec!

Comment 11 Ralph Bean 2012-05-08 22:33:50 UTC
New Package SCM Request
=======================
Package Name: python-virtualenvcontext
Short Description: Switch virtualenvs with a python context manager
Owners: ralph
Branches: f17 el6
InitialCC:

Comment 12 Alec Leamas 2012-05-08 22:48:09 UTC
You're welcome ...Sorry for missing the flag. You didn't, though

Comment 13 Alec Leamas 2012-05-08 22:49:13 UTC
Resetting flag just to make everything look OK.

Comment 14 Alec Leamas 2012-05-08 22:49:54 UTC
And now, finally, approving...

Comment 15 Gwyn Ciesla 2012-05-09 12:33:31 UTC
Git done (by process-git-requests).

Comment 16 Fedora Update System 2012-05-09 17:56:14 UTC
python-virtualenvcontext-0.1.4-1.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/python-virtualenvcontext-0.1.4-1.fc17

Comment 17 Fedora Update System 2012-05-09 18:04:26 UTC
python-virtualenvcontext-0.1.4-1.el6 has been submitted as an update for Fedora EPEL 6.
https://admin.fedoraproject.org/updates/python-virtualenvcontext-0.1.4-1.el6

Comment 18 Fedora Update System 2012-05-10 20:38:59 UTC
python-virtualenvcontext-0.1.4-1.fc17 has been pushed to the Fedora 17 testing repository.

Comment 19 Fedora Update System 2012-05-26 06:55:23 UTC
python-virtualenvcontext-0.1.4-1.fc17 has been pushed to the Fedora 17 stable repository.

Comment 20 Fedora Update System 2012-06-07 18:02:01 UTC
python-virtualenvcontext-0.1.4-1.el6 has been pushed to the Fedora EPEL 6 stable repository.