Opened 5 days ago

Closed 3 days ago

Last modified 3 days ago

#71287 closed defect (fixed)

Cyclic dependencies in MacPorts

Reported by: szhorvat (Szabolcs Horvát) Owned by: reneeotten (Renee Otten)
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: stromnov (Andrey Stromnov)
Port: py-zipp

Description

Recently a cyclic dependency was introduced in MacPorts.

py37-importlib-metadata depends-lib on py37-zipp

py37-zipp depends-build on py37-setuptools-scm

py37-setuptools-scm depends-lib on py37-importlib-metadata

This cycle wasn't present a couple of weeks ago (see #71182). It is only present for the py37 subports, not any of the later Python versions.

Change History (9)

comment:1 Changed 5 days ago by szhorvat (Szabolcs Horvát)

There are two more cycles in the dependency graph, and no more:

{{"py39-build" -> "py39-importlib-metadata", 
  "py39-importlib-metadata" -> "py39-zipp", 
  "py39-zipp" -> "py39-setuptools_scm", 
  "py39-setuptools_scm" -> "py39-build"}, 

{"py38-build" -> "py38-importlib-metadata", 
  "py38-importlib-metadata" -> "py38-zipp", 
  "py38-zipp" -> "py38-setuptools_scm", 
  "py38-setuptools_scm" -> "py38-build"}}

A couple of weeks ago the dependency graph was acyclic, so these two are new as well.

comment:2 Changed 5 days ago by jmroot (Joshua Root)

Owner: set to reneeotten
Port: py-zipp added
Status: newassigned

comment:3 Changed 5 days ago by reneeotten (Renee Otten)

well, that build dependency is needed for py-zipp:

requires = ["setuptools>=61.2", "setuptools_scm[toml]>=3.4.1"]

comment:4 Changed 4 days ago by reneeotten (Renee Otten)

oh, sorry... I see it was my mistake indeed :( I added the build dependency unconditionally and it shouldn't be there for older versions. I'll fix this shortly - thanks for reporting it!

comment:5 Changed 4 days ago by reneeotten (Renee Otten)

Resolution: fixed
Status: assignedclosed

In 94837b11c0fb167aa79bcc54a882dc6f3c63479f/macports-ports (master):

py-zipp: fix build dependency

Closes: #71287

comment:6 Changed 4 days ago by szhorvat (Szabolcs Horvát)

We have a remaining cycle after the fixes:

{"py39-build" -> "py39-importlib-metadata", 
 "py39-importlib-metadata" -> "py39-zipp", 
 "py39-zipp" -> "py39-setuptools_scm", 
 "py39-setuptools_scm" -> "py39-build"}

Should the dependency "py39-zipp" -> "py39-setuptools_scm" continue to exist?

comment:7 Changed 4 days ago by jmroot (Joshua Root)

Resolution: fixed
Status: closedreopened

Right. See also the comments on the commit.

comment:8 Changed 3 days ago by reneeotten (Renee Otten)

Resolution: fixed
Status: reopenedclosed

In 53404917d3fb632a5814f692ba283dd67254a10a/macports-ports (master):

py-zipp: fix circular dependency

Closes: #71287

comment:9 Changed 3 days ago by reneeotten (Renee Otten)

okay, well perhaps fixed now. It appears to work for me and I don't get any messages about circular dependencies...

Note: See TracTickets for help on using tickets.