Bug 220284

Summary: devel/py-pytest and devel/py-py: circular dependency
Product: Ports & Packages Reporter: Alexey Dokuchaev <danfe>
Component: Individual Port(s)Assignee: Po-Chuan Hsieh <sunpoet>
Status: Closed Overcome By Events    
Severity: Affects Some People CC: bdrewery, w.schwarzenfeld
Priority: --- Flags: bugzilla: maintainer-feedback? (python)
Version: Latest   
Hardware: Any   
OS: Any   

Description Alexey Dokuchaev freebsd_committer freebsd_triage 2017-06-26 12:23:54 UTC
Currently, devel/py-pytest RUN_DEPENDS on devel/py-py, which in turn lists devel/py-pytest as its TEST_DEPENDS.  This creates circular dependency in environments when both RUN and TEST dependencies are attempted to install (e.g. in a tinderbox), breaking unattended builds of all ports that depend on these ports (like sysutils/qzeitgeist) and just does not look good in general.
Comment 1 Walter Schwarzenfeld 2018-01-17 15:02:50 UTC
Any news here?
Comment 2 Kubilay Kocak freebsd_committer freebsd_triage 2018-02-22 09:08:29 UTC
I'll take a very good look at both project dependencies, but I am almost completely sure both dependencies are absolutely correct and necessary, in that pytest literally uses py library code and py uses pytest specific test suite & tests.
Comment 3 Po-Chuan Hsieh freebsd_committer freebsd_triage 2018-02-22 17:50:57 UTC
The dependencies are correct.
But we have to unregister either RUN_DEPENDS from py-pytest or TEST_DEPENDS from py-py to avoid circular dependency.
I plan to remove TEST_DEPENDS from py-py to avoid circular dependency.
Comment 4 commit-hook freebsd_committer freebsd_triage 2018-02-22 19:51:53 UTC
A commit references this bug:

Author: sunpoet
Date: Thu Feb 22 19:51:25 UTC 2018
New revision: 462637
URL: https://svnweb.freebsd.org/changeset/ports/462637

Log:
  Remove TEST_DEPENDS to avoid circular dependency

  PR:		220284
  Reported by:	danfe

Changes:
  head/devel/py-py/Makefile
Comment 5 Po-Chuan Hsieh freebsd_committer freebsd_triage 2018-02-22 19:59:49 UTC
Committed. Thanks!
Comment 6 Bryan Drewery freebsd_committer freebsd_triage 2018-02-23 01:43:34 UTC
(In reply to Sunpoet Po-Chuan Hsieh from comment #3)
> The dependencies are correct.
> But we have to unregister either RUN_DEPENDS from py-pytest or TEST_DEPENDS
> from py-py to avoid circular dependency.
> I plan to remove TEST_DEPENDS from py-py to avoid circular dependency.

Where is the cyclic dependency you are fixing? I don't think any change to either
port is proper.

Really there is no cyclic dependency if you consider the whole picture.

Reading comment #0 I see:
py-pytest needs py-py installed to run.
py-py needs py-pytest installed to *test*.

No cyclic dependency present.

The real problem here is tinderbox (and is why Poudriere has not yet implemented
'make test').  Tinderbox needs to do 2 passes, build everything, then test
everything.

So the bug here is in TINDERBOX, not these ports.
Comment 7 commit-hook freebsd_committer freebsd_triage 2018-03-05 17:15:40 UTC
A commit references this bug:

Author: sunpoet
Date: Mon Mar  5 17:15:11 UTC 2018
New revision: 463662
URL: https://svnweb.freebsd.org/changeset/ports/463662

Log:
  Revert r462637

  PR:		220284
  Pointed out by:	bdrewery
  Reference:	https://lists.freebsd.org/pipermail/svn-ports-all/2018-February/175369.html
  		https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220284#c6

Changes:
  head/devel/py-py/Makefile
Comment 8 Po-Chuan Hsieh freebsd_committer freebsd_triage 2018-03-05 17:20:03 UTC
The commit is reverted.
Comment 9 Bryan Drewery freebsd_committer freebsd_triage 2018-03-05 17:39:22 UTC
(In reply to Sunpoet Po-Chuan Hsieh from comment #8)
> The commit is reverted.

Thank you.

For the record, I have been working towards getting 'make test' support in Poudriere.