Bug 240490

Summary: www/py-soupsieve: Missing dependency devel/py-backports.functools_lru_cache (Python < 3)
Product: Ports & Packages Reporter: Jan Beich <jbeich>
Component: Individual Port(s)Assignee: Kubilay Kocak <koobs>
Status: Closed FIXED    
Severity: Affects Many People CC: python, sunpoet, wen
Priority: --- Flags: koobs: maintainer-feedback? (wen)
koobs: merge-quarterly+
Version: Latest   
Hardware: Any   
OS: Any   

Description Jan Beich freebsd_committer freebsd_triage 2019-09-11 07:52:21 UTC
$ pkg install py27-soupsieve
$ python2.7
Python 2.7.16 (default, Jun  9 2019, 03:24:51)
[GCC 4.2.1 Compatible FreeBSD Clang 6.0.0 (tags/RELEASE_600/final 326565)] on freebsd11
Type "help", "copyright", "credits" or "license" for more information.
>>> import soupsieve
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/site-packages/soupsieve/__init__.py", line 30, in <module>
    from . import css_parser as cp
  File "/usr/local/lib/python2.7/site-packages/soupsieve/css_parser.py", line 4, in <module>
    from . import util
  File "/usr/local/lib/python2.7/site-packages/soupsieve/util.py", line 25, in <module>
    from backports.functools_lru_cache import lru_cache  # noqa F401
ImportError: No module named backports.functools_lru_cache

Doesn't seem to affect python3.6.
Comment 1 Kubilay Kocak freebsd_committer freebsd_triage 2019-09-11 10:10:01 UTC
From requirements/project.txt: 

backports.functools_lru_cache ; python_version < '3'
Comment 2 commit-hook freebsd_committer freebsd_triage 2019-09-11 11:04:59 UTC
A commit references this bug:

Author: koobs
Date: Wed Sep 11 11:04:07 UTC 2019
New revision: 511814
URL: https://svnweb.freebsd.org/changeset/ports/511814

Log:
  www/py-soupsieve: Add missing dependency

  soupsieve depends on backports.functools_lru_cache [1] on Python versions <
  3, add the dependency accordingly.

  While I'm here:

   - Add TEST_DEPENDS and test target to improve future QA

  Note: soupsieve 'requires' [2] beautifulsoup4, but beautifulsoup4 depends
        on soupsieve via install_requires, causing a technical circular
        dependency, which is why soupsieve doesn't seem to explicitly
        install_requires on it ... anymore [3]. This seems bizzare.

  [1] requirements/project.txt: backports.functools_lru_cache ; python_version < '3'
  [2] https://github.com/facelessuser/soupsieve#installation
  [3] https://github.com/facelessuser/soupsieve/commit/9a792216ea1ffce018c7968105540c08b82b96db

  QA: 624 passed, 2 skipped, 6 warnings in 35.70 seconds

  PR:		240490
  Reported by:	jbeich
  Approved by:	portmgr (blanket: missing dependencies, ports compliance)
  MFH:		2019Q3 (blanket(s): run-time bugfix)

Changes:
  head/www/py-soupsieve/Makefile
Comment 3 commit-hook freebsd_committer freebsd_triage 2019-09-16 11:30:45 UTC
A commit references this bug:

Author: koobs
Date: Mon Sep 16 11:30:36 UTC 2019
New revision: 512169
URL: https://svnweb.freebsd.org/changeset/ports/512169

Log:
  MFH: r511814 www/py-soupsieve: Add missing dependency

  soupsieve depends on backports.functools_lru_cache [1] on Python versions <
  3, add the dependency accordingly.

  While I'm here:

   - Add TEST_DEPENDS and test target to improve future QA

  Note: soupsieve 'requires' [2] beautifulsoup4, but beautifulsoup4 depends
        on soupsieve via install_requires, causing a technical circular
        dependency, which is why soupsieve doesn't seem to explicitly
        install_requires on it ... anymore [3]. This seems bizzare.

  [1] requirements/project.txt: backports.functools_lru_cache ; python_version < '3'
  [2] https://github.com/facelessuser/soupsieve#installation
  [3] https://github.com/facelessuser/soupsieve/commit/9a792216ea1ffce018c7968105540c08b82b96db

  QA: 624 passed, 2 skipped, 6 warnings in 35.70 seconds

  PR:		240490
  Reported by:	jbeich
  Approved by:	portmgr (blanket: missing dependencies, ports compliance)

  Approved by:	ports-secteam (blanket: run-time bugfix)

Changes:
_U  branches/2019Q3/
  branches/2019Q3/www/py-soupsieve/Makefile