﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	blockedby	blocking	notify_on_close	platform	project
4262	Does Toolshed avoid installing incompatible dependencies?	Tom Goddard	Greg Couch	"I am wondering if the Toolshed will update bundles that result in breaking already installed bundles?  Here is a scenario.

Suppose my ChimeraX has Qt shim bundle 1.0 that say works with PyQt5.  Now I install a new tool MyTool that requires Qt shim 2.0 that uses PyQt6.  Will Toolshed update Qt shim 1.0 to Qt shim 2.0 thus breaking all my previously installed tools that require Qt 1.0?  Or will it refuse to install MyTool?  What error message would it give.

This general problem is also an issue with pip install.  Currently with pip 20.3 (that has a new dependency resolver compared to 20.2 that will never install an incompatible set of dependencies), it does not consider packages you already have installed that are not a dependency or subdependency of what you requested to install.  So pip 20.3 may upgrade an existing package in your environment and break other packages that needed the older version.  This is discussed extensively in this ticket pip

https://github.com/pypa/pip/issues/7744

The ""pip check"" command checks all your installed packages to see if incompatible dependencies are installed.  I believe pip 20.3 automatically does a pip check after you do a pip install.  So you will be warned if an incompatible upgrade was made, but it won't prevent that upgrade.  I could be wrong about this.

Here are details of the new pip 20.3 dependency resolver.  We are using pip 20.3 in daily builds.

https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020
"	enhancement	assigned	moderate		Tool Shed				Eric Pettersen				all	ChimeraX
