[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

2Removal: handling circular dependencies / dropping tests before the binary?



Some Python 2 packages have circular (build-)dependencies, making it impossible to remove them one at a time without breaking anything.

One such cycle is seaborn, sphinx-gallery and matplotlib2 (#940873); I have not attempted to systematically check for them.

How should these be dealt with?

--- Cut the cycle by removing one of the dependencies.

This may mean skipping (some of) the tests, as Python build dependencies are often actually test dependencies. There might be cases where it isn't reasonably possible at all.

(Related question: if a package with a large test suite is being uploaded anyway, should we consider removing the Python 2 tests just to save buildd/debci resources?)

--- Prepare all the required packages in salsa / experimental, then remove the entire cycle at once.

This is easy if the cycle is small and otherwise ready to remove, but if one member has a big dependency tree, the whole cycle might have to stay for some time.

(Related question: does it make sense to create no-Python2 salsa branches of one's regular modules (particularly any that need nontrivial changes) and mark them "please upload when the reverse dependencies have been cleared", even if they aren't part of a cycle?)


Reply to: