Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mamba solving error messages feedback #2078

Closed
AntoinePrv opened this issue Nov 2, 2022 · 24 comments
Closed

Mamba solving error messages feedback #2078

AntoinePrv opened this issue Nov 2, 2022 · 24 comments

Comments

@AntoinePrv
Copy link
Member

AntoinePrv commented Nov 2, 2022

This is issue is meant to collect feedback on the experimental error messages for statisfiability errors (package conflicts).

You ended up here because you set experimental_sat_error_message in your config.

We are looking for more example of conflicts in the ecosystem that are not well explained with the current implementation.
Especially edge cases such as:

  • Multi-channel conflicts,
  • Update conflicts,
  • Constraints conflicts (run_constrained in conda recipes),
  • Missing/outdated virtual packages (those starting with __ that must be present on the system),
  • Large build variants.

We are also gathering feedback on the current form of the messages.

  • Is the wording correct / intelligible? Can it be improved?
  • Is the tree an adequate representation? Is it too detailed? Not detailed enough?
  • Should we show information about the build variants/string?
  • Is the way we present conflict appropriate? The tricky things with conflicts (as opposed to missing packages) is that their are not an isolated problem, they forbid that two packages be installed at the same time, but each of them could be installed individually. The way we deal with it is that the first time we encounter a conflict, we say we can install the package, then the second time, we say it is a conflict.

Please also share things that you like as well, so they don't get removed for lack of support.

Please share feedback/example with the latest version of mamba/micromamba and report the version in your message (for history).

@jonashaag
Copy link
Collaborator

Does micromamba 1.0.0 already have conflict tree output? If so how do I enable it?

@AntoinePrv
Copy link
Member Author

Not yet 😅 I'm writing this issue to put the link in the in the message.

@johnhany97
Copy link
Contributor

Today I tried to run micromamba install -n my_env "python 3.9.*" "python 3.10.*" -c conda-forge to look at what the errors looked like but got this interesting result:

    ================== Experimental satisfiability error messages ==================
    You are seeing this because you set `experimental_sat_error_message: true`
    Use the following issue to share feedback on this experimental feature
       https://github.com/mamba-org/mamba/issues/2078

    ====================================== Legacy messages (old) =======================================
    Encountered problems while solving:
      - cannot install both python-3.9.0-hd001b3a_0_cpython and python-3.10.0-h43b31ca_1_cpython

    The environment can't be solved, aborting the operation
    =================================== Experimental messages (new) ====================================
    The following packages are incompatible
    └─ python 3.10.* * is requested and can be installed.
    ====================================================================================================

Notably, we seem to lose the information about python 3.9.* in the tree

@wolfv
Copy link
Member

wolfv commented Dec 2, 2022

We had an issue with libxml2 versions being yanked in the robostack project, and the new error message helped!

Error log
micromamba create -n test_broken_install -c conda-forge -c robostack ros-noetic-rviz python==3.9 ros-distro-mutex==0.3

                                           __
          __  ______ ___  ____ _____ ___  / /_  ____ _
         / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/
        / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ /
       / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/
      /_/

warning  libmamba 'root_prefix' set with default value: /home/ruben/micromamba
robostack/linux-64                                            No change
robostack/noarch                                              No change
conda-forge/noarch                                  10.4MB @   4.3MB/s  2.5s
conda-forge/linux-64                                28.0MB @   4.7MB/s  6.2s
error    libmamba Could not solve for environment specs
    ================== Experimental satisfiability error messages ==================
    You are seeing this because you set `experimental_sat_error_message: true`
    Use the following issue to share feedback on this experimental feature
       https://github.com/mamba-org/mamba/issues/2078
    
    ====================================== Legacy messages (old) =======================================
    Encountered problems while solving:
      - package ros-noetic-tf-1.13.2-py39hab05589_13 requires graphviz >=2.47.3,<3.0a0, but none of the providers can be installed
    
    The environment can't be solved, aborting the operation
    =================================== Experimental messages (new) ====================================
    The following packages are incompatible
    ├─ ros-distro-mutex 0.3 * is requested and can be installed;
    └─ ros-noetic-rviz * * is uninstallable because there are no viable options
       ├─ ros-noetic-rviz [1.14.13|1.14.14|1.14.15|1.14.19] would require
       │  ├─ qt >=5.12.9,<5.13.0a0 * with the potential options
       │  │  ├─ qt [5.12.9] would require
       │  │  │  └─ icu >=69.1,<70.0a0 *, which can be installed;
       │  │  ├─ qt [5.12.9] would require
       │  │  │  └─ icu >=67.1,<68.0a0 *, which can be installed;
       │  │  └─ qt [5.12.9] would require
       │  │     └─ icu >=68.1,<69.0a0 *, which can be installed;
       │  └─ ros-noetic-laser-geometry * * but there are no viable options
       │     ├─ ros-noetic-laser-geometry 1.6.7 would require
       │     │  └─ ros-noetic-tf * * but there are no viable options
       │     │     ├─ ros-noetic-tf 1.13.2 would require
       │     │     │  └─ graphviz >=2.47.3,<3.0a0 *, which requires
       │     │     │     └─ librsvg [>=2.50.7,<3.0a0|>=2.52.0,<3.0a0|...|>=2.54.4,<3.0a0] [*], which requires
       │     │     │        └─ libxml2 [>=2.9.12,<2.11.0a0|>=2.9.13,<2.11.0a0|>=2.9.14,<2.11.0a0] [*], which requires
       │     │     │           └─ icu >=70.1,<71.0a0 *, which conflicts with any installable versions previously reported;
       │     │     ├─ ros-noetic-tf 1.13.2 would require
       │     │     │  └─ ros-distro-mutex 0.2.* *, which conflicts with any installable versions previously reported;
       │     │     └─ ros-noetic-tf [1.13.2] would require
       │     │        └─ ros-distro-mutex 0.1.* *, which conflicts with any installable versions previously reported;
       │     ├─ ros-noetic-laser-geometry 1.6.7 would require
       │     │  └─ ros-distro-mutex 0.2.* *, which conflicts with any installable versions previously reported;
       │     └─ ros-noetic-laser-geometry [1.6.5|1.6.7] would require
       │        └─ ros-distro-mutex 0.1.* *, which conflicts with any installable versions previously reported;
       ├─ ros-noetic-rviz 1.14.10 would require
       │  └─ ros-distro-mutex 0.2.* *, which conflicts with any installable versions previously reported;
       └─ ros-noetic-rviz [1.14.4|1.14.5|1.14.7] would require
          └─ ros-distro-mutex 0.1.* *, which conflicts with any installable versions previously reported.
    ====================================================================================================
    
critical libmamba Could not solve for environment specs

@AntoinePrv
Copy link
Member Author

Thanks @johnhany97 for the feedback.
With #2149 (WIP), we'll have:

error    libmamba The following packages are incompatible
    ├─ python 3.10.* * is requested and can be installed;
    └─ python 3.9.* * is uninstallable because it conflicts with any installable versions previously reported.

@jorisvandenbossche
Copy link

I had a "fun" conflict, and therefore thought to try out the experimental new error messages of micromamba:

micromamba install qgis libgdal-arrow-parquet

$ micromamba install qgis libgdal-arrow-parquet

                                       __
      __  ______ ___  ____ _____ ___  / /_  ____ _
     / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/
    / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ /
   / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/
  /_/

conda-forge/linux-64 Using cache
conda-forge/noarch Using cache
pkgs/main/linux-64 No change
pkgs/main/noarch No change
pkgs/r/linux-64 No change
pkgs/r/noarch No change
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY
error libmamba Could not solve for environment specs
================== Experimental satisfiability error messages ==================
You are seeing this because you set experimental_sat_error_message: true
Use the following issue to share feedback on this experimental feature
#2078

====================================== Legacy messages (old) =======================================
Encountered problems while solving:
  - nothing provides dateutil needed by qgis-2.16.2-py27_0

The environment can't be solved, aborting the operation
=================================== Experimental messages (new) ====================================
The following packages are incompatible
├─ libgdal-arrow-parquet * * is installable and it requires
│  ├─ geos >=3.11.1,<3.11.2.0a0 *, which can be installed;
│  ├─ libgdal 3.6.0 hc956b1e_12 with the potential options
│  │  ├─ libgdal 3.6.0 would require
│  │  │  └─ openssl >=1.1.1s,<1.1.2a *, which can be installed;
│  │  ├─ libgdal 3.6.0 would require
│  │  ├─ libgdal 3.6.0 would require
│  │  ├─ libgdal 3.6.0 would require
│  │  ├─ libgdal 3.6.0 would require
│  │  │  ├─ libpq >=15.1,<16.0a0 * with the potential options
│  │  │  │  ├─ libpq [15.1] would require
│  │  │  │  │  └─ openssl >=1.1.1s,<1.1.2a *, which can be installed;
│  │  │  │  └─ libpq [15.1] would require
│  │  │  │     └─ openssl >=3.0.7,<4.0a0 *, which conflicts with any installable versions previously reported;
│  │  │  ├─ openssl >=1.1.1s,<1.1.2a *, which can be installed;
│  │  │  └─ tiledb >=2.13.0,<2.14.0a0 * with the potential options
│  │  │     ├─ tiledb 2.13.0 would require
│  │  │     │  └─ openssl >=1.1.1s,<1.1.2a *, which can be installed;
│  │  │     └─ tiledb 2.13.0 would require
│  │  │        └─ openssl >=3.0.7,<4.0a0 *, which conflicts with any installable versions previously reported;
│  │  └─ libgdal 3.6.0 would require
│  ├─ libpq [15.1], which can be installed (as previously explained);
│  └─ tiledb 2.13.0, which can be installed (as previously explained);
└─ qgis * * is uninstallable because there are no viable options
   ├─ qgis [2.16.2|2.16.3|...|2.18.8] would require
   │  └─ dateutil * *, which does not exsist (perhaps a missing channel);
   ├─ qgis [3.10.0|3.4.11|...|3.8.3] would require
   │  └─ geos >=3.7.2,<3.7.3.0a0 *, which conflicts with any installable versions previously reported;
   ├─ qgis [3.10.0|3.10.1|3.10.2|3.10.3|3.12.0] would require
   │  └─ geos >=3.8.0,<3.8.1.0a0 *, which conflicts with any installable versions previously reported;
   ├─ qgis [3.10.10|3.10.12|...|3.16.3] would require
   │  └─ geos >=3.8.1,<3.8.2.0a0 *, which conflicts with any installable versions previously reported;
   ├─ qgis [3.16.10|3.16.11|...|3.18.3] would require
   │  └─ geos >=3.9.1,<3.9.2.0a0 *, which conflicts with any installable versions previously reported;
   ├─ qgis [3.16.3|3.16.4|3.16.5|3.16.6|3.18.0] would require
   │  └─ geos >=3.9.0,<3.9.1.0a0 *, which conflicts with any installable versions previously reported;
   ├─ qgis [3.18.3] would require
   │  └─ geos >=3.10.2,<3.10.3.0a0 *, which conflicts with any installable versions previously reported;
   ├─ qgis [3.18.3] would require
   │  └─ geos >=3.10.1,<3.10.2.0a0 *, which conflicts with any installable versions previously reported;
   ├─ qgis [3.18.3] would require
   │  └─ geos >=3.10.0,<3.10.1.0a0 *, which conflicts with any installable versions previously reported;
   ├─ qgis [3.22.11|3.28.1] would require
   │  └─ geos >=3.11.0,<3.11.1.0a0 *, which conflicts with any installable versions previously reported;
   ├─ qgis [3.4.6|3.4.7|...|3.8.0] would require
   │  └─ geos >=3.7.1,<3.7.2.0a0 *, which conflicts with any installable versions previously reported;
   ├─ qgis [3.28.1] would require
   │  ├─ geos >=3.11.1,<3.11.2.0a0 *, which can be installed;
   │  ├─ libpq >=14.5,<15.0a0 *, which requires
   │  └─ pdal >=2.4.3,<2.5.0a0 * with the potential options
   │     ├─ pdal [2.4.3] would require
   │     │  ├─ libpq [15.1], which can be installed (as previously explained);
   │     │  └─ openssl >=3.0.7,<4.0a0 *, which can be installed;
   │     ├─ pdal [2.4.3] would require
   │     │  └─ libgdal [>=3.5.1,<3.6.0a0|>=3.5.2,<3.6.0a0] [*] but there are no viable options
   │     │     ├─ libgdal [3.5.0|3.5.1|3.5.2|3.5.3|3.6.0] would require
   │     │     │  └─ geos >=3.11.0,<3.11.1.0a0 *, which conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     ├─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     │     └─ libgdal 3.5.3 conflicts with any installable versions previously reported;
   │     └─ pdal [2.4.3] would require
   │        ├─ openssl >=3.0.7,<4.0a0 *, which can be installed;
   │        └─ tiledb >=2.11.3,<2.12.0a0 *, which requires
   └─ qgis 3.28.1 would require
      ├─ gdal * * with the potential options
      │  ├─ gdal [3.6.0] would require
      │  │  ├─ libgdal 3.6.0, which cannot be installed (as previously explained);
      │  │  └─ openssl >=3.0.7,<4.0a0 *, which conflicts with any installable versions previously reported;
      │  ├─ gdal [2.4.1|2.4.2|2.4.3|3.0.1|3.0.2] would require
      │  │  └─ libgdal [2.4.1|2.4.2|2.4.3|3.0.1|3.0.2] [ha50d65d_9|hc4f5fd6_10|...|hc7cfd23_2], which requires
      │  │     └─ geos >=3.7.2,<3.7.3.0a0 *, which conflicts with any installable versions previously reported;
      │  ├─ gdal [2.4.4|3.0.2|3.0.3|3.0.4] would require
      │  │  └─ libgdal [2.4.4|3.0.2|3.0.3|3.0.4] [h2b6fda6_0|h20022a4_8|...|h20022a4_0], which requires
      │  │     └─ geos >=3.8.0,<3.8.1.0a0 *, which conflicts with any installable versions previously reported;
      │  ├─ gdal [2.4.4|3.0.4|...|3.2.1] would require
      │  │  └─ libgdal [2.4.4|3.0.4|...|3.2.1] [h5439ffd_1|h3dfc09a_6|...|h96b6e7a_2], which requires
      │  │     └─ geos >=3.8.1,<3.8.2.0a0 *, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.1.4|3.2.1|...|3.3.3] would require
      │  │  └─ libgdal [3.1.4|3.2.1|...|3.3.3] [h07ae0cd_18|h3215d8d_15|...|h356f897_0], which requires
      │  │     └─ geos >=3.9.1,<3.9.2.0a0 *, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.1.4|3.2.1] would require
      │  │  └─ libgdal [3.1.4|3.2.1] [h0a4f56a_5|hbde00c8_6|h0a4f56a_4|hbde00c8_5], which requires
      │  │     └─ geos >=3.9.0,<3.9.1.0a0 *, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.3.3|3.4.0|3.4.1] would require
      │  │  └─ libgdal [3.3.3|3.4.0|3.4.1] [h1504ab5_10|h1504ab5_12|...|h5ee51d2_0], which requires
      │  │     └─ geos >=3.10.1,<3.10.2.0a0 *, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.3.3|3.4.1|3.4.2|3.4.3|3.5.0] would require
      │  │  └─ libgdal [3.3.3|3.4.1|3.4.2|3.4.3|3.5.0] [h4ae554a_15|h7b6f8d3_15|...|hd131f80_2], which requires
      │  │     └─ geos >=3.10.2,<3.10.3.0a0 *, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.3.3|3.4.0] would require
      │  │  └─ libgdal [3.3.3|3.4.0] [h18e3bf0_2|h269b7ac_3|...|hc0e84f1_3], which requires
      │  │     └─ geos >=3.10.0,<3.10.1.0a0 *, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.0] would require
      │  │  └─ libgdal [3.5.0] [h31d7bda_3|h59d0e54_4|hc0ebe42_4|he21a14a_3], which requires
      │  │     └─ geos >=3.10.3,<3.10.4.0a0 *, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.0|3.5.1|3.5.2|3.5.3|3.6.0] would require
      │  │  └─ libgdal [3.5.0|3.5.1|3.5.2|3.5.3|3.6.0], which cannot be installed (as previously explained);
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 h7bccd54_2, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 h2d85cf6_2, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 h7bccd54_2, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 h2d85cf6_2, which can be installed;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 h2c497fb_10, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 h46dac61_8, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 h8b86210_9, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 hcb70f40_3, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 hcb70f40_4, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 h669b3df_5, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 hab1f3de_6, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 h9032eb1_7, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 h2d23f43_10, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 h867e046_8, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 h7eed13e_9, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 hb03553a_3, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 hb03553a_4, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 h7516191_5, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 he691a7b_6, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.5.3] would require
      │  │  └─ libgdal 3.5.3 hd850ce1_7, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 hc956b1e_11, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  ├─ libgdal 3.6.0, which can be installed (as previously explained);
      │  │  └─ openssl >=1.1.1s,<1.1.2a *, which can be installed;
      │  ├─ gdal 3.6.0 would require
      │  │  ├─ libgdal 3.6.0, which cannot be installed (as previously explained);
      │  │  └─ python_abi 3.10.* *_cp310, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  ├─ libgdal 3.6.0, which can be installed (as previously explained);
      │  │  └─ openssl >=3.0.7,<4.0a0 *, which conflicts with any installable versions previously reported;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 h96922bd_10, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 h98eee4c_3, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 h5733059_4, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 ha189470_5, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 ha189470_6, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 ha189470_7, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 hd791597_8, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 h8a24986_9, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 hedffb84_11, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  ├─ libgdal 3.6.0, which cannot be installed (as previously explained);
      │  │  └─ python_abi 3.10.* *_cp310, which can be installed;
      │  ├─ gdal 3.6.0 would require
      │  │  ├─ libgdal 3.6.0, which cannot be installed (as previously explained);
      │  │  └─ python_abi 3.10.* *_cp310, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 h7628b6d_10, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 h6a6fec7_3, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 he1fd974_4, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 hf51d2d0_5, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 hf51d2d0_6, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 hf51d2d0_7, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 h86cbade_8, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  └─ libgdal 3.6.0 h0a627c1_9, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  ├─ libgdal 3.6.0, which cannot be installed (as previously explained);
      │  │  └─ python_abi 3.8.* *_cp38, which can be installed;
      │  ├─ gdal 3.6.0 would require
      │  │  ├─ libgdal 3.6.0, which cannot be installed (as previously explained);
      │  │  └─ python_abi 3.8.* *_cp38, which can be installed;
      │  ├─ gdal 3.6.0 would require
      │  │  ├─ libgdal 3.6.0, which cannot be installed (as previously explained);
      │  │  └─ python_abi 3.8.* *_cp38, which can be installed;
      │  ├─ gdal [3.6.0] would require
      │  │  ├─ libgdal 3.6.0, which cannot be installed (as previously explained);
      │  │  └─ python_abi 3.9.* *_cp39, which can be installed;
      │  ├─ gdal 3.6.0 would require
      │  │  ├─ libgdal 3.6.0, which cannot be installed (as previously explained);
      │  │  └─ python_abi 3.9.* *_cp39, which can be installed;
      │  ├─ gdal 3.6.0 would require
      │  │  ├─ libgdal 3.6.0, which cannot be installed (as previously explained);
      │  │  └─ python_abi 3.9.* *_cp39, which can be installed;
      │  └─ gdal [2.2.2|2.2.4|...|3.4.1] conflicts with any installable versions previously reported;
      ├─ geos >=3.11.1,<3.11.2.0a0 *, which can be installed;
      ├─ libpq [14.5], which cannot be installed (as previously explained);
      ├─ libsqlite >=3.40.0,<4.0a0 *, which requires
      │  └─ libzlib >=1.2.13,<1.3.0a0 *, which requires
      │     └─ zlib 1.2.13 *_4, which can be installed;
      ├─ pdal [2.4.3], which can be installed (as previously explained);
      ├─ proj >=9.1.0,<9.1.1.0a0 *, which requires
      │  └─ sqlite >=3.39.3,<4.0a0 * with the potential options
      │     ├─ sqlite 3.40.0 would require
      │     │  └─ readline >=8.1.2,<9.0a0 *, which can be installed;
      │     ├─ sqlite 3.39.3 would require
      │     │  └─ libsqlite 3.39.3 h753d276_0, which conflicts with any installable versions previously reported;
      │     ├─ sqlite 3.39.4 would require
      │     │  └─ libsqlite 3.39.4 h753d276_0, which conflicts with any installable versions previously reported;
      │     └─ sqlite [3.39.3|3.40.0] conflicts with any installable versions previously reported;
      ├─ psycopg2 * * with the potential options
      │  ├─ psycopg2 2.9.3 would require
      │  │  └─ libpq [14.5], which cannot be installed (as previously explained);
      │  ├─ psycopg2 [2.6.1|2.6.2|...|2.8.4] would require
      │  │  └─ python_abi * *_cp27mu, which can be installed;
      │  ├─ psycopg2 [2.6.1|2.6.2|2.7.1] would require
      │  │  └─ python 3.4* *, which requires
      │  │     └─ sqlite 3.13.* *, which conflicts with any installable versions previously reported;
      │  ├─ psycopg2 [2.6.1|2.6.2|...|2.7.5] would require
      │  │  └─ python [3.5*|>=3.5,<3.6.0a0] [*] but there are no viable options
      │  │     ├─ python [3.5.1|3.5.2] would require
      │  │     │  └─ sqlite 3.9.* *, which conflicts with any installable versions previously reported;
      │  │     ├─ python [3.4.5|3.5.2|3.5.3|3.5.4], which cannot be installed (as previously explained);
      │  │     ├─ python [3.5.4|3.5.5] would require
      │  │     │  └─ zlib 1.2.11 *, which conflicts with any installable versions previously reported;
      │  │     ├─ python 3.5.5 would require
      │  │     │  └─ readline >=7.0,<8.0a0 *, which conflicts with any installable versions previously reported;
      │  │     └─ python [3.5.4|3.5.5|3.5.6] conflicts with any installable versions previously reported;
      │  ├─ psycopg2 [2.6.2|2.7.1|...|2.8.4] would require
      │  │  └─ python_abi * *_cp36m, which can be installed;
      │  ├─ psycopg2 [2.7.5|2.7.6|2.7.6.1] would require
      │  │  └─ libpq >=10.5,<11.0a0 * but there are no viable options
      │  │     ├─ libpq [10.5|10.6] would require
      │  │     │  └─ readline >=7.0,<8.0a0 *, which conflicts with any installable versions previously reported;
      │  │     └─ libpq 10.5 conflicts with any installable versions previously reported;
      │  ├─ psycopg2 [2.7.5|2.7.7|...|2.8.4] would require
      │  │  └─ python_abi * *_cp37m, which can be installed;
      │  ├─ psycopg2 [2.7.7] would require
      │  │  └─ libpq [10.5|10.6], which cannot be installed (as previously explained);
      │  ├─ psycopg2 [2.8.4] would require
      │  │  └─ python_abi * *_cp38, which can be installed;
      │  ├─ psycopg2 [2.8.5|2.8.6|2.9|2.9.1] would require
      │  │  └─ python_abi 3.6.* *_cp36m, which can be installed;
      │  ├─ psycopg2 [2.8.5|2.8.6] would require
      │  │  └─ python_abi 3.6 *_pypy36_pp73, which can be installed;
      │  ├─ psycopg2 [2.8.5|2.8.6|...|2.9.3] would require
      │  │  └─ python_abi 3.7.* *_cp37m, which can be installed;
      │  ├─ psycopg2 [2.8.5|2.8.6|...|2.9.3] would require
      │  │  └─ python_abi 3.8.* *_cp38, which can be installed;
      │  ├─ psycopg2 [2.8.6|2.9|2.9.1|2.9.2|2.9.3] would require
      │  │  └─ python_abi 3.9.* *_cp39, which can be installed;
      │  ├─ psycopg2 [2.9.1|2.9.2|2.9.3] would require
      │  │  └─ python_abi 3.10.* *_cp310, which can be installed;
      │  └─ psycopg2 [2.7.3.1|2.7.3.2|...|2.9.3] conflicts with any installable versions previously reported;
      └─ python_abi 3.11.* *_cp311, which conflicts with any installable versions previously reported.
====================================================================================================

critical libmamba Could not solve for environment specs

It is a very long error message (although certainly better than the old "nothing provides dateutil needed by qgis-2.16.2-py27_0" which seems completely unrelated :)).
My hunch is that has something to do with either qgis still requiring libpq 14, while the latest libgdal 3.6.0 builds require libpq 15 (and this libgdal-arrow-parquet is only added in the latest gdal builds, using an exact pin to the libgdal build), or either something to do with the ongoing openssl migration (I see some 1.1.1 vs 3 messages).

General feedback: because libgdal has many builds for a single version, the error message tends to be quite repetitive (repeating the same conflict message for many build numbers). Of course, there might be small differences between those builds that are essential to make something installable or not, so I don't know if that is easy to reduce.

Something else I noticed when doing micromamba install qgis libgdal=3.6=hc956b1e_12 (installing the specific gdal build that the libgdal-arrow-parquet would need), it also shows a lot of messages about older libgdal versions (which all clearly are not really relevant, since I am specifically asking for libgdal 3.6)

@shughes-uk
Copy link
Contributor

shughes-uk commented Dec 15, 2022

Using the new error messages seems to result in a segfault sometimes, apologies for the very verbose command here. It seems to fail the first time, then segfault the second time you run it. Using the micromamba container

micromamba create -r /opt/coiled/rt -p /opt/coiled/env -y --no-pyc -c conda-forge conda-forge::zstd~=1.5.2 conda-forge::zlib~=1.2.13 conda-forge::zipp~=3.11.0 conda-forge::zict~=2.2.0 conda-forge::zeromq~=4.3.4 conda-forge::zarr~=2.13.3 conda-forge::yarl~=1.8.1 conda-forge::yaml~=0.2.5 conda-forge::xz~=5.2.6 conda-forge::xyzservices~=2022.9.0 conda-forge::xorg-libxdmcp~=1.1.3 conda-forge::xorg-libxau~=1.0.9 conda-forge::xgboost~=1.7.1 conda-forge::xerces-c~=3.2.4 conda-forge::xarray~=2022.11.0 conda-forge::wrapt~=1.14.1 conda-forge::widgetsnbextension~=3.6.1 conda-forge::wheel~=0.38.4 conda-forge::websocket-client~=1.4.2 conda-forge::webencodings~=0.5.1 conda-forge::wcwidth~=0.2.5 conda-forge::urllib3~=1.26.13 conda-forge::unicodedata2~=15.0.0 conda-forge::tzdata==2022g conda-forge::typing_extensions~=4.4.0 conda-forge::typing-extensions~=4.4.0 conda-forge::traitlets~=5.7.1 conda-forge::tornado==6.1 conda-forge::toolz~=0.12.0 conda-forge::tomli~=2.0.1 conda-forge::tk~=8.6.12 conda-forge::tinycss2~=1.2.1 conda-forge::tiledb~=2.13.0 conda-forge::threadpoolctl~=3.1.0 conda-forge::textual~=0.1.18 conda-forge::terminado~=0.17.1 conda-forge::tblib~=1.7.0 conda-forge::stack_data~=0.6.2 conda-forge::sqlite~=3.40.0 conda-forge::spectate~=1.0.1 conda-forge::soupsieve~=2.3.2.post1 conda-forge::sortedcontainers~=2.4.0 conda-forge::sniffio~=1.3.0 conda-forge::snappy~=1.1.9 conda-forge::six~=1.16.0 conda-forge::simpervisor==0.4 conda-forge::shapely~=2.0.0 conda-forge::setuptools~=65.5.1 conda-forge::scipy~=1.9.3 conda-forge::scikit-learn~=1.1.3 conda-forge::s3transfer~=0.6.0 conda-forge::s3fs~=2022.11.0 conda-forge::rsa==4.9 conda-forge::rich~=12.6.0 conda-forge::requests-oauthlib~=1.3.1 conda-forge::requests~=2.28.1 conda-forge::readline~=8.1.2 conda-forge::re2~=2022.6.1 conda-forge::qhull==2020.2 conda-forge::pyzmq~=24.0.1 conda-forge::pyu2f~=0.1.5 conda-forge::pytz==2022.6 conda-forge::python_abi==3.10 conda-forge::python-dateutil~=2.8.2 conda-forge::python==3.10.8 conda-forge::pyrsistent~=0.19.2 conda-forge::pyproj~=3.4.1 conda-forge::pyparsing~=3.0.9 conda-forge::pynvml~=11.4.1 conda-forge::pycparser==2.21 conda-forge::pyasn1-modules~=0.2.7 conda-forge::pyasn1~=0.4.8 conda-forge::pyarrow~=10.0.1 conda-forge::pyopenssl~=22.1.0 conda-forge::py-xgboost~=1.7.1 conda-forge::pure_eval~=0.2.2 conda-forge::ptyprocess~=0.7.0 conda-forge::pthread-stubs==0.4 conda-forge::psutil~=5.9.4 conda-forge::protobuf~=4.21.11 conda-forge::prompt-toolkit~=3.0.36 conda-forge::prometheus_client~=0.15.0 conda-forge::proj~=9.1.0 conda-forge::postgresql==15.1 conda-forge::poppler-data~=0.4.11 conda-forge::poppler~=22.12.0 conda-forge::platformdirs~=2.6.0 conda-forge::pkgutil-resolve-name~=1.3.10 conda-forge::pixman~=0.40.0 conda-forge::pip~=22.3.1 conda-forge::pickleshare~=0.7.5 conda-forge::pexpect~=4.8.0 conda-forge::pcre2==10.40 conda-forge::partd~=1.3.0 conda-forge::parso~=0.8.3 conda-forge::parquet-cpp~=1.5.1 conda-forge::pandocfilters~=1.5.0 conda-forge::pandoc~=2.19.2 conda-forge::pandas==1.5.2 conda-forge::packaging==22.0 conda-forge::orc~=1.8.1 conda-forge::openssl~=3.0.7 conda-forge::openjpeg~=2.5.0 conda-forge::oauthlib~=3.2.2 conda-forge::numpy==1.23.5 conda-forge::numcodecs~=0.10.2 conda-forge::numba~=0.56.3 conda-forge::nss==3.78 conda-forge::nspr==4.35 conda-forge::notebook-shim~=0.2.2 conda-forge::notebook~=6.5.2 conda-forge::networkx~=2.8.8 conda-forge::nest-asyncio~=1.5.6 conda-forge::ncurses==6.3 conda-forge::nbformat~=5.7.0 conda-forge::nbconvert-pandoc~=7.2.6 conda-forge::nbconvert~=7.2.6 conda-forge::nbclient~=0.7.2 conda-forge::nbclassic~=0.4.8 conda-forge::munkres~=1.1.4 conda-forge::munch~=2.5.0 conda-forge::multipledispatch~=0.6.0 conda-forge::multidict~=6.0.2 conda-forge::msgpack-python==1.0.4 conda-forge::mistune~=2.0.4 conda-forge::matplotlib-inline~=0.1.6 conda-forge::matplotlib-base~=3.6.2 conda-forge::mapclassify~=2.4.3 conda-forge::lz4-c~=1.9.3 conda-forge::lz4~=4.0.2 conda-forge::locket~=1.0.0 conda-forge::llvmlite~=0.39.1 conda-forge::llvm-openmp~=15.0.6 conda-forge::libzlib~=1.2.13 conda-forge::libzip~=1.9.2 conda-forge::libxml2~=2.10.3 conda-forge::libxgboost~=1.7.1 conda-forge::libxcb==1.13 conda-forge::libwebp-base~=1.2.4 conda-forge::libutf8proc~=2.8.0 conda-forge::libtiff~=4.4.0 conda-forge::libthrift~=0.16.0 conda-forge::libssh2~=1.10.0 conda-forge::libsqlite~=3.40.0 conda-forge::libspatialite~=5.0.1 conda-forge::libspatialindex~=1.9.3 conda-forge::libsodium~=1.0.18 conda-forge::librttopo~=1.1.0 conda-forge::libprotobuf~=3.21.11 conda-forge::libpq==15.1 conda-forge::libpng~=1.6.39 conda-forge::libopenblas~=0.3.21 conda-forge::libnghttp2~=1.47.0 conda-forge::libnetcdf~=4.8.1 conda-forge::libllvm11~=11.1.0 conda-forge::liblapack~=3.9.0 conda-forge::libkml~=1.3.0 conda-forge::libiconv==1.17 conda-forge::libgrpc~=1.51.1 conda-forge::libgoogle-cloud~=2.5.0 conda-forge::libglib~=2.74.1 conda-forge::libgfortran5~=11.3.0 conda-forge::libgdal~=3.6.1 conda-forge::libffi~=3.4.2 conda-forge::libevent~=2.1.10 conda-forge::libev==4.33 conda-forge::libedit~=3.1.20191231 conda-forge::libdeflate==1.14 conda-forge::libcxx~=14.0.6 conda-forge::libcurl~=7.86.0 conda-forge::libcrc32c~=1.1.2 conda-forge::libcblas~=3.9.0 conda-forge::libbrotlienc~=1.0.9 conda-forge::libbrotlidec~=1.0.9 conda-forge::libbrotlicommon~=1.0.9 conda-forge::libblas~=3.9.0 conda-forge::libarrow~=10.0.1 conda-forge::libabseil==20220623.0 conda-forge::lerc~=4.0.0 conda-forge::lcms2==2.14 conda-forge::krb5~=1.20.1 conda-forge::kiwisolver~=1.4.4 conda-forge::kealib~=1.5.0 conda-forge::jupyterlab_server~=2.16.5 conda-forge::jupyterlab_widgets~=1.1.1 conda-forge::jupyterlab_pygments~=0.2.2 conda-forge::jupyterlab~=3.5.0 conda-forge::jupyter_core~=5.1.0 conda-forge::jupyter-server-proxy~=3.2.2 conda-forge::jupyter_server~=1.23.3 conda-forge::jupyter_client~=7.3.4 conda-forge::jsonschema~=4.17.3 conda-forge::jsondiff~=2.0.0 conda-forge::json5~=0.9.5 conda-forge::json-c==0.16 conda-forge::joblib~=1.2.0 conda-forge::jmespath~=1.0.1 conda-forge::jedi~=0.18.2 conda-forge::ipywidgets~=7.7.2 conda-forge::ipython_genutils~=0.2.0 conda-forge::ipython~=8.7.0 conda-forge::ipykernel~=6.19.2 conda-forge::ipycytoscape~=1.3.3 conda-forge::importlib_resources~=5.10.1 conda-forge::importlib-metadata~=5.1.0 conda-forge::idna==3.4 conda-forge::icu==70.1 conda-forge::hdf5~=1.12.2 conda-forge::hdf4~=4.2.15 conda-forge::grpcio~=1.51.1 conda-forge::googleapis-common-protos~=1.57.0 conda-forge::google-resumable-media~=2.4.0 conda-forge::google-crc32c~=1.1.2 conda-forge::google-cloud-storage~=2.7.0 conda-forge::google-cloud-core~=2.3.2 conda-forge::google-auth-oauthlib~=0.8.0 conda-forge::google-auth~=2.15.0 conda-forge::google-api-core~=2.11.0 conda-forge::glog~=0.6.0 conda-forge::giflib~=5.2.1 conda-forge::gflags~=2.2.2 conda-forge::gettext~=0.21.1 conda-forge::geotiff~=1.7.1 conda-forge::geos~=3.11.1 conda-forge::geopandas~=0.12.2 conda-forge::gcsfs~=2022.11.0 conda-forge::future~=0.18.2 conda-forge::fsspec~=2022.11.0 conda-forge::frozenlist~=1.3.3 conda-forge::freexl~=1.0.6 conda-forge::freetype~=2.12.1 conda-forge::fonttools~=4.38.0 conda-forge::fonts-conda-forge==1 conda-forge::fonts-conda-ecosystem==1 conda-forge::fontconfig~=2.14.1 conda-forge::font-ttf-ubuntu==0.83 conda-forge::font-ttf-source-code-pro==2.038 conda-forge::font-ttf-inconsolata==3.000 conda-forge::font-ttf-dejavu-sans-mono==2.37 conda-forge::folium~=0.14.0 conda-forge::flit-core~=3.8.0 conda-forge::python-fastjsonschema~=2.16.2 conda-forge::fasteners~=0.17.3 conda-forge::expat~=2.5.0 conda-forge::executing~=1.2.0 conda-forge::entrypoints==0.4 conda-forge::distributed==2022.11.1 conda-forge::defusedxml~=0.7.1 conda-forge::decorator~=5.1.1 conda-forge::debugpy~=1.6.4 conda-forge::dataclasses==0.8 conda-forge::dask-ml~=2022.5.27 conda-forge::dask-labextension~=6.0.0 conda-forge::dask-glm~=0.2.0 conda-forge::dask-core==2022.11.1 conda-forge::cytoolz~=0.12.0 conda-forge::cycler~=0.11.0 conda-forge::curl~=7.86.0 conda-forge::cryptography~=38.0.4 conda-forge::contourpy~=1.0.6 conda-forge::commonmark~=0.9.1 conda-forge::comm~=0.1.2 conda-forge::coiled-runtime~=0.2.1 conda-forge::coiled~=0.2.55 conda-forge::cloudpickle==2.2.0 conda-forge::cligj~=0.7.2 conda-forge::click-plugins~=1.1.1 conda-forge::click~=8.1.3 conda-forge::charset-normalizer~=2.1.1 conda-forge::cfitsio~=4.2.0 conda-forge::cffi~=1.15.1 conda-forge::certifi~=2022.12.7 conda-forge::cairo~=1.16.0 conda-forge::cachetools~=5.2.0 conda-forge::ca-certificates~=2022.12.7 conda-forge::c-ares~=1.18.1 conda-forge::bzip2~=1.0.8 conda-forge::brotlipy~=0.7.0 conda-forge::brotli-bin~=1.0.9 conda-forge::brotli~=1.0.9 conda-forge::branca~=0.6.0 conda-forge::botocore~=1.27.59 conda-forge::boto3~=1.24.59 conda-forge::boost-cpp~=1.78.0 conda-forge::bokeh~=2.4.3 conda-forge::blosc~=1.21.3 conda-forge::blinker==1.5 conda-forge::bleach~=5.0.1 conda-forge::beautifulsoup4~=4.11.1 conda-forge::backports.functools_lru_cache~=1.6.4 conda-forge::backports==1.0 conda-forge::backoff~=1.11.1 conda-forge::backcall~=0.2.0 conda-forge::aws-sdk-cpp~=1.9.379 conda-forge::aws-crt-cpp~=0.18.16 conda-forge::aws-checksums~=0.1.14 conda-forge::aws-c-sdkutils~=0.1.7 conda-forge::aws-c-s3~=0.2.1 conda-forge::aws-c-mqtt~=0.7.13 conda-forge::aws-c-io~=0.13.11 conda-forge::aws-c-http~=0.6.27 conda-forge::aws-c-event-stream~=0.2.15 conda-forge::aws-c-compression~=0.2.16 conda-forge::aws-c-common~=0.8.5 conda-forge::aws-c-cal~=0.5.20 conda-forge::aws-c-auth~=0.6.21 conda-forge::attrs~=22.1.0 conda-forge::async-timeout~=4.0.2 conda-forge::asttokens~=2.2.1 conda-forge::asciitree~=0.3.3 conda-forge::arrow-cpp~=10.0.1 conda-forge::argon2-cffi-bindings~=21.2.0 conda-forge::argon2-cffi~=21.3.0 conda-forge::appnope~=0.1.3 conda-forge::anyio~=3.6.2 conda-forge::aiosignal~=1.3.1 conda-forge::aioitertools~=0.11.0 conda-forge::aiohttp~=3.8.3 conda-forge::aiobotocore~=2.4.0 conda-forge::_py-xgboost-mutex==2.0 conda-forge::_ipython_minor_entry_point~=8.7.0 conda-forge::send2trash~=1.8.0 conda-forge::rtree~=1.0.1 conda-forge::pygments~=2.13.0 conda-forge::pyyaml==6.0 conda-forge::pysocks~=1.7.1 conda-forge::pyjwt~=2.6.0 conda-forge::pillow~=9.2.0 conda-forge::markupsafe~=2.1.1 conda-forge::jinja2~=3.1.2 conda-forge::heapdict~=1.0.1 conda-forge::gdal~=3.6.1 conda-forge::fiona~=1.8.22 conda-forge::babel~=2.11.0

@jaimergp
Copy link
Contributor

jaimergp commented Dec 28, 2022

Can this be enabled on libmambapy? I was assuming we could do Context().experimental_sat_error_message = True + Solver.explain_messages() but I get:

AttributeError: 'libmambapy.bindings.Context' object has no attribute 'experimental_sat_error_message'

I am using versions 1.1.0 from conda-forge, so I guess #2143 didn't make it to a release yet, right?

@chebee7i
Copy link

An example of a message of a conflict that did not help me sort out the issue:

$ cat ~/.condarc
experimental_sat_error_message: true

$ micromamba create -n testenv "python >=3.8,<3.9" "pytorch::pytorch=1.13.0=py3.8_cuda11.6*" cudatoolkit=11.6 -c pytorch -c conda-forge

                                           __
          __  ______ ___  ____ _____ ___  / /_  ____ _
         / / / / __ `__ \/ __ `/ __ `__ \/ __ \/ __ `/
        / /_/ / / / / / / /_/ / / / / / / /_/ / /_/ /
       / .___/_/ /_/ /_/\__,_/_/ /_/ /_/_.___/\__,_/
      /_/

pytorch/linux-64                                            Using cache
pytorch/noarch                                              Using cache
conda-forge/linux-64                                        Using cache
conda-forge/noarch                                          Using cache
error    libmamba Could not solve for environment specs
    ================== Experimental satisfiability error messages ==================
    You are seeing this because you set `experimental_sat_error_message: true`
    Use the following issue to share feedback on this experimental feature
       https://github.com/mamba-org/mamba/issues/2078

    ====================================== Legacy messages (old) =======================================
    Encountered problems while solving:
      - nothing provides cuda 11.6.* needed by pytorch-cuda-11.6-h867d48c_0

    The environment can't be solved, aborting the operation
    =================================== Experimental messages (new) ====================================

critical libmamba Invalid dependency info: <NULL>

@maxnoe
Copy link

maxnoe commented Jan 19, 2023

Would it be possible to give the python requirements a higher "weight" in the error message? The example from #2234 has this output with the experimental error message:

$ micromamba create -n foo python=3.11  numba
...

    The following packages are incompatible
    ├─ numba * * is installable with the potential options
    │  ├─ numba [0.35.0|0.36.1|...|0.47.0] would require
    │  │  └─ python [2.7* *|>=2.7,<2.8.0a0 *], which can be installed;
    │  ├─ numba [0.35.0|0.36.1|...|0.39.0] would require
    │  │  └─ python [3.5* *|>=3.5,<3.6.0a0 *], which can be installed;
    │  ├─ numba [0.35.0|0.36.1|...|0.53.1] would require
    │  │  └─ python [3.6* *|>=3.6,<3.7.0a0 *], which can be installed;
    │  ├─ numba [0.36.1|0.36.2|0.37.0] would require
    │  │  └─ numpy >=1.10,<1.11.0a0 *, which does not exist (perhaps a missing channel);
    │  ├─ numba [0.39.0|0.40.0|...|0.56.4] would require
    │  │  └─ python >=3.7,<3.8.0a0 *, which can be installed;
    │  ├─ numba [0.47.0|0.48.0|...|0.56.4] would require
    │  │  └─ python >=3.8,<3.9.0a0 *, which can be installed;
    │  ├─ numba [0.53.0|0.53.1|...|0.56.4] would require
    │  │  └─ python >=3.9,<3.10.0a0 *, which can be installed;
    │  └─ numba [0.55.0|0.55.1|0.56.3|0.56.4] would require
    │     └─ python >=3.10,<3.11.0a0 *, which can be installed;
    └─ python 3.11** * is uninstallable because it conflicts with any installable versions previously reported.

The real issue here is that the user required python 3.11, but numba is not available for 3.11, so the messages above seem kind of backwards and more complex than needed ("I required python=3.11, why does it say that 3.10 could be installed").

I would have expected a message like "numba is not installable as no option is compatible with requirement python=3.11"

@AntoinePrv
Copy link
Member Author

Thank you all for the feedback!

@chebee7i @shughes-uk it seems both problems you reported are the same. Sometimes it triggers a segfault, sometime it Invalid dependency info: <NULL>. It happens when using channel:: prefix in dependencies. I've proposed a fix in #2277.

@jorisvandenbossche unfortunately I could not reproduce the warning libmamba Problem type not implemented SOLVER_RULE_STRICT_REPO_PRIORITY part (although I would really like to in order to implement that case).

@maxnoe Right now the error are "package agnostic" which means that python is no more important that Numba. I think it is easier to maintain that way. However I have a few ideas on how this could improve.
Given that python has a shorter explanation depth (conflict depth) than numba, we should visit it first, making the message states that Python is installable and Numba is a conflict.

Another problem is the long enumerations of successive packages (also reported by @jorisvandenbossche). We also have some ideas how to compress that more.

Finally I am reporting that we are also seeing some suboptimal ouputs with python because the python_abi dependency was reversed.
We have some ideas how we could handle that in a generic fashion.

    │  │  └─ python_abi 3.7.* *_cp37m with the potential options
    │  │     ├─ python_abi [3.7], which can be installed;
    │  │     └─ python_abi 3.7 would require
    │  │        └─ python 3.7.* *_cpython, which can be installed;

@maxnoe
Copy link

maxnoe commented Feb 9, 2023

@maxnoe Right now the error are "package agnostic" which means that python is no more important that Numba

I didn't mean to give more weight to python because it's python but because that package in the user given specs has a requirement while there is no requirement on the numba version.

@AntoinePrv
Copy link
Member Author

@maxnoe Right now the error are "package agnostic" which means that python is no more important that Numba

I didn't mean to give more weight to python because it's python but because that package in the user given specs has a requirement while there is no requirement on the numba version.

Ha that's interesting, I didn't think of that!

@AntoinePrv AntoinePrv pinned this issue Mar 23, 2023
@AntoinePrv
Copy link
Member Author

Also noticing weird behaviors with pins in #2448, also this might be already solved by #2423 #2428

@maxnoe
Copy link

maxnoe commented Jun 13, 2023

Trying to upgrade python in an env, I get the following very unhelpful message using mamba 1.4.2:

❯ mamba install -q -n base  'python>3.10.11'
Could not solve for environment specs
The following package could not be installed
└─ python >3.10.11  is requested and can be installed.

then why don't you ... ?

It seems to be that one of the packages is not yet compatible with python 3.11, but it doesn't tell which

@AntoinePrv
Copy link
Member Author

@maxnoe what was in your environment?

@maxnoe
Copy link

maxnoe commented Jun 19, 2023

It's the mambaforge base env with a small number of additional packages:

name: cannot-update-python
channels:
  - conda-forge
dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=2_gnu
  - beautifulsoup4=4.12.2=pyha770c72_0
  - binutils=2.40=hdd6e379_0
  - binutils_impl_linux-64=2.40=hf600244_0
  - binutils_linux-64=2.40=hbdbef99_0
  - blinker=1.6.2=pyhd8ed1ab_0
  - boltons=23.0.0=pyhd8ed1ab_0
  - boolean.py=3.7=py_0
  - brotli=1.0.9=h166bdaf_8
  - brotli-bin=1.0.9=h166bdaf_8
  - brotlipy=0.7.0=py310h5764c6d_1005
  - bzip2=1.0.8=h7f98852_4
  - c-ares=1.19.1=hd590300_0
  - c-compiler=1.5.2=h0b41bf4_0
  - ca-certificates=2023.5.7=hbcca054_0
  - certifi=2023.5.7=pyhd8ed1ab_0
  - cffi=1.15.1=py310h255011f_3
  - chardet=5.1.0=py310hff52083_0
  - charset-normalizer=3.1.0=pyhd8ed1ab_0
  - click=8.1.3=unix_pyhd8ed1ab_2
  - colorama=0.4.6=pyhd8ed1ab_0
  - compilers=1.5.2=ha770c72_0
  - conda=23.3.1=py310hff52083_0
  - conda-build=3.25.0=py310hff52083_0
  - conda-forge-pinning=2023.06.13.13.09.55=hd8ed1ab_0
  - conda-index=0.2.3=pyhd8ed1ab_0
  - conda-package-handling=2.0.2=pyh38be061_0
  - conda-package-streaming=0.8.0=pyhd8ed1ab_0
  - conda-smithy=3.23.1=pyhd8ed1ab_0
  - cryptography=41.0.1=py310h75e40e8_0
  - curl=8.1.2=h409715c_0
  - cxx-compiler=1.5.2=hf52228f_0
  - deprecated=1.2.14=pyh1a96a4e_0
  - expat=2.5.0=hcb278e6_1
  - filelock=3.12.2=pyhd8ed1ab_0
  - fmt=9.1.0=h924138e_0
  - fortran-compiler=1.5.2=hdb1a99f_0
  - gcc=11.4.0=h7baecda_0
  - gcc_impl_linux-64=11.4.0=h7aa1c59_0
  - gcc_linux-64=11.4.0=hfd045f2_0
  - gettext=0.21.1=h27087fc_0
  - gfortran=11.4.0=h48fc9de_0
  - gfortran_impl_linux-64=11.4.0=h86428dc_0
  - gfortran_linux-64=11.4.0=h3047280_0
  - git=2.41.0=pl5321h86e50cf_0
  - gitdb=4.0.10=pyhd8ed1ab_0
  - gitpython=3.1.31=pyhd8ed1ab_0
  - glob2=0.7=py_0
  - gmp=6.2.1=h58526e2_0
  - gxx=11.4.0=h7baecda_0
  - gxx_impl_linux-64=11.4.0=h7aa1c59_0
  - gxx_linux-64=11.4.0=hfc1ae95_0
  - icu=72.1=hcb278e6_0
  - idna=3.4=pyhd8ed1ab_0
  - isodate=0.6.1=pyhd8ed1ab_0
  - jinja2=3.1.2=pyhd8ed1ab_1
  - jsonpatch=1.32=pyhd8ed1ab_0
  - jsonpointer=2.0=py_0
  - kernel-headers_linux-64=2.6.32=he073ed8_15
  - keyutils=1.6.1=h166bdaf_0
  - krb5=1.20.1=h81ceb04_0
  - ld_impl_linux-64=2.40=h41732ed_0
  - libarchive=3.6.2=h039dbb9_1
  - libbrotlicommon=1.0.9=h166bdaf_8
  - libbrotlidec=1.0.9=h166bdaf_8
  - libbrotlienc=1.0.9=h166bdaf_8
  - libcurl=8.1.2=h409715c_0
  - libedit=3.1.20191231=he28a2e2_2
  - libev=4.33=h516909a_1
  - libexpat=2.5.0=hcb278e6_1
  - libffi=3.4.2=h7f98852_5
  - libgcc-devel_linux-64=11.4.0=h922705a_0
  - libgcc-ng=13.1.0=he5830b7_0
  - libgfortran5=13.1.0=h15d22d2_0
  - libgomp=13.1.0=he5830b7_0
  - libiconv=1.17=h166bdaf_0
  - liblief=0.12.3=h27087fc_0
  - libmamba=1.4.2=hcea66bb_0
  - libmambapy=1.4.2=py310h1428755_0
  - libnghttp2=1.52.0=h61bc06f_0
  - libnsl=2.0.0=h7f98852_0
  - libsanitizer=11.4.0=h4dcbe23_0
  - libsodium=1.0.18=h36c2ea0_1
  - libsolv=0.7.24=h3eb15da_0
  - libsqlite=3.42.0=h2797004_0
  - libssh2=1.11.0=h0841786_0
  - libstdcxx-devel_linux-64=11.4.0=h922705a_0
  - libstdcxx-ng=13.1.0=hfd8a6a1_0
  - libuuid=2.38.1=h0b41bf4_0
  - libxml2=2.11.4=h0d562d8_0
  - libzlib=1.2.13=hd590300_5
  - license-expression=1.2=py_0
  - lz4-c=1.9.4=hcb278e6_0
  - lzo=2.10=h516909a_1000
  - mamba=1.4.2=py310h51d5547_0
  - markupsafe=2.1.3=py310h2372a71_0
  - micromamba=1.4.3=0
  - more-itertools=9.1.0=pyhd8ed1ab_0
  - msrest=0.6.21=pyh44b312d_0
  - ncurses=6.4=hcb278e6_0
  - oauthlib=3.2.2=pyhd8ed1ab_0
  - openssl=3.1.1=hd590300_1
  - packaging=23.1=pyhd8ed1ab_0
  - patch=2.7.6=h7f98852_1002
  - patchelf=0.18.0=h59595ed_0
  - pcre2=10.40=hc3806b6_0
  - perl=5.32.1=2_h7f98852_perl5
  - pip=23.1.2=pyhd8ed1ab_0
  - pkginfo=1.9.6=pyhd8ed1ab_0
  - pluggy=1.0.0=pyhd8ed1ab_5
  - psutil=5.9.5=py310h1fa729e_0
  - py-lief=0.12.3=py310hd8f1fbe_0
  - pybind11-abi=4=hd8ed1ab_3
  - pycosat=0.6.4=py310h5764c6d_1
  - pycparser=2.21=pyhd8ed1ab_0
  - pycrypto=2.6.1=py310h6acc77f_1006
  - pycryptodome=3.18.0=py310hb0f0acc_0
  - pygithub=1.58.0=pyh1a96a4e_0
  - pyjwt=2.7.0=pyhd8ed1ab_0
  - pynacl=1.5.0=py310h5764c6d_2
  - pyopenssl=23.2.0=pyhd8ed1ab_1
  - pysocks=1.7.1=pyha2e5f31_6
  - python=3.10.11=he550d4f_0_cpython
  - python-libarchive-c=4.0=py310hff52083_2
  - python_abi=3.10=3_cp310
  - pytz=2023.3=pyhd8ed1ab_0
  - pyyaml=6.0=py310h5764c6d_5
  - readline=8.2=h8228510_1
  - reproc=14.2.4=h0b41bf4_0
  - reproc-cpp=14.2.4=hcb278e6_0
  - requests=2.31.0=pyhd8ed1ab_0
  - requests-oauthlib=1.3.1=pyhd8ed1ab_0
  - ripgrep=13.0.0=h2f28480_2
  - ruamel.yaml=0.17.31=py310h2372a71_0
  - ruamel.yaml.clib=0.2.7=py310h1fa729e_1
  - scrypt=0.8.18=py310ha302636_4
  - setuptools=67.7.2=pyhd8ed1ab_0
  - six=1.16.0=pyh6c4a22f_0
  - smmap=3.0.5=pyh44b312d_0
  - soupsieve=2.3.2.post1=pyhd8ed1ab_0
  - sqlite=3.42.0=h2c6b66d_0
  - sysroot_linux-64=2.12=he073ed8_15
  - tk=8.6.12=h27826a3_0
  - toml=0.10.2=pyhd8ed1ab_0
  - tomli=2.0.1=pyhd8ed1ab_0
  - toolz=0.12.0=pyhd8ed1ab_0
  - tqdm=4.65.0=pyhd8ed1ab_1
  - typing_extensions=4.6.3=pyha770c72_0
  - tzdata=2023c=h71feb2d_0
  - urllib3=2.0.3=pyhd8ed1ab_0
  - vsts-python-api=0.1.25=pyhd8ed1ab_1
  - wheel=0.40.0=pyhd8ed1ab_0
  - wrapt=1.15.0=py310h1fa729e_0
  - xz=5.2.6=h166bdaf_0
  - yaml=0.2.5=h7f98852_2
  - yaml-cpp=0.7.0=h27087fc_2
  - zlib=1.2.13=hd590300_5
  - zstandard=0.19.0=py310hdeb6495_1
  - zstd=1.5.2=h3eb15da_6

@maxnoe
Copy link

maxnoe commented Jun 19, 2023

In the example above, the only package not (yet) available for python 3.11 and thus blocking the update was pycrypto.

@AntoinePrv
Copy link
Member Author

Thanks @maxnoe , this type of message arise when there is a conflicts with a package already in the environment.
For the same installation from scratch, I have the following
Screenshot from 2023-06-23 17-32-23

The problem is that the input from libsolv is quite different with packages already in the environment.
Actually the first outcome I had was that mamba tried to remove pycrypto all together.
I had to pass --no-allow-uninstall flag to reprodce your conflict message, did you have a similar flag?
(This flag also seems to generate unclear error when there is otherwise a solution).

Right now I can generate a message that says the installed version of pycrypto is incompatible with the newer python but I cannot make it include that other (unistalled) options for pycrypto are also in conflict with python...

@maxnoe
Copy link

maxnoe commented Jun 24, 2023

No, I didn't add any flags

@fgvieira

This comment was marked as off-topic.

@AntoinePrv AntoinePrv changed the title Mamba error messages feedback Mamba solving error messages feedback Jan 23, 2024
@AntoinePrv
Copy link
Member Author

Further improvements can be managed in their own issue.

@AntoinePrv AntoinePrv unpinned this issue Feb 19, 2024
@SomePersonSomeWhereInTheWorld

In a Singularity container build:

mamba install -y --channel brainiak --name base\
     "python=3.7.0"
mamba install -c brainiak -c defaults -c conda-forge brainiak -y
Could not solve for environment specs
The following packages are incompatible
├─ menuinst is installable with the potential options
│  ├─ menuinst [2.0.0|2.0.1|2.0.2] would require
│  │  └─ python_abi 3.10.* *_cp310, which can be installed;
│  ├─ menuinst [2.0.0|2.0.1|2.0.2] would require
│  │  └─ python_abi 3.11.* *_cp311, which can be installed;
│  ├─ menuinst [2.0.0|2.0.1|2.0.2] would require
│  │  └─ python_abi 3.12.* *_cp312, which can be installed;
│  ├─ menuinst [2.0.0|2.0.1|2.0.2] would require
│  │  └─ python_abi 3.8.* *_cp38, which can be installed;
│  ├─ menuinst 2.0.0 would require
│  │  └─ pypy3.9 >=7.3.12 , which can be installed;
│  ├─ menuinst [2.0.0|2.0.1|2.0.2] would require
│  │  └─ python_abi 3.9.* *_cp39, which can be installed;
│  └─ menuinst [2.0.1|2.0.2] would require
│     └─ pypy3.9 >=7.3.13 , which can be installed;
└─ python 3.7.0**  is not installable because it requires
   └─ python_abi * *_cp37m, which conflicts with any installable versions previously reported.
FATAL:   failed to execute %post proc: exit status 1
FATAL:   While performing build: while running engine: while running /moto/opt/singularity-3.5.3/libexec/singularity/bin/starter: exit status 255


@wolfv
Copy link
Member

wolfv commented May 8, 2024

@SomePersonSomeWhereInTheWorld I think it's a matter of mixing conda-forge and defaults. We strongly recommend against that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests