rdkit / conda-rdkit

Conda build recipe for the rdkit

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

RDkit 2020.09.4 release issues with Conda-forge build and other modules (Python3-saml)

AlDossetter opened this issue · comments

What:
Fresh install on Ubuntu 20.04 with miniconda3, python 3.7 RDKit installs ok but Python3-saml has become incompatible.
First noted with 2020.09.04 but after experiments found first version where break occurred - 2020.03.6

Terse:
Demonstrated with
python3-saml

Some issues with rpy2 but:

$ conda install -c conda-forge rpy2

appears to install and work ok on Ubuntu 20.04 (not Mac OSX)

TERSE:
Up to, and including rdkit==2019.09.3 python3-saml==1.9.0 would install and work together

With a python 3.7 condo env:

$ conda install -c conda-forge rdkit==2020.03.6 -y
$ conda install -c conda-forge python3-saml

Python3-saml failed to install with multiple conflicts
- there are references to Python 3.8 - did we miss something and RDkit is Python3.8 now?

rdkit==2020.09.3 and rdkit==2020.09.4 also are incompatible

Good News - There is compatibility with (this is a section of our build script)

pip install mod_wsgi==4.7.1
pip install -i https://pypi.anaconda.org/OpenEye/simple OpenEye-toolkits
conda install -c conda-forge rpy2 -y
conda install -c conda-forge scikit-learn==0.21.3 -y
conda install -c conda-forge matplotlib==3.3.3 -y

For addition clarity:

pip install python3-saml

does not work - this is PEP517 related but it does reveal that libxml2 and libxmlsec might be the issue
[Spent about a day try to work around this one without success]

These are the results on Ubuntu 20, on Mac OSX Catalina things are worse (that will required another day of experimentation - Rdkit 2018 appears stable here with all other module combinations)

Verbose (-vvv)

These are the experiments I performed focussing on just RDkit and Python3-saml for reproducibility.

Experiment details:

All builds were:
- performed on Amazon Web Services (AWS) Ubuntu 20.04 instances (unless otherwise stated), using t2.large
- MINICONDA="Miniconda3-4.5.12-Linux-x86_64.sh"
- with Python 3.7 environments
- as root user

After each experiment the AWS instance was terminated and a new instance used each time.

Control - 1 - establish older version of RDkit installs with

Ubuntu 20.04

export MINICONDA="Miniconda3-py37_4.8.3-Linux-x86_64.sh"
wget https://repo.continuum.io/miniconda/$MINICONDA
bash $MINICONDA -b -p /root/miniconda3
export PATH="/root/miniconda3/bin:$PATH"
conda create -n test_rdkit python=3.7 -y
source activate test_rdkit

pip install --upgrade pip
conda install -c conda-forge rdkit==2019.03.1.0 -y
conda install -c conda-forge python3-saml

Collecting package metadata (current_repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
current version: 4.8.3
latest version: 4.9.2

Please update conda by running

$ conda update -n base -c defaults conda

Package Plan

environment location: /root/miniconda3/envs/test_rdkit

added / updated specs:
- python3-saml

The following packages will be downloaded:

package                    |            build
---------------------------|-----------------
defusedxml-0.6.0           |             py_0          22 KB  conda-forge
isodate-0.6.0              |             py_1          25 KB  conda-forge
libgcrypt-1.8.7            |       h36c2ea0_0         610 KB  conda-forge
libgpg-error-1.41          |       h2531618_0         235 KB
libtool-2.4.6              |    h58526e2_1007         497 KB  conda-forge
libxml2-2.9.10             |       hb55368b_3         1.2 MB
libxmlsec1-1.2.29          |       h8fe84ac_0         516 KB
libxslt-1.1.34             |       hc22bd24_0         432 KB
lxml-4.6.2                 |   py37h9120a33_0         1.2 MB
python3-saml-1.9.0         |             py_0         227 KB
xmlsec-1.3.3               |   py37h0e8eec6_0         289 KB
------------------------------------------------------------
                                       Total:         5.2 MB

The following NEW packages will be INSTALLED:

defusedxml conda-forge/noarch::defusedxml-0.6.0-py_0
isodate conda-forge/noarch::isodate-0.6.0-py_1
libgcrypt conda-forge/linux-64::libgcrypt-1.8.7-h36c2ea0_0
libgpg-error pkgs/main/linux-64::libgpg-error-1.41-h2531618_0
libtool conda-forge/linux-64::libtool-2.4.6-h58526e2_1007
libxmlsec1 pkgs/main/linux-64::libxmlsec1-1.2.29-h8fe84ac_0
libxslt pkgs/main/linux-64::libxslt-1.1.34-hc22bd24_0
lxml pkgs/main/linux-64::lxml-4.6.2-py37h9120a33_0
python3-saml pkgs/main/noarch::python3-saml-1.9.0-py_0
xmlsec pkgs/main/linux-64::xmlsec-1.3.3-py37h0e8eec6_0

The following packages will be UPDATED:

libxml2 conda-forge::libxml2-2.9.9-h13577e0_2 --> pkgs/main::libxml2-2.9.10-hb55368b_3

....lots

conda list

...
python-dateutil 2.8.1 py_0 conda-forge
python3-saml 1.9.0 py_0
python_abi 3.7 1_cp37m conda-forge
pytz 2021.1 pyhd8ed1ab_0 conda-forge
rdkit 2019.03.1 py37h9c20d5c_0 conda-forge
readline 8.1 h27cfd23_0
...

SUCCESSFUL build***

Control 2 - newer version of RDkit and Python3-saml

Ubuntu 20.04

export MINICONDA="Miniconda3-py37_4.8.3-Linux-x86_64.sh"
wget https://repo.continuum.io/miniconda/$MINICONDA
bash $MINICONDA -b -p /root/miniconda3
export PATH="/root/miniconda3/bin:$PATH"
conda create -n test_rdkit python=3.7 -y
source activate test_rdkit

pip install --upgrade pip
conda install -c conda-forge rdkit==2019.09.3 -y
conda install -c conda-forge python3-saml

Collecting package metadata (current_repodata.json): done
Solving environment: failed with initial frozen solve. Retrying with flexible solve.
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
current version: 4.8.3
latest version: 4.9.2

Please update conda by running

$ conda update -n base -c defaults conda

Package Plan

environment location: /root/miniconda3/envs/test_rdkit

added / updated specs:
- python3-saml

The following packages will be downloaded:

package                    |            build
---------------------------|-----------------
boost-1.70.0               |   py37h9de70de_1         337 KB  conda-forge
boost-cpp-1.70.0           |       ha2d47e9_1        21.1 MB  conda-forge
cairo-1.16.0               |    h18b612c_1001         1.5 MB  conda-forge
defusedxml-0.6.0           |             py_0          22 KB  conda-forge
fontconfig-2.13.1          |    he4413a7_1000         327 KB  conda-forge
gettext-0.19.8.1           |       h5e8e0c9_1         3.5 MB  conda-forge
icu-58.2                   |    hf484d3e_1000        22.6 MB  conda-forge
isodate-0.6.0              |             py_1          25 KB  conda-forge
libgcrypt-1.8.7            |       h36c2ea0_0         610 KB  conda-forge
libgpg-error-1.39          |       he1b5a44_0         269 KB  conda-forge
libtool-2.4.6              |    h58526e2_1007         497 KB  conda-forge
libxml2-2.9.9              |       h13577e0_2         1.3 MB  conda-forge
libxmlsec1-1.2.29          |       h8fe84ac_0         516 KB
libxslt-1.1.33             |       h7d1a2b0_0         426 KB
lxml-4.4.1                 |   py37h7ec2d77_0         1.5 MB  conda-forge
python3-saml-1.9.0         |             py_0         227 KB
rdkit-2019.09.3            |   py37hb31dc5d_0        23.7 MB  conda-forge
xmlsec-1.3.3               |   py37h0e8eec6_0         289 KB
------------------------------------------------------------
                                       Total:        78.8 MB

The following NEW packages will be INSTALLED:

defusedxml conda-forge/noarch::defusedxml-0.6.0-py_0
gettext conda-forge/linux-64::gettext-0.19.8.1-h5e8e0c9_1
isodate conda-forge/noarch::isodate-0.6.0-py_1
libgcrypt conda-forge/linux-64::libgcrypt-1.8.7-h36c2ea0_0
libgpg-error conda-forge/linux-64::libgpg-error-1.39-he1b5a44_0
libtool conda-forge/linux-64::libtool-2.4.6-h58526e2_1007
libxmlsec1 pkgs/main/linux-64::libxmlsec1-1.2.29-h8fe84ac_0
libxslt pkgs/main/linux-64::libxslt-1.1.33-h7d1a2b0_0
lxml conda-forge/linux-64::lxml-4.4.1-py37h7ec2d77_0
python3-saml pkgs/main/noarch::python3-saml-1.9.0-py_0
xmlsec pkgs/main/linux-64::xmlsec-1.3.3-py37h0e8eec6_0

The following packages will be DOWNGRADED:

boost 1.72.0-py37h48f8a5e_1 --> 1.70.0-py37h9de70de_1
boost-cpp 1.72.0-h9359b55_3 --> 1.70.0-ha2d47e9_1
cairo 1.16.0-h3fc0475_1005 --> 1.16.0-h18b612c_1001
fontconfig 2.13.1-h7e3eb15_1002 --> 2.13.1-he4413a7_1000
icu 67.1-he1b5a44_0 --> 58.2-hf484d3e_1000
libxml2 2.9.10-h68273f3_2 --> 2.9.9-h13577e0_2
rdkit 2019.09.3-py37he9dd633_1 --> 2019.09.3-py37hb31dc5d_0

conda list

...
python-dateutil 2.8.1 py_0 conda-forge
python3-saml 1.9.0 py_0
python_abi 3.7 1_cp37m conda-forge
pytz 2021.1 pyhd8ed1ab_0 conda-forge
rdkit 2019.09.3 py37hb31dc5d_0 conda-forge
readline 8.1 h27cfd23_0
setuptools 52.0.0 py37h06a4308_0
...

SUCCESSFUL build***

Expt 1 - moving newer version of RDkit and Python3-saml

Ubuntu 20.04

export MINICONDA="Miniconda3-py37_4.8.3-Linux-x86_64.sh"
wget https://repo.continuum.io/miniconda/$MINICONDA
bash $MINICONDA -b -p /root/miniconda3
export PATH="/root/miniconda3/bin:$PATH"
conda create -n test_rdkit python=3.7 -y
source activate test_rdkit
pip install --upgrade pip
conda install -c conda-forge rdkit==2020.03.6 -y
conda install -c conda-forge python3-saml

!!!!!!!!UNSUCCESSFUL INSTALL!!!!!!!!

Conda detects conflicts between RDkit install and Python3-SAML

Expt 2 - newer version of RDkit and Python3-saml

Ubuntu 20.04

export MINICONDA="Miniconda3-py37_4.8.3-Linux-x86_64.sh"
wget https://repo.continuum.io/miniconda/$MINICONDA
bash $MINICONDA -b -p /root/miniconda3
export PATH="/root/miniconda3/bin:$PATH"
conda create -n test_rdkit python=3.7 -y

#Conda init bash
#

source activate test_rdkit

pip install --upgrade pip
conda install -c conda-forge rdkit==2020.09.3 -y
conda install -c conda-forge python3-saml

!!!!!!!!UNSUCCESSFUL INSTALL!!!!!!!!

--> Fails to install python3-saml and reports a huge amount of output - see included file.

Expt 3 - latest version of RDkit and Python3-saml

Ubuntu 20.04

export MINICONDA="Miniconda3-py37_4.8.3-Linux-x86_64.sh"
wget https://repo.continuum.io/miniconda/$MINICONDA
bash $MINICONDA -b -p /root/miniconda3
export PATH="/root/miniconda3/bin:$PATH"
conda create -n test_rdkit python=3.7 -y
source activate test_rdkit
pip install --upgrade pip
conda install -c conda-forge rdkit==2020.09.4 -y
conda install -c conda-forge python3-saml

!!!!!!!!UNSUCCESSFUL INSTALL!!!!!!!!

--> Fails to install python3-saml and reports a huge amount of output - see included file.

Expt 4 - Install Python3-saml first then RDkit - check if it works the other way

Ubuntu 20.04

export MINICONDA="Miniconda3-py37_4.8.3-Linux-x86_64.sh"
wget https://repo.continuum.io/miniconda/$MINICONDA
bash $MINICONDA -b -p /root/miniconda3
export PATH="/root/miniconda3/bin:$PATH"
conda create -n test_rdkit python=3.7 -y
source activate test_rdkit
pip install --upgrade pip
conda install -c conda-forge python3-saml -y
conda install -c conda-forge rdkit==2020.09.4 -y

!!!!!!!!UNSUCCESSFUL INSTALL!!!!!!!!

Python3-saml_fail_conda_conflict_report_Feb2021.txt

The above is the output on a failed install, details the conflicts - hopefully this saves some testing time.
Python 3.8 appears to be mentioned a lot - did we miss something? All tests performed on Python3.7.

I just tried the simple experiment of creating a python 3.8 environment, installing the rdkit from conda-forge (gets me v2020.09.4 of the RDKit), and then trying to install python3-saml. I can confirm that this then wants to downgrade the RDKit to v2019.09.3

Similarly if I start by installing python3-saml and then try to install the rdkit, it goes with 2019.09.3

I'm just guessing, because untangling the rats' nest of dependencies is tricky, but it looks like the problem is caused by the fact that python3-saml comes from the main channel (not conda-forge) and depends on some other packages which are only available from conda main... one that seems particularly problematic seems to be libxmlsec1. Those then bring in a build of libxml2 from main and it looks like that may break something that more recent rdkit installs are looking for.

ack... it's a mess

I'll see if there's any way to reduce the number of explicit dependencies that the rdkit conda-forge package has, but I'm not terribly optimistic about that.

@jaimergp: maybe this is something we can look at together? I suspect I'll reach the end of my ability to really figure this out before the full problem is solved.

You don't want to mix defaults and conda-forge (and shouldn't need on MacOS and Linux), otherwise issues like this are very possible. If python-saml is not on conda-forge we can try submit the recipe to conda-forge/staged-recipes.

Another possibility is to make sure strict_priority=True so dependencies present in conda-forge are not checked in defaults.

The environment is solvable if you specify everything at the same time, but indeed goes back to rdkit 2019.*:

conda create -n rdkit-saml -c conda-forge -c defaults rdkit python3-saml
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/jaime/.conda/envs/rdkit-saml

  added / updated specs:
    - python3-saml
    - rdkit


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    glib-2.66.4                |       hc4f0c31_2         442 KB  conda-forge
    glib-tools-2.66.4          |       hc4f0c31_2          85 KB  conda-forge
    libgcrypt-1.8.7            |       h36c2ea0_0         610 KB  conda-forge
    libglib-2.66.4             |       h748fe8e_2         3.0 MB  conda-forge
    libgpg-error-1.41          |       h9c3ff4c_0         270 KB  conda-forge
    libtool-2.4.6              |    h58526e2_1007         497 KB  conda-forge
    libuuid-2.32.1             |    h7f98852_1000          28 KB  conda-forge
    libwebp-base-1.2.0         |       h7f98852_0         808 KB  conda-forge
    libxcb-1.13                |    h7f98852_1003         395 KB  conda-forge
    libxml2-2.9.9              |       h13577e0_2         1.3 MB  conda-forge
    libxmlsec1-1.2.29          |       h8fe84ac_0         516 KB
    libxslt-1.1.33             |       h7d1a2b0_0         426 KB
    numpy-1.20.0               |   py37haa41c4c_0         5.8 MB  conda-forge
    pandas-1.2.1               |   py37hdc94413_0        11.7 MB  conda-forge
    pillow-8.1.0               |   py37he6b4880_1         676 KB  conda-forge
    pthread-stubs-0.4          |    h36c2ea0_1001           5 KB  conda-forge
    python3-saml-1.9.0         |             py_0         227 KB
    python_abi-3.7             |          1_cp37m           4 KB  conda-forge
    pytz-2021.1                |     pyhd8ed1ab_0         239 KB  conda-forge
    rdkit-2019.09.3            |   py37hb31dc5d_0        23.7 MB  conda-forge
    xmlsec-1.3.3               |   py37h0e8eec6_0         289 KB
    xorg-kbproto-1.0.7         |    h7f98852_1002          27 KB  conda-forge
    xorg-libxau-1.0.9          |       h7f98852_0          13 KB  conda-forge
    xorg-libxdmcp-1.1.3        |       h7f98852_0          19 KB  conda-forge
    xorg-xextproto-7.3.0       |    h7f98852_1002          28 KB  conda-forge
    xorg-xproto-7.0.31         |    h7f98852_1007          73 KB  conda-forge
    ------------------------------------------------------------
                                           Total:        51.1 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-1_gnu
  boost              conda-forge/linux-64::boost-1.70.0-py37h9de70de_1
  boost-cpp          conda-forge/linux-64::boost-cpp-1.70.0-ha2d47e9_1
  bzip2              conda-forge/linux-64::bzip2-1.0.8-h7f98852_4
  ca-certificates    conda-forge/linux-64::ca-certificates-2020.12.5-ha878542_0
  cairo              conda-forge/linux-64::cairo-1.16.0-h18b612c_1001
  certifi            conda-forge/linux-64::certifi-2020.12.5-py37h89c1867_1
  defusedxml         conda-forge/noarch::defusedxml-0.6.0-py_0
  fontconfig         conda-forge/linux-64::fontconfig-2.13.1-he4413a7_1000
  freetype           conda-forge/linux-64::freetype-2.10.4-h0708190_1
  gettext            conda-forge/linux-64::gettext-0.19.8.1-h0b5b191_1005
  glib               conda-forge/linux-64::glib-2.66.4-hc4f0c31_2
  glib-tools         conda-forge/linux-64::glib-tools-2.66.4-hc4f0c31_2
  icu                conda-forge/linux-64::icu-58.2-hf484d3e_1000
  isodate            conda-forge/noarch::isodate-0.6.0-py_1
  jpeg               conda-forge/linux-64::jpeg-9d-h36c2ea0_0
  lcms2              conda-forge/linux-64::lcms2-2.11-hcbb858e_1
  ld_impl_linux-64   conda-forge/linux-64::ld_impl_linux-64-2.35.1-hea4e1c9_2
  libblas            conda-forge/linux-64::libblas-3.9.0-7_openblas
  libcblas           conda-forge/linux-64::libcblas-3.9.0-7_openblas
  libffi             conda-forge/linux-64::libffi-3.3-h58526e2_2
  libgcc-ng          conda-forge/linux-64::libgcc-ng-9.3.0-h2828fa1_18
  libgcrypt          conda-forge/linux-64::libgcrypt-1.8.7-h36c2ea0_0
  libgfortran-ng     conda-forge/linux-64::libgfortran-ng-9.3.0-hff62375_18
  libgfortran5       conda-forge/linux-64::libgfortran5-9.3.0-hff62375_18
  libglib            conda-forge/linux-64::libglib-2.66.4-h748fe8e_2
  libgomp            conda-forge/linux-64::libgomp-9.3.0-h2828fa1_18
  libgpg-error       conda-forge/linux-64::libgpg-error-1.41-h9c3ff4c_0
  libiconv           conda-forge/linux-64::libiconv-1.16-h516909a_0
  liblapack          conda-forge/linux-64::liblapack-3.9.0-7_openblas
  libopenblas        conda-forge/linux-64::libopenblas-0.3.12-pthreads_h4812303_1
  libpng             conda-forge/linux-64::libpng-1.6.37-h21135ba_2
  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-9.3.0-h6de172a_18
  libtiff            conda-forge/linux-64::libtiff-4.2.0-hdc55705_0
  libtool            conda-forge/linux-64::libtool-2.4.6-h58526e2_1007
  libuuid            conda-forge/linux-64::libuuid-2.32.1-h7f98852_1000
  libwebp-base       conda-forge/linux-64::libwebp-base-1.2.0-h7f98852_0
  libxcb             conda-forge/linux-64::libxcb-1.13-h7f98852_1003
  libxml2            conda-forge/linux-64::libxml2-2.9.9-h13577e0_2
  libxmlsec1         pkgs/main/linux-64::libxmlsec1-1.2.29-h8fe84ac_0
  libxslt            pkgs/main/linux-64::libxslt-1.1.33-h7d1a2b0_0
  lxml               conda-forge/linux-64::lxml-4.4.1-py37h7ec2d77_0
  lz4-c              conda-forge/linux-64::lz4-c-1.9.3-h9c3ff4c_0
  ncurses            conda-forge/linux-64::ncurses-6.2-h58526e2_4
  numpy              conda-forge/linux-64::numpy-1.20.0-py37haa41c4c_0
  olefile            conda-forge/noarch::olefile-0.46-pyh9f0ad1d_1
  openssl            conda-forge/linux-64::openssl-1.1.1i-h7f98852_0
  pandas             conda-forge/linux-64::pandas-1.2.1-py37hdc94413_0
  pcre               conda-forge/linux-64::pcre-8.44-he1b5a44_0
  pillow             conda-forge/linux-64::pillow-8.1.0-py37he6b4880_1
  pip                conda-forge/noarch::pip-21.0.1-pyhd8ed1ab_0
  pixman             conda-forge/linux-64::pixman-0.38.0-h516909a_1003
  pthread-stubs      conda-forge/linux-64::pthread-stubs-0.4-h36c2ea0_1001
  pycairo            conda-forge/linux-64::pycairo-1.20.0-py37h01af8b0_1
  python             conda-forge/linux-64::python-3.7.9-hffdb5ce_0_cpython
  python-dateutil    conda-forge/noarch::python-dateutil-2.8.1-py_0
  python3-saml       pkgs/main/noarch::python3-saml-1.9.0-py_0
  python_abi         conda-forge/linux-64::python_abi-3.7-1_cp37m
  pytz               conda-forge/noarch::pytz-2021.1-pyhd8ed1ab_0
  rdkit              conda-forge/linux-64::rdkit-2019.09.3-py37hb31dc5d_0
  readline           conda-forge/linux-64::readline-8.0-he28a2e2_2
  setuptools         conda-forge/linux-64::setuptools-49.6.0-py37h89c1867_3
  six                conda-forge/noarch::six-1.15.0-pyh9f0ad1d_0
  sqlite             conda-forge/linux-64::sqlite-3.34.0-h74cdb3f_0
  tk                 conda-forge/linux-64::tk-8.6.10-h21135ba_1
  wheel              conda-forge/noarch::wheel-0.36.2-pyhd3deb0d_0
  xmlsec             pkgs/main/linux-64::xmlsec-1.3.3-py37h0e8eec6_0
  xorg-kbproto       conda-forge/linux-64::xorg-kbproto-1.0.7-h7f98852_1002
  xorg-libice        conda-forge/linux-64::xorg-libice-1.0.10-h516909a_0
  xorg-libsm         conda-forge/linux-64::xorg-libsm-1.2.3-h84519dc_1000
  xorg-libx11        conda-forge/linux-64::xorg-libx11-1.6.12-h516909a_0
  xorg-libxau        conda-forge/linux-64::xorg-libxau-1.0.9-h7f98852_0
  xorg-libxdmcp      conda-forge/linux-64::xorg-libxdmcp-1.1.3-h7f98852_0
  xorg-libxext       conda-forge/linux-64::xorg-libxext-1.3.4-h516909a_0
  xorg-libxrender    conda-forge/linux-64::xorg-libxrender-0.9.10-h516909a_1002
  xorg-renderproto   conda-forge/linux-64::xorg-renderproto-0.11.1-h14c3975_1002
  xorg-xextproto     conda-forge/linux-64::xorg-xextproto-7.3.0-h7f98852_1002
  xorg-xproto        conda-forge/linux-64::xorg-xproto-7.0.31-h7f98852_1007
  xz                 conda-forge/linux-64::xz-5.2.5-h516909a_1
  zlib               conda-forge/linux-64::zlib-1.2.11-h516909a_1010
  zstd               conda-forge/linux-64::zstd-1.4.8-ha95c52a_1


Proceed ([y]/n)?

Unfortunately, strict-channel-priority results in conflicts (this is no surprise):

conda create -n rdkit-saml -c conda-forge -c defaults --strict-channel-priority rdkit python3-saml                                                   (base) 107ms  Wed Feb  3 11:52:14 2021
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: \
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
Examining rdkit:   0%|                                                                                                                                                     | 0/5 [00:00<?, ?it| ^failed

CondaError: KeyboardInterrupt

mamba does solve, but still gives rdkit 2019.*:

mamba create -n rdkit-saml -c conda-forge -c defaults --strict-channel-priority rdkit python3-saml                                                 (base) 40s  Wed Feb  3 11:53:03 2021

                  __    __    __    __
                 /  \  /  \  /  \  /  \
                /    \/    \/    \/    \
███████████████/  /██/  /██/  /██/  /████████████████████████
              /  / \   / \   / \   / \  \____
             /  /   \_/   \_/   \_/   \    o \__,
            / _/                       \_____/  `
            |/
        ███╗   ███╗ █████╗ ███╗   ███╗██████╗  █████╗
        ████╗ ████║██╔══██╗████╗ ████║██╔══██╗██╔══██╗
        ██╔████╔██║███████║██╔████╔██║██████╔╝███████║
        ██║╚██╔╝██║██╔══██║██║╚██╔╝██║██╔══██╗██╔══██║
        ██║ ╚═╝ ██║██║  ██║██║ ╚═╝ ██║██████╔╝██║  ██║
        ╚═╝     ╚═╝╚═╝  ╚═╝╚═╝     ╚═╝╚═════╝ ╚═╝  ╚═╝

        mamba (0.7.5) supported by @QuantStack

        GitHub:  https://github.com/mamba-org/mamba
        Twitter: https://twitter.com/QuantStack

█████████████████████████████████████████████████████████████


Looking for: ['rdkit', 'python3-saml']

pkgs/r/linux-64          [====================] (00m:00s) No change
pkgs/r/noarch            [====================] (00m:00s) No change
pkgs/main/noarch         [====================] (00m:00s) Done
pkgs/main/linux-64       [====================] (00m:01s) Done
conda-forge/noarch       [====================] (00m:02s) Done
conda-forge/linux-64     [====================] (00m:07s) Done
Transaction

  Prefix: /home/jaime/.conda/envs/rdkit-saml

  Updating specs:

   - rdkit
   - python3-saml


  Package             Version  Build                Channel                    Size
─────────────────────────────────────────────────────────────────────────────────────
  Install:
─────────────────────────────────────────────────────────────────────────────────────

  _libgcc_mutex           0.1  conda_forge          conda-forge/linux-64     Cached
  _openmp_mutex           4.5  1_gnu                conda-forge/linux-64     Cached
  boost                1.70.0  py38h9de70de_1       conda-forge/linux-64     355 KB
  boost-cpp            1.70.0  ha2d47e9_1           conda-forge/linux-64      21 MB
  bzip2                 1.0.8  h7f98852_4           conda-forge/linux-64     Cached
  ca-certificates   2020.12.5  ha878542_0           conda-forge/linux-64     137 KB
  cairo                1.16.0  h18b612c_1001        conda-forge/linux-64       1 MB
  certifi           2020.12.5  py38h578d9bd_1       conda-forge/linux-64     Cached
  defusedxml            0.6.0  py_0                 conda-forge/noarch        22 KB
  fontconfig           2.13.1  hba837de_1004        conda-forge/linux-64     Cached
  freetype             2.10.4  h0708190_1           conda-forge/linux-64     Cached
  gettext            0.19.8.1  h0b5b191_1005        conda-forge/linux-64     Cached
  glib                 2.66.4  hcd2ae1e_2           conda-forge/linux-64     431 KB
  glib-tools           2.66.4  hcd2ae1e_2           conda-forge/linux-64      85 KB
  icu                    58.2  hf484d3e_1000        conda-forge/linux-64      23 MB
  isodate               0.6.0  py_1                 conda-forge/noarch        25 KB
  jpeg                     9d  h516909a_0           conda-forge/linux-64     Cached
  lcms2                  2.11  hcbb858e_1           conda-forge/linux-64     Cached
  ld_impl_linux-64     2.35.1  hea4e1c9_2           conda-forge/linux-64     Cached
  libblas               3.9.0  7_openblas           conda-forge/linux-64     Cached
  libcblas              3.9.0  7_openblas           conda-forge/linux-64     Cached
  libffi                  3.3  h58526e2_2           conda-forge/linux-64     Cached
  libgcc-ng             9.3.0  h2828fa1_18          conda-forge/linux-64     Cached
  libgcrypt             1.8.7  h36c2ea0_0           conda-forge/linux-64     610 KB
  libgfortran-ng        7.5.0  h14aa051_18          conda-forge/linux-64     Cached
  libgfortran4          7.5.0  h14aa051_18          conda-forge/linux-64     Cached
  libglib              2.66.4  h164308a_2           conda-forge/linux-64       3 MB
  libgomp               9.3.0  h2828fa1_18          conda-forge/linux-64     Cached
  libgpg-error           1.41  h9c3ff4c_0           conda-forge/linux-64     270 KB
  libiconv               1.16  h516909a_0           conda-forge/linux-64     Cached
  liblapack             3.9.0  7_openblas           conda-forge/linux-64     Cached
  libopenblas          0.3.12  pthreads_hb3c22a3_1  conda-forge/linux-64     Cached
  libpng               1.6.37  hed695b0_2           conda-forge/linux-64     359 KB
  libstdcxx-ng          9.3.0  h6de172a_18          conda-forge/linux-64     Cached
  libtiff               4.2.0  hdc55705_0           conda-forge/linux-64     Cached
  libtool               2.4.6  h58526e2_1007        conda-forge/linux-64     497 KB
  libuuid              2.32.1  h14c3975_1000        conda-forge/linux-64     Cached
  libwebp-base          1.2.0  h7f98852_0           conda-forge/linux-64     808 KB
  libxcb                 1.13  h7f98852_1003        conda-forge/linux-64     395 KB
  libxml2              2.9.10  hb55368b_3           pkgs/main/linux-64       Cached
  libxmlsec1           1.2.29  h8fe84ac_0           pkgs/main/linux-64       516 KB
  libxslt              1.1.34  hc22bd24_0           pkgs/main/linux-64       Cached
  lxml                  4.6.2  py38hf1fe3a4_1       conda-forge/linux-64       2 MB
  lz4-c                 1.9.3  h9c3ff4c_0           conda-forge/linux-64     Cached
  ncurses                 6.2  h58526e2_4           conda-forge/linux-64     Cached
  numpy                1.20.0  py38h18fd61f_0       conda-forge/linux-64       6 MB
  olefile                0.46  pyh9f0ad1d_1         conda-forge/noarch       Cached
  openssl              1.1.1i  h7f98852_0           conda-forge/linux-64     Cached
  pandas                1.2.1  py38h51da96c_0       conda-forge/linux-64      12 MB
  pcre                   8.44  he1b5a44_0           conda-forge/linux-64     Cached
  pillow                8.1.0  py38h357d4e7_1       conda-forge/linux-64     Cached
  pip                  21.0.1  pyhd8ed1ab_0         conda-forge/noarch       Cached
  pixman               0.38.0  h516909a_1003        conda-forge/linux-64     Cached
  pthread-stubs           0.4  h36c2ea0_1001        conda-forge/linux-64       5 KB
  pycairo              1.20.0  py38h323dad1_1       conda-forge/linux-64     Cached
  python                3.8.6  hffdb5ce_5_cpython   conda-forge/linux-64      26 MB
  python-dateutil       2.8.1  py_0                 conda-forge/noarch       220 KB
  python3-saml          1.9.0  py_0                 pkgs/main/noarch         227 KB
  python_abi              3.8  1_cp38               conda-forge/linux-64     Cached
  pytz                 2021.1  pyhd8ed1ab_0         conda-forge/noarch       239 KB
  rdkit             2019.09.3  py38hb31dc5d_0       conda-forge/linux-64      24 MB
  readline                8.0  he28a2e2_2           conda-forge/linux-64     Cached
  setuptools           49.6.0  py38h578d9bd_3       conda-forge/linux-64     929 KB
  six                  1.15.0  pyh9f0ad1d_0         conda-forge/noarch       Cached
  sqlite               3.34.0  h74cdb3f_0           conda-forge/linux-64     Cached
  tk                   8.6.10  hed695b0_1           conda-forge/linux-64     Cached
  wheel                0.36.2  pyhd3deb0d_0         conda-forge/noarch       Cached
  xmlsec                1.3.3  py38h0e8eec6_0       pkgs/main/linux-64       290 KB
  xorg-kbproto          1.0.7  h14c3975_1002        conda-forge/linux-64     Cached
  xorg-libice          1.0.10  h516909a_0           conda-forge/linux-64     Cached
  xorg-libsm            1.2.3  h84519dc_1000        conda-forge/linux-64     Cached
  xorg-libx11          1.6.12  h516909a_0           conda-forge/linux-64     Cached
  xorg-libxau           1.0.9  h14c3975_0           conda-forge/linux-64      13 KB
  xorg-libxdmcp         1.1.3  h516909a_0           conda-forge/linux-64      18 KB
  xorg-libxext          1.3.4  h516909a_0           conda-forge/linux-64     Cached
  xorg-libxrender      0.9.10  h516909a_1002        conda-forge/linux-64     Cached
  xorg-renderproto     0.11.1  h14c3975_1002        conda-forge/linux-64     Cached
  xorg-xextproto        7.3.0  h14c3975_1002        conda-forge/linux-64     Cached
  xorg-xproto          7.0.31  h14c3975_1007        conda-forge/linux-64     Cached
  xz                    5.2.5  h516909a_1           conda-forge/linux-64     Cached
  zlib                 1.2.11  h516909a_1010        conda-forge/linux-64     Cached
  zstd                  1.4.8  ha95c52a_1           conda-forge/linux-64     Cached

  Summary:

  Install: 82 packages

  Total download: 124 MB

─────────────────────────────────────────────────────────────────────────────────────

Confirm changes: [Y/n]

So, in short, python3-saml needs to be provided on conda-forge, and possibly some of its dependencies (they might have different names on conda-forge):

    libxmlsec1-1.2.29          |       h8fe84ac_0         516 KB  # NA
    libxslt-1.1.33             |       h7d1a2b0_0         426 KB  # Present
    python3-saml-1.9.0         |             py_0         227 KB  # NA
    xmlsec-1.3.3               |   py37h0e8eec6_0         289 KB  # NA

In case you were wondering, the actual conflict for rdkit 2020.09.* is boost:

$> mamba create -q -n rdkit-saml -c conda-forge -c defaults rdkit=2020.09.\* python3-saml
Encountered problems while solving.
Problem: package rdkit-2020.09.3-py39h045bdbb_0 requires boost >=1.72.0,<1.72.1.0a0, but none of the providers can be installed

yeah, I thought it was boost at first too, but I don't see how that can be true if python3-saml doesn't install boost:

base) glandrum@Badger:/scratch/RDKit_git/build$ conda create -n foo -c conda-forge -c defaults python=3.8 python3-saml
WARNING: A conda environment already exists at '/home/glandrum/miniconda3/envs/foo'
Remove existing environment (y/[n])? y

Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/glandrum/miniconda3/envs/foo

  added / updated specs:
    - python3-saml
    - python=3.8


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    ld_impl_linux-64-2.35.1    |       hea4e1c9_2         618 KB  conda-forge
    libgpg-error-1.41          |       h9c3ff4c_0         270 KB  conda-forge
    lxml-4.6.2                 |   py38hf1fe3a4_1         1.5 MB  conda-forge
    pip-21.0.1                 |     pyhd8ed1ab_0         1.1 MB  conda-forge
    python-3.8.6               |hffdb5ce_5_cpython        26.1 MB  conda-forge
    setuptools-49.6.0          |   py38h578d9bd_3         929 KB  conda-forge
    ------------------------------------------------------------
                                           Total:        30.5 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge
  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-1_gnu
  ca-certificates    conda-forge/linux-64::ca-certificates-2020.12.5-ha878542_0
  certifi            conda-forge/linux-64::certifi-2020.12.5-py38h578d9bd_1
  defusedxml         conda-forge/noarch::defusedxml-0.6.0-py_0
  gettext            conda-forge/linux-64::gettext-0.19.8.1-h0b5b191_1005
  icu                conda-forge/linux-64::icu-58.2-hf484d3e_1000
  isodate            conda-forge/noarch::isodate-0.6.0-py_1
  ld_impl_linux-64   conda-forge/linux-64::ld_impl_linux-64-2.35.1-hea4e1c9_2
  libffi             conda-forge/linux-64::libffi-3.3-h58526e2_2
  libgcc-ng          conda-forge/linux-64::libgcc-ng-9.3.0-h2828fa1_18
  libgcrypt          conda-forge/linux-64::libgcrypt-1.8.7-h36c2ea0_0
  libgomp            conda-forge/linux-64::libgomp-9.3.0-h2828fa1_18
  libgpg-error       conda-forge/linux-64::libgpg-error-1.41-h9c3ff4c_0
  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-9.3.0-h6de172a_18
  libtool            conda-forge/linux-64::libtool-2.4.6-h58526e2_1007
  libxml2            pkgs/main/linux-64::libxml2-2.9.10-hb55368b_3
  libxmlsec1         pkgs/main/linux-64::libxmlsec1-1.2.29-h8fe84ac_0
  libxslt            pkgs/main/linux-64::libxslt-1.1.34-hc22bd24_0
  lxml               conda-forge/linux-64::lxml-4.6.2-py38hf1fe3a4_1
  ncurses            conda-forge/linux-64::ncurses-6.2-h58526e2_4
  openssl            conda-forge/linux-64::openssl-1.1.1i-h7f98852_0
  pip                conda-forge/noarch::pip-21.0.1-pyhd8ed1ab_0
  python             conda-forge/linux-64::python-3.8.6-hffdb5ce_5_cpython
  python3-saml       pkgs/main/noarch::python3-saml-1.9.0-py_0
  python_abi         conda-forge/linux-64::python_abi-3.8-1_cp38
  readline           conda-forge/linux-64::readline-8.0-he28a2e2_2
  setuptools         conda-forge/linux-64::setuptools-49.6.0-py38h578d9bd_3
  six                conda-forge/noarch::six-1.15.0-pyh9f0ad1d_0
  sqlite             conda-forge/linux-64::sqlite-3.34.0-h74cdb3f_0
  tk                 conda-forge/linux-64::tk-8.6.10-h21135ba_1
  wheel              conda-forge/noarch::wheel-0.36.2-pyhd3deb0d_0
  xmlsec             pkgs/main/linux-64::xmlsec-1.3.3-py38h0e8eec6_0
  xz                 conda-forge/linux-64::xz-5.2.5-h516909a_1
  zlib               conda-forge/linux-64::zlib-1.2.11-h516909a_1010


Proceed ([y]/n)? n

more data, ignoring the rdkit entirely, python3-saml will not install with --strict-channel-priority:

base) glandrum@Badger:/scratch/RDKit_git/build$ conda create -n foo -c conda-forge -c defaults --strict-channel-priority python=3.8 python3-saml
Collecting package metadata (current_repodata.json): done
Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
Collecting package metadata (repodata.json): done
Solving environment: / 
Found conflicts! Looking for incompatible packages.
This can take several minutes.  Press CTRL-C to abort.
failed                                                                                                                                                        

UnsatisfiableError: The following specifications were found to be incompatible with each other:

Output in format: Requested package -> Available versions

Package python conflicts for:
python3-saml -> python
python=3.8
python3-saml -> defusedxml[version='>=0.5.0'] -> python[version='2.7.*|3.5.*|3.6.*|>=3.6,<3.7.0a0|>=3.5,<3.6.0a0|>=2.7,<2.8.0a0|>=3.7,<3.8.0a0|3.4.*|>=3.8,<3.9.0a0']
Note that strict channel priority may have removed packages required for satisfiability.

I don't see how that can be true if python3-saml doesn't install boost:

It might be a secondary (or n-ary) dependency of their dependencies 🤷

Nice find about python3-saml. That's a strong case so this is provided in conda-forge and goes beyond RDKit. @AlDossetter, can you raise this issue in https://github.com/conda-forge/staged-recipes/issues and tag me? I'm a bit oversubscribed right now but I'll look into that whenever I have some time.

I don't see how that can be true if python3-saml doesn't install boost:

It might be a secondary (or n-ary) dependency of their dependencies

If that were the case, wouldn't boost still end up being installed if I install python3-saml? Because that's not what happens.

That would be the natural thing, but some packages use run_constrained too:

Packages that are optional at runtime but must obey the supplied additional constraint if they are installed.

I don't think that's what's happening, but untangling this is a rabbit hole and anyway we will need a conda-forge package in the end...

Added terse part of the issue here to conda-forge/staged-recipes and tagged in @jaimergp