mamba-org / mamba

The Fast Cross-Platform Package Manager
https://mamba.readthedocs.io
BSD 3-Clause "New" or "Revised" License
6.8k stars 349 forks source link

Environment creation fails in mamba and micromamba if it contains the _x86_64-microarch-level package in Linux #3222

Closed traversaro closed 4 weeks ago

traversaro commented 7 months ago

Troubleshooting docs

Anaconda default channels

How did you install Mamba?

Mambaforge or latest Miniforge

Search tried in issue tracker

archspec

Latest version of Mamba

Tried in Conda?

I do not have this problem with Conda, just with Mamba

Describe your issue

If I try to run mamba -v create -n test _x86_64-microarch-level or micromamba -v create -n test _x86_64-microarch-level, the environment creation fails. If I try conda create -n test _x86_64-microarch-level or install the _x86_64-microarch-level package in pixi, the installation in successful.

Related to https://github.com/conda-forge/staged-recipes/pull/24306 and https://github.com/conda-forge/conda-forge.github.io/pull/2091 .

mamba info / micromamba info

(base) traversaro@IITBMP014LW012:~$ mamba info

          mamba version : 1.5.7
     active environment : base
    active env location : /home/traversaro/miniforge3
            shell level : 1
       user config file : /home/traversaro/.condarc
 populated config files : /home/traversaro/miniforge3/.condarc
                          /home/traversaro/.condarc
          conda version : 24.1.2
    conda-build version : 24.1.2
         python version : 3.10.13.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=skylake
                          __conda=24.1.2=0
                          __cuda=12.3=0
                          __glibc=2.35=0
                          __linux=5.15.146.1=0
                          __unix=0=0
       base environment : /home/traversaro/miniforge3  (writable)
      conda av data dir : /home/traversaro/miniforge3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /home/traversaro/miniforge3/pkgs
                          /home/traversaro/.conda/pkgs
       envs directories : /home/traversaro/miniforge3/envs
                          /home/traversaro/.conda/envs
               platform : linux-64
             user-agent : conda/24.1.2 requests/2.31.0 CPython/3.10.13 Linux/5.15.146.1-microsoft-standard-WSL2 ubuntu/22.04.3 glibc/2.35 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.7
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

(base) traversaro@IITBMP014LW012:~$ micromamba info

       libmamba version : 1.5.7
     micromamba version : 1.5.7
           curl version : libcurl/8.5.0 OpenSSL/3.2.1 zlib/1.2.13 zstd/1.5.5 libssh2/1.11.0 nghttp2/1.58.0
     libarchive version : libarchive 3.7.2 zlib/1.2.13 bz2lib/1.0.8 libzstd/1.5.5
       envs directories : /home/traversaro/micromamba/envs
          package cache : /home/traversaro/micromamba/pkgs
                          /home/traversaro/.mamba/pkgs
            environment : /home/traversaro/miniforge3 (active)
           env location : /home/traversaro/miniforge3
      user config files : /home/traversaro/.mambarc
 populated config files : /home/traversaro/miniforge3/.condarc
                          /home/traversaro/.condarc
       virtual packages : __unix=0=0
                          __linux=5.15.146=0
                          __glibc=2.35=0
                          __archspec=1=x86_64-v3
                          __cuda=12.3=0
               channels : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
       base environment : /home/traversaro/micromamba
               platform : linux-64
(base) traversaro@IITBMP014LW012:~$ conda info

     active environment : base
    active env location : /home/traversaro/miniforge3
            shell level : 1
       user config file : /home/traversaro/.condarc
 populated config files : /home/traversaro/miniforge3/.condarc
                          /home/traversaro/.condarc
          conda version : 24.1.2
    conda-build version : 24.1.2
         python version : 3.10.13.final.0
                 solver : libmamba (default)
       virtual packages : __archspec=1=skylake
                          __conda=24.1.2=0
                          __cuda=12.3=0
                          __glibc=2.35=0
                          __linux=5.15.146.1=0
                          __unix=0=0
       base environment : /home/traversaro/miniforge3  (writable)
      conda av data dir : /home/traversaro/miniforge3/etc/conda
  conda av metadata url : None
           channel URLs : https://conda.anaconda.org/conda-forge/linux-64
                          https://conda.anaconda.org/conda-forge/noarch
          package cache : /home/traversaro/miniforge3/pkgs
                          /home/traversaro/.conda/pkgs
       envs directories : /home/traversaro/miniforge3/envs
                          /home/traversaro/.conda/envs
               platform : linux-64
             user-agent : conda/24.1.2 requests/2.31.0 CPython/3.10.13 Linux/5.15.146.1-microsoft-standard-WSL2 ubuntu/22.04.3 glibc/2.35 solver/libmamba conda-libmamba-solver/24.1.0 libmambapy/1.5.7
                UID:GID : 1000:1000
             netrc file : None
           offline mode : False

Logs

traversaro@IITBMP014LW012:~$ mamba -v create -n test _x86_64-microarch-level
WARNING: A conda environment already exists at '/home/traversaro/miniforge3/envs/test'
Remove existing environment (y/[n])? y

Looking for: ['_x86_64-microarch-level']

warning  libmamba Cache file "/home/traversaro/miniforge3/pkgs/cache/497deca9.json" was modified by another program
warning  libmamba Cache file "/home/traversaro/miniforge3/pkgs/cache/09cdf8bf.json" was modified by another program
conda-forge/noarch                                  13.8MB @   2.5MB/s  5.6s
conda-forge/linux-64                                32.9MB @   3.1MB/s 10.8s
Could not solve for environment specs
The following packages are incompatible
└─ _x86_64-microarch-level is not installable because there are no viable options
   ├─ _x86_64-microarch-level 1 would require
   │  └─ __archspec 1 core2, which is missing on the system;
   ├─ _x86_64-microarch-level 1 would require
   │  └─ __archspec 1 k10, which is missing on the system;
   ├─ _x86_64-microarch-level 1 would require
   │  └─ __archspec 1 nocona, which is missing on the system;
   ├─ _x86_64-microarch-level 1 would require
   │  └─ __archspec 1 x86_64, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 bulldozer, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 ivybridge, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 nehalem, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 piledriver, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 sandybridge, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 steamroller, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 westmere, which is missing on the system;
   ├─ _x86_64-microarch-level 2 would require
   │  └─ __archspec 1 x86_64_v2, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 broadwell, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 cannonlake, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 excavator, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 haswell, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 mic_knl, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 skylake, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 x86_64_v3, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 zen, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 zen2, which is missing on the system;
   ├─ _x86_64-microarch-level 3 would require
   │  └─ __archspec 1 zen3, which is missing on the system;
   ├─ _x86_64-microarch-level 4 would require
   │  └─ __archspec 1 cascadelake, which is missing on the system;
   ├─ _x86_64-microarch-level 4 would require
   │  └─ __archspec 1 icelake, which is missing on the system;
   ├─ _x86_64-microarch-level 4 would require
   │  └─ __archspec 1 skylake_avx512, which is missing on the system;
   ├─ _x86_64-microarch-level 4 would require
   │  └─ __archspec 1 x86_64_v4, which is missing on the system;
   ├─ _x86_64-microarch-level 4 would require
   │  └─ __archspec 1 zen4, which is missing on the system;
   └─ _x86_64-microarch-level 4 would require
      └─ __archspec 1 sapphirerapids, which is missing on the system.
traversaro@IITBMP014LW012:~$ micromamba -v create -n test _x86_64-microarch-level
micromamba: command not found
traversaro@IITBMP014LW012:~$ mamba activaet base
usage: mamba [-h] [-v] [--no-plugins] [-V] COMMAND ...
mamba: error: argument COMMAND: invalid choice: 'activaet' (choose from 'activate', 'deactivate', 'clean', 'compare', 'config', 'create', 'env', 'info', 'init', 'install', 'list', 'notices', 'package', 'remove', 'uninstall', 'rename', 'run', 'search', 'update', 'upgrade', 'build', 'convert', 'debug', 'develop', 'doctor', 'index', 'inspect', 'metapackage', 'render', 'repoquery', 'skeleton', 'server', 'pack')
traversaro@IITBMP014LW012:~$ mamba activate base
(base) traversaro@IITBMP014LW012:~$ micromamba -v create -n test _x86_64-microarch-level
warning  libmamba 'root_prefix' set with default value: /home/traversaro/micromamba
info     libmamba You have not set the 'root_prefix' environment variable.
    To permanently modify the root prefix location, either:
    - set the 'MAMBA_ROOT_PREFIX' environment variable
    - use the '-r,--root-prefix' CLI option
    - use 'micromamba shell init ...' to initialize your shell
        (then restart or source the contents of the shell init script)
info     libmamba Parsing MatchSpec _x86_64-microarch-level
info     libmamba Searching index cache file for repo 'https://conda.anaconda.org/conda-forge/linux-64/repodata.json'
conda-forge/linux-64                                        Using cache
info     libmamba Searching index cache file for repo 'https://conda.anaconda.org/conda-forge/noarch/repodata.json'
conda-forge/noarch                                          Using cache
info     libmamba All targets to download are cached
info     libmamba All targets to download are cached
info     libmamba Reading cache files '/home/traversaro/micromamba/pkgs/cache/497deca9.solv.*' for repo index 'conda-forge/linux-64'
info     libmamba Attempting to read libsolv solv file "/home/traversaro/micromamba/pkgs/cache/497deca9.solv" for repo conda-forge/linux-64
info     libmamba Expecting solv metadata : {"etag":"\"e0954d7fee16c27df57454083ba4e0d1\"","mod":"Thu, 07 Mar 2024 22:19:21 GMT","pip_added":true,"tool_version":"1.3_0.7.28","url":"https://conda.anaconda.org/conda-forge/linux-64"}
info     libmamba Loaded solv metadata : {"etag":"\"e0954d7fee16c27df57454083ba4e0d1\"","mod":"Thu, 07 Mar 2024 22:19:21 GMT","pip_added":true,"tool_version":"1.3_0.7.28","url":"https://conda.anaconda.org/conda-forge/linux-64"}
info     libmamba Metadata from solv are valid, loading successful
info     libmamba Reading cache files '/home/traversaro/micromamba/pkgs/cache/09cdf8bf.solv.*' for repo index 'conda-forge/noarch'
info     libmamba Attempting to read libsolv solv file "/home/traversaro/micromamba/pkgs/cache/09cdf8bf.solv" for repo conda-forge/noarch
info     libmamba Expecting solv metadata : {"etag":"\"38e6f056bdf4240ef53d986e2c96d07d\"","mod":"Thu, 07 Mar 2024 22:41:44 GMT","pip_added":true,"tool_version":"1.3_0.7.28","url":"https://conda.anaconda.org/conda-forge/noarch"}
info     libmamba Loaded solv metadata : {"etag":"\"38e6f056bdf4240ef53d986e2c96d07d\"","mod":"Thu, 07 Mar 2024 22:41:44 GMT","pip_added":true,"tool_version":"1.3_0.7.28","url":"https://conda.anaconda.org/conda-forge/noarch"}
info     libmamba Metadata from solv are valid, loading successful
info     libmamba Adding package record to repo __archspec
info     libmamba Adding package record to repo __cuda
info     libmamba Adding package record to repo __glibc
info     libmamba Adding package record to repo __linux
info     libmamba Adding package record to repo __unix
info     libmamba Parsing MatchSpec _x86_64-microarch-level
info     libmamba Parsing MatchSpec _x86_64-microarch-level
info     libmamba Adding job: _x86_64-microarch-level
info     libmamba Problem count: 1
info     libmamba Parsing MatchSpec _x86_64-microarch-level
info     libmamba Parsing MatchSpec __archspec 1 core2
info     libmamba Parsing MatchSpec __archspec 1 core2
info     libmamba Parsing MatchSpec __archspec 1 k10
info     libmamba Parsing MatchSpec __archspec 1 k10
info     libmamba Parsing MatchSpec __archspec 1 nocona
info     libmamba Parsing MatchSpec __archspec 1 nocona
info     libmamba Parsing MatchSpec __archspec 1 x86_64
info     libmamba Parsing MatchSpec __archspec 1 x86_64
info     libmamba Parsing MatchSpec __archspec 1 core2
info     libmamba Parsing MatchSpec __archspec 1 core2
info     libmamba Parsing MatchSpec __archspec 1 k10
info     libmamba Parsing MatchSpec __archspec 1 k10
info     libmamba Parsing MatchSpec __archspec 1 nocona
info     libmamba Parsing MatchSpec __archspec 1 nocona
info     libmamba Parsing MatchSpec __archspec 1 x86_64
info     libmamba Parsing MatchSpec __archspec 1 x86_64
info     libmamba Parsing MatchSpec __archspec 1 bulldozer
info     libmamba Parsing MatchSpec __archspec 1 bulldozer
info     libmamba Parsing MatchSpec __archspec 1 ivybridge
info     libmamba Parsing MatchSpec __archspec 1 ivybridge
info     libmamba Parsing MatchSpec __archspec 1 nehalem
info     libmamba Parsing MatchSpec __archspec 1 nehalem
info     libmamba Parsing MatchSpec __archspec 1 piledriver
info     libmamba Parsing MatchSpec __archspec 1 piledriver
info     libmamba Parsing MatchSpec __archspec 1 sandybridge
info     libmamba Parsing MatchSpec __archspec 1 sandybridge
info     libmamba Parsing MatchSpec __archspec 1 steamroller
info     libmamba Parsing MatchSpec __archspec 1 steamroller
info     libmamba Parsing MatchSpec __archspec 1 westmere
info     libmamba Parsing MatchSpec __archspec 1 westmere
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v2
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v2
info     libmamba Parsing MatchSpec __archspec 1 bulldozer
info     libmamba Parsing MatchSpec __archspec 1 bulldozer
info     libmamba Parsing MatchSpec __archspec 1 ivybridge
info     libmamba Parsing MatchSpec __archspec 1 ivybridge
info     libmamba Parsing MatchSpec __archspec 1 nehalem
info     libmamba Parsing MatchSpec __archspec 1 nehalem
info     libmamba Parsing MatchSpec __archspec 1 piledriver
info     libmamba Parsing MatchSpec __archspec 1 piledriver
info     libmamba Parsing MatchSpec __archspec 1 sandybridge
info     libmamba Parsing MatchSpec __archspec 1 sandybridge
info     libmamba Parsing MatchSpec __archspec 1 steamroller
info     libmamba Parsing MatchSpec __archspec 1 steamroller
info     libmamba Parsing MatchSpec __archspec 1 westmere
info     libmamba Parsing MatchSpec __archspec 1 westmere
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v2
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v2
info     libmamba Parsing MatchSpec __archspec 1 broadwell
info     libmamba Parsing MatchSpec __archspec 1 broadwell
info     libmamba Parsing MatchSpec __archspec 1 cannonlake
info     libmamba Parsing MatchSpec __archspec 1 cannonlake
info     libmamba Parsing MatchSpec __archspec 1 excavator
info     libmamba Parsing MatchSpec __archspec 1 excavator
info     libmamba Parsing MatchSpec __archspec 1 haswell
info     libmamba Parsing MatchSpec __archspec 1 haswell
info     libmamba Parsing MatchSpec __archspec 1 mic_knl
info     libmamba Parsing MatchSpec __archspec 1 mic_knl
info     libmamba Parsing MatchSpec __archspec 1 skylake
info     libmamba Parsing MatchSpec __archspec 1 skylake
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v3
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v3
info     libmamba Parsing MatchSpec __archspec 1 zen
info     libmamba Parsing MatchSpec __archspec 1 zen
info     libmamba Parsing MatchSpec __archspec 1 zen2
info     libmamba Parsing MatchSpec __archspec 1 zen2
info     libmamba Parsing MatchSpec __archspec 1 zen3
info     libmamba Parsing MatchSpec __archspec 1 zen3
info     libmamba Parsing MatchSpec __archspec 1 broadwell
info     libmamba Parsing MatchSpec __archspec 1 broadwell
info     libmamba Parsing MatchSpec __archspec 1 cannonlake
info     libmamba Parsing MatchSpec __archspec 1 cannonlake
info     libmamba Parsing MatchSpec __archspec 1 excavator
info     libmamba Parsing MatchSpec __archspec 1 excavator
info     libmamba Parsing MatchSpec __archspec 1 haswell
info     libmamba Parsing MatchSpec __archspec 1 haswell
info     libmamba Parsing MatchSpec __archspec 1 mic_knl
info     libmamba Parsing MatchSpec __archspec 1 mic_knl
info     libmamba Parsing MatchSpec __archspec 1 skylake
info     libmamba Parsing MatchSpec __archspec 1 skylake
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v3
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v3
info     libmamba Parsing MatchSpec __archspec 1 zen
info     libmamba Parsing MatchSpec __archspec 1 zen
info     libmamba Parsing MatchSpec __archspec 1 zen2
info     libmamba Parsing MatchSpec __archspec 1 zen2
info     libmamba Parsing MatchSpec __archspec 1 zen3
info     libmamba Parsing MatchSpec __archspec 1 zen3
info     libmamba Parsing MatchSpec __archspec 1 cascadelake
info     libmamba Parsing MatchSpec __archspec 1 cascadelake
info     libmamba Parsing MatchSpec __archspec 1 icelake
info     libmamba Parsing MatchSpec __archspec 1 icelake
info     libmamba Parsing MatchSpec __archspec 1 skylake_avx512
info     libmamba Parsing MatchSpec __archspec 1 skylake_avx512
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v4
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v4
info     libmamba Parsing MatchSpec __archspec 1 zen4
info     libmamba Parsing MatchSpec __archspec 1 zen4
info     libmamba Parsing MatchSpec __archspec 1 cascadelake
info     libmamba Parsing MatchSpec __archspec 1 cascadelake
info     libmamba Parsing MatchSpec __archspec 1 icelake
info     libmamba Parsing MatchSpec __archspec 1 icelake
info     libmamba Parsing MatchSpec __archspec 1 sapphirerapids
info     libmamba Parsing MatchSpec __archspec 1 sapphirerapids
info     libmamba Parsing MatchSpec __archspec 1 skylake_avx512
info     libmamba Parsing MatchSpec __archspec 1 skylake_avx512
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v4
info     libmamba Parsing MatchSpec __archspec 1 x86_64_v4
info     libmamba Parsing MatchSpec __archspec 1 zen4
info     libmamba Parsing MatchSpec __archspec 1 zen4
error    libmamba Could not solve for environment specs
    The following packages are incompatible
    └─ _x86_64-microarch-level is not installable because there are no viable options
       ├─ _x86_64-microarch-level 1 would require
       │  └─ __archspec 1 core2, which is missing on the system;
       ├─ _x86_64-microarch-level 1 would require
       │  └─ __archspec 1 k10, which is missing on the system;
       ├─ _x86_64-microarch-level 1 would require
       │  └─ __archspec 1 nocona, which is missing on the system;
       ├─ _x86_64-microarch-level 1 would require
       │  └─ __archspec 1 x86_64, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 bulldozer, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 ivybridge, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 nehalem, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 piledriver, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 sandybridge, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 steamroller, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 westmere, which is missing on the system;
       ├─ _x86_64-microarch-level 2 would require
       │  └─ __archspec 1 x86_64_v2, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 broadwell, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 cannonlake, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 excavator, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 haswell, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 mic_knl, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 skylake, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 x86_64_v3, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 zen, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 zen2, which is missing on the system;
       ├─ _x86_64-microarch-level 3 would require
       │  └─ __archspec 1 zen3, which is missing on the system;
       ├─ _x86_64-microarch-level 4 would require
       │  └─ __archspec 1 cascadelake, which is missing on the system;
       ├─ _x86_64-microarch-level 4 would require
       │  └─ __archspec 1 icelake, which is missing on the system;
       ├─ _x86_64-microarch-level 4 would require
       │  └─ __archspec 1 skylake_avx512, which is missing on the system;
       ├─ _x86_64-microarch-level 4 would require
       │  └─ __archspec 1 x86_64_v4, which is missing on the system;
       ├─ _x86_64-microarch-level 4 would require
       │  └─ __archspec 1 zen4, which is missing on the system;
       └─ _x86_64-microarch-level 4 would require
          └─ __archspec 1 sapphirerapids, which is missing on the system.
critical libmamba Could not solve for environment specs
(base) traversaro@IITBMP014LW012:~$ conda create -n test _x86_64-microarch-level
Channels:
 - conda-forge
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: /home/traversaro/miniforge3/envs/test

  added / updated specs:
    - _x86_64-microarch-level

The following NEW packages will be INSTALLED:

  _x86_64-microarch~ conda-forge/noarch::_x86_64-microarch-level-3-1_skylake

Proceed ([y]/n)? y

Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate test
#
# To deactivate an active environment, use
#
#     $ conda deactivate

environment.yml

name: test
channels: 
  - conda-forge
dependencies:
  - _x86_64-microarch-level

~/.condarc

(base) traversaro@IITBMP014LW012:~$ cat ~/.condarc
channels:
  - conda-forge
auto_activate_base: false
traversaro commented 6 months ago

I noticed that mamba info and conda info report as __archspec virtual package available __archspec=1=skylake, while micromamba reports __archspec=1=x86_64-v3, that perhaps could be the source behind the error. Probably this can be handled on the https://github.com/conda-forge/microarch-level-feedstock side, but I am not sure what is the best way forward on this.

hmaarrfk commented 5 months ago

I've found that my environments that require a __cuda package seem to fail. For example, I created https://github.com/conda-forge/staged-recipes/pull/26116 but the variant that is created with __cuda fails to solve for new environments.

mamba create --name t cupyifcudaavailable=*=cuda_* python=3.10

will fail with

Could not solve for environment specs
The following package could not be installed
└─ cupyifcudaavailable * cuda_* is not installable because it requires
   └─ __cuda, which is missing on the system.

in fact, even after activating the environment, mamba will not recognize that one could "update" to the 100s level package to install .

conda with libmamba-solver seems to find the correct package.

hmaarrfk commented 5 months ago

Sorry for the noise on your issue. I think the problem with my issue is that mamba uses nvidia-smi to detect the cuda version: https://github.com/mamba-org/mamba/blob/46036e19171df59d69a0e381b490f55c467ed718/libmamba/src/core/virtual_packages.cpp#L72

whereas conda uses heuristics based on typical installation paths: https://github.com/anaconda/conda/blob/0dbf85e0546e0b0dc060c8265ec936591ccbe980/conda/common/cuda.py#L5

I was able to install nvidia-smi to resolve my issue with the __cuda virtual package.

I suspect there are other quirks with how virtual packages are detected for bleeding edge features.

Maybe conda + libmamba is enough to help you!

So I tracked it down to a change between mamba version 1.4.5 and 1.4.6 On 1.4.5
base environment ``` $ mamba list # packages in environment at /home/mark/miniforge3: # # Name Version Build Channel _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 2_gnu conda-forge anaconda-client 1.12.3 pyhd8ed1ab_0 conda-forge anaconda-project 0.11.1 pyhd8ed1ab_0 conda-forge anyio 3.7.1 pyhd8ed1ab_0 conda-forge archspec 0.2.3 pyhd8ed1ab_0 conda-forge attrs 23.2.0 pyh71513ae_0 conda-forge backports 1.0 pyhd8ed1ab_3 conda-forge backports.functools_lru_cache 2.0.0 pyhd8ed1ab_0 conda-forge beautifulsoup4 4.12.3 pyha770c72_0 conda-forge blinker 1.7.0 pyhd8ed1ab_0 conda-forge boltons 24.0.0 pyhd8ed1ab_0 conda-forge boolean.py 4.0 pyhd8ed1ab_0 conda-forge brotli-python 1.1.0 py310hc6cd4ac_1 conda-forge bzip2 1.0.8 hd590300_5 conda-forge c-ares 1.28.1 hd590300_0 conda-forge ca-certificates 2024.2.2 hbcca054_0 conda-forge certifi 2024.2.2 pyhd8ed1ab_0 conda-forge cffi 1.16.0 py310h2fee648_0 conda-forge chardet 5.2.0 py310hff52083_1 conda-forge charset-normalizer 3.3.2 pyhd8ed1ab_0 conda-forge cirun 0.30 pyhd8ed1ab_0 conda-forge click 8.1.7 unix_pyh707e725_0 conda-forge clyent 1.2.2 pyhd8ed1ab_2 conda-forge colorama 0.4.6 pyhd8ed1ab_0 conda-forge conda 23.1.0 py310hff52083_0 conda-forge conda-build 3.24.0 py310hff52083_1 conda-forge conda-forge-pinning 2024.04.21.17.21.54 hd8ed1ab_0 conda-forge conda-index 0.4.0 pyhd8ed1ab_0 conda-forge conda-libmamba-solver 23.1.0 pyhd8ed1ab_0 conda-forge conda-pack 0.7.1 pyhd8ed1ab_0 conda-forge conda-package-handling 2.2.0 pyh38be061_0 conda-forge conda-package-streaming 0.9.0 pyhd8ed1ab_0 conda-forge conda-smithy 3.34.1 pyhd8ed1ab_0 conda-forge cryptography 42.0.5 py310h75e40e8_0 conda-forge curl 8.7.1 hca28451_0 conda-forge dataclasses 0.8 pyhc8e2a94_3 conda-forge dbus 1.13.6 h5008d03_3 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge deprecated 1.2.14 pyh1a96a4e_0 conda-forge distlib 0.3.8 pyhd8ed1ab_0 conda-forge distro 1.9.0 pyhd8ed1ab_0 conda-forge editables 0.5 pyhd8ed1ab_0 conda-forge exceptiongroup 1.2.0 pyhd8ed1ab_2 conda-forge expat 2.6.2 h59595ed_0 conda-forge filelock 3.13.4 pyhd8ed1ab_0 conda-forge fmt 9.1.0 h924138e_0 conda-forge freetype 2.12.1 h267a509_2 conda-forge gettext 0.22.5 h59595ed_2 conda-forge gettext-tools 0.22.5 h59595ed_2 conda-forge git 2.44.0 pl5321h709897a_0 conda-forge gitdb 4.0.11 pyhd8ed1ab_0 conda-forge gitpython 3.1.43 pyhd8ed1ab_0 conda-forge glob2 0.7 py_0 conda-forge gmp 6.3.0 h59595ed_1 conda-forge h11 0.14.0 pyhd8ed1ab_0 conda-forge h2 4.1.0 pyhd8ed1ab_0 conda-forge hatch 1.9.4 pyhd8ed1ab_0 conda-forge hatchling 1.21.1 pyhd8ed1ab_0 conda-forge hpack 4.0.0 pyh9f0ad1d_0 conda-forge httpcore 1.0.5 pyhd8ed1ab_0 conda-forge httpx 0.27.0 pyhd8ed1ab_0 conda-forge hyperframe 6.0.1 pyhd8ed1ab_0 conda-forge hyperlink 21.0.0 pyhd3deb0d_0 conda-forge icu 73.2 h59595ed_0 conda-forge idna 3.7 pyhd8ed1ab_0 conda-forge importlib-metadata 7.1.0 pyha770c72_0 conda-forge importlib_metadata 7.1.0 hd8ed1ab_0 conda-forge importlib_resources 6.4.0 pyhd8ed1ab_0 conda-forge isodate 0.6.1 pyhd8ed1ab_0 conda-forge jaraco.classes 3.4.0 pyhd8ed1ab_0 conda-forge jaraco.context 4.3.0 pyhd8ed1ab_0 conda-forge jaraco.functools 4.0.0 pyhd8ed1ab_0 conda-forge jeepney 0.8.0 pyhd8ed1ab_0 conda-forge jinja2 3.1.3 pyhd8ed1ab_0 conda-forge joblib 1.4.0 pyhd8ed1ab_0 conda-forge json5 0.9.25 pyhd8ed1ab_0 conda-forge jsonpatch 1.33 pyhd8ed1ab_0 conda-forge jsonpointer 2.4 py310hff52083_3 conda-forge jsonschema 4.21.1 pyhd8ed1ab_0 conda-forge jsonschema-specifications 2023.12.1 pyhd8ed1ab_0 conda-forge jupyter_core 5.7.2 py310hff52083_0 conda-forge keyring 25.1.0 pyha804496_0 conda-forge keyutils 1.6.1 h166bdaf_0 conda-forge krb5 1.21.2 h659d440_0 conda-forge lcms2 2.16 hb7c19ff_0 conda-forge ld_impl_linux-64 2.40 h41732ed_0 conda-forge lerc 4.0.0 h27087fc_0 conda-forge libarchive 3.6.2 h039dbb9_1 conda-forge libasprintf 0.22.5 h661eb56_2 conda-forge libasprintf-devel 0.22.5 h661eb56_2 conda-forge libcurl 8.7.1 hca28451_0 conda-forge libdeflate 1.20 hd590300_0 conda-forge libedit 3.1.20191231 he28a2e2_2 conda-forge libev 4.33 hd590300_2 conda-forge libexpat 2.6.2 h59595ed_0 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libgcc-ng 13.2.0 h807b86a_5 conda-forge libgettextpo 0.22.5 h59595ed_2 conda-forge libgettextpo-devel 0.22.5 h59595ed_2 conda-forge libglib 2.80.0 hf2295e7_6 conda-forge libgomp 13.2.0 h807b86a_5 conda-forge libiconv 1.17 hd590300_2 conda-forge libjpeg-turbo 3.0.0 hd590300_1 conda-forge liblief 0.12.3 h27087fc_0 conda-forge libmamba 1.4.5 h658169a_0 conda-forge libmambapy 1.4.5 py310h8aae740_0 conda-forge libnghttp2 1.58.0 h47da74e_1 conda-forge libnsl 2.0.1 hd590300_0 conda-forge libpng 1.6.43 h2797004_0 conda-forge libsodium 1.0.18 h36c2ea0_1 conda-forge libsolv 0.7.28 hfc55251_2 conda-forge libsqlite 3.45.3 h2797004_0 conda-forge libssh2 1.11.0 h0841786_0 conda-forge libstdcxx-ng 13.2.0 h7e041cc_5 conda-forge libtiff 4.6.0 h1dd3fc0_3 conda-forge libuuid 2.38.1 h0b41bf4_0 conda-forge libwebp-base 1.4.0 hd590300_0 conda-forge libxcb 1.15 h0b41bf4_0 conda-forge libxcrypt 4.4.36 hd590300_1 conda-forge libxml2 2.12.6 h232c23b_2 conda-forge libzlib 1.2.13 hd590300_5 conda-forge license-expression 30.1.1 pyhd8ed1ab_0 conda-forge lz4-c 1.9.4 hcb278e6_0 conda-forge lzo 2.10 hd590300_1001 conda-forge mamba 1.4.5 py310h51d5547_0 conda-forge markdown-it-py 3.0.0 pyhd8ed1ab_0 conda-forge markupsafe 2.1.5 py310h2372a71_0 conda-forge mdurl 0.1.2 pyhd8ed1ab_0 conda-forge menuinst 2.0.2 py310hff52083_0 conda-forge more-itertools 10.2.0 pyhd8ed1ab_0 conda-forge msrest 0.6.21 pyh44b312d_0 conda-forge nbformat 5.10.4 pyhd8ed1ab_0 conda-forge ncurses 6.4.20240210 h59595ed_0 conda-forge oauthlib 3.2.2 pyhd8ed1ab_0 conda-forge openjpeg 2.5.2 h488ebb8_0 conda-forge openssl 3.2.1 hd590300_1 conda-forge packaging 24.0 pyhd8ed1ab_0 conda-forge patch 2.7.6 h7f98852_1002 conda-forge patchelf 0.18.0 h59595ed_1 conda-forge pathspec 0.12.1 pyhd8ed1ab_0 conda-forge pcre2 10.43 hcad00b1_0 conda-forge perl 5.32.1 7_hd590300_perl5 conda-forge pexpect 4.9.0 pyhd8ed1ab_0 conda-forge pillow 10.3.0 py310hf73ecf8_0 conda-forge pip 24.0 pyhd8ed1ab_0 conda-forge pkginfo 1.10.0 pyhd8ed1ab_0 conda-forge pkgutil-resolve-name 1.3.10 pyhd8ed1ab_1 conda-forge platformdirs 4.2.0 pyhd8ed1ab_0 conda-forge pluggy 1.5.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.42 pyha770c72_0 conda-forge prompt_toolkit 3.0.42 hd8ed1ab_0 conda-forge psutil 5.9.8 py310h2372a71_0 conda-forge pthread-stubs 0.4 h36c2ea0_1001 conda-forge ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge py-lief 0.12.3 py310hd8f1fbe_0 conda-forge pybind11-abi 4 hd8ed1ab_3 conda-forge pycosat 0.6.6 py310h2372a71_0 conda-forge pycparser 2.22 pyhd8ed1ab_0 conda-forge pycryptodome 3.20.0 py310hb0f0acc_0 conda-forge pygithub 2.3.0 pyhd8ed1ab_0 conda-forge pygments 2.17.2 pyhd8ed1ab_0 conda-forge pyjwt 2.8.0 pyhd8ed1ab_1 conda-forge pynacl 1.5.0 py310h2372a71_3 conda-forge pyopenssl 24.0.0 pyhd8ed1ab_0 conda-forge pyperclip 1.8.2 pyhd8ed1ab_2 conda-forge pysocks 1.7.1 pyha2e5f31_6 conda-forge python 3.10.14 hd12c33a_0_cpython conda-forge python-dateutil 2.9.0 pyhd8ed1ab_0 conda-forge python-fastjsonschema 2.19.1 pyhd8ed1ab_0 conda-forge python-libarchive-c 5.1 py310hff52083_0 conda-forge python_abi 3.10 4_cp310 conda-forge pytz 2024.1 pyhd8ed1ab_0 conda-forge pyyaml 6.0.1 py310h2372a71_1 conda-forge readline 8.2 h8228510_1 conda-forge referencing 0.34.0 pyhd8ed1ab_0 conda-forge reproc 14.2.4.post0 hd590300_1 conda-forge reproc-cpp 14.2.4.post0 h59595ed_1 conda-forge requests 2.31.0 pyhd8ed1ab_0 conda-forge requests-oauthlib 2.0.0 pyhd8ed1ab_0 conda-forge requests-toolbelt 1.0.0 pyhd8ed1ab_0 conda-forge rich 13.7.1 pyhd8ed1ab_0 conda-forge ripgrep 14.1.0 he8a937b_0 conda-forge rpds-py 0.18.0 py310hcb5633a_0 conda-forge ruamel.yaml 0.17.40 py310h2372a71_0 conda-forge ruamel.yaml.clib 0.2.8 py310h2372a71_0 conda-forge ruamel_yaml 0.15.80 py310h2372a71_1009 conda-forge scrypt 0.8.24 py310hd2d1899_0 conda-forge secretstorage 3.3.3 py310hff52083_2 conda-forge setuptools 69.5.1 pyhd8ed1ab_0 conda-forge shellingham 1.5.4 pyhd8ed1ab_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge smmap 5.0.0 pyhd8ed1ab_0 conda-forge sniffio 1.3.1 pyhd8ed1ab_0 conda-forge soupsieve 2.5 pyhd8ed1ab_1 conda-forge tk 8.6.13 noxft_h4845f30_101 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge tomli-w 1.0.0 pyhd8ed1ab_0 conda-forge tomlkit 0.12.4 pyha770c72_0 conda-forge toolz 0.12.1 pyhd8ed1ab_0 conda-forge tornado 6.4 py310h2372a71_0 conda-forge tqdm 4.66.2 pyhd8ed1ab_0 conda-forge traitlets 5.14.3 pyhd8ed1ab_0 conda-forge trove-classifiers 2024.4.10 pyhd8ed1ab_0 conda-forge truststore 0.8.0 pyhd8ed1ab_0 conda-forge typer 0.12.3 pyhd8ed1ab_0 conda-forge typer-slim 0.12.3 pyhd8ed1ab_0 conda-forge typer-slim-standard 0.12.3 hd8ed1ab_0 conda-forge typing-extensions 4.11.0 hd8ed1ab_0 conda-forge typing_extensions 4.11.0 pyha770c72_0 conda-forge tzdata 2024a h0c530f3_0 conda-forge urllib3 2.2.1 pyhd8ed1ab_0 conda-forge userpath 1.7.0 pyhd8ed1ab_0 conda-forge virtualenv 20.25.3 pyhd8ed1ab_0 conda-forge vsts-python-api 0.1.25 pyhd8ed1ab_1 conda-forge watchgod 0.8.2 pyhd8ed1ab_0 conda-forge wcwidth 0.2.13 pyhd8ed1ab_0 conda-forge wheel 0.43.0 pyhd8ed1ab_1 conda-forge wrapt 1.16.0 py310h2372a71_0 conda-forge xorg-libxau 1.0.11 hd590300_0 conda-forge xorg-libxdmcp 1.1.3 h7f98852_0 conda-forge xz 5.2.6 h166bdaf_0 conda-forge yaml 0.2.5 h7f98852_2 conda-forge yaml-cpp 0.7.0 h59595ed_3 conda-forge zipp 3.17.0 pyhd8ed1ab_0 conda-forge zstandard 0.22.0 py310h1275a96_0 conda-forge zstd 1.5.5 hfc55251_0 conda-forge ```
Environment resolution with the command ``` mamba create --name t __cuda ``` succeeds with: ``` conda-forge/noarch 14.4MB @ 10.4MB/s 1.5s Transaction Prefix: /home/mark/miniforge3/envs/t All requested packages already installed Preparing transaction: done Verifying transaction: done Executing transaction: done To activate this environment, use $ mamba activate t To deactivate an active environment, use $ mamba deactivate ``` Then updating mamba to 1.4.6 and running the same command: ``` $ mamba install "mamba=1.4.6" --yes && mamba --version && mamba create --name t_1.4.6 __cuda Looking for: ['mamba=1.4.6'] conda-forge/noarch 16.6MB @ 6.1MB/s 2.8s conda-forge/linux-64 39.7MB @ 6.2MB/s 7.9s Pinned packages: - python 3.10.* Transaction Prefix: /home/mark/miniforge3 Updating specs: - mamba=1.4.6 - ca-certificates - certifi - openssl Package Version Build Channel Size ────────────────────────────────────────────────────────────────── Upgrade: ────────────────────────────────────────────────────────────────── - libmamba 1.4.5 h658169a_0 conda-forge + libmamba 1.4.6 h658169a_0 conda-forge Cached - libmambapy 1.4.5 py310h8aae740_0 conda-forge + libmambapy 1.4.6 py310h8aae740_0 conda-forge Cached - mamba 1.4.5 py310h51d5547_0 conda-forge + mamba 1.4.6 py310h51d5547_0 conda-forge Cached Summary: Upgrade: 3 packages Total download: 0 B ────────────────────────────────────────────────────────────────── Downloading and Extracting Packages Preparing transaction: done Verifying transaction: done Executing transaction: done mamba 1.4.6 conda 23.1.0 Looking for: ['__cuda'] conda-forge/noarch 16.6MB @ 6.8MB/s 2.6s conda-forge/linux-64 39.7MB @ 5.4MB/s 8.9s Could not solve for environment specs The following package could not be installed └─ __cuda is missing on the system. ```
traversaro commented 4 months ago

Sorry @hmaarrfk, I had missed your comment. Yes, the problem are similar but different, they boil down to virtual packages to be implemented in different ways in conda and mamba (and also rattler/pixi), so these issues emerge. Indeed the long term solution is for users to use either conda or rattler/pixi, so we reduce the number of different virtual packages implementations from 3 to 2, but users tend to me lazy in change tools (especially when muscle memory of commands to type is involved).

The main problem here is that in the context of https://github.com/conda-forge/conda-forge.github.io/issues/1261 if you try to add archspec support as documented (as of May 2024) in https://conda-forge.org/docs/maintainer/knowledge_base/#microarch, this will result in packages that silently can't be installed at all with mamba, that may be an issue difficult to debug. Probably a possible strategy is to remove the x86_64-microarch-level dependency in unix and x86_64 and microarch_level == 1 builds, so that the downside in mamba will remain that you can't install AVX2 or higher builds, that may be more acceptable as downside.

traversaro commented 1 month ago

I just tested with mamba 2 and the problem is still present. As more packages are added to conda-forge that use archspec-optimized builds as described in https://conda-forge.org/docs/maintainer/knowledge_base/#microarch, all such builds (even the one with microarch_level==1) can't be installed with mamba, resulting in mamba silently installing old version of the packages that are not archspec-optimized.

For example, trying to install the latest version of the graph-tool package works fine on conda, but fails on mamba.

conda:

traversaro@IITBMP014LW012:~$ conda create -n graph-tool graph-tool==2.77.*
Channels:
 - conda-forge
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done

==> WARNING: A newer version of conda exists. <==
    current version: 24.3.0
    latest version: 24.7.1

Please update conda by running

    $ conda update -n base -c conda-forge conda

## Package Plan ##

  environment location: /home/traversaro/miniforge3/envs/graph-tool

  added / updated specs:
    - graph-tool=2.77

The following packages will be downloaded:
[...]

mamba:

traversaro@IITBMP014LW012:~$ mamba create -n graph-tool graph-tool==2.77.*

Looking for: ['graph-tool=2.77']

warning  libmamba Could not parse mod/etag header
warning  libmamba Could not parse mod/etag header
conda-forge/noarch                                  16.0MB @ 638.8kB/s 25.0s
conda-forge/linux-64                                36.9MB @   1.1MB/s 32.2s
Could not solve for environment specs
The following packages are incompatible
└─ graph-tool 2.77**  is not installable because there are no viable options
   ├─ graph-tool 2.77 would require
   │  └─ graph-tool-base [2.77 py310h9e900f9_300|2.77 py311haefbb00_300|2.77 py312h24de238_300|2.77 py38h8c1b0d4_300|2.77 py39hf24311c_300], which requires
   │     └─ _x86_64-microarch-level >=3  but there are no viable options
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 broadwell, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 cannonlake, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 excavator, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 haswell, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 mic_knl, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 skylake, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 x86_64_v3, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 zen, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 zen2, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3 would require
   │        │  └─ __archspec 1 zen3, which is missing on the system;
   │        ├─ _x86_64-microarch-level 4 would require
   │        │  └─ __archspec 1 cascadelake, which is missing on the system;
   │        ├─ _x86_64-microarch-level 4 would require
   │        │  └─ __archspec 1 icelake, which is missing on the system;
   │        ├─ _x86_64-microarch-level 4 would require
   │        │  └─ __archspec 1 skylake_avx512, which is missing on the system;
   │        ├─ _x86_64-microarch-level 4 would require
   │        │  └─ __archspec 1 x86_64_v4, which is missing on the system;
   │        ├─ _x86_64-microarch-level 4 would require
   │        │  └─ __archspec 1 zen4, which is missing on the system;
   │        └─ _x86_64-microarch-level 4 would require
   │           └─ __archspec 1 sapphirerapids, which is missing on the system;
   ├─ graph-tool 2.77 would require
   │  └─ graph-tool-base [2.77 py310hc5c3ccb_100|2.77 py311h0951e8c_100|2.77 py312h7379947_100|2.77 py38hee84d54_100|2.77 py39h45f8f1b_100], which requires
   │     └─ _x86_64-microarch-level >=1  but there are no viable options
   │        ├─ _x86_64-microarch-level 1 would require
   │        │  └─ __archspec 1 core2, which is missing on the system;
   │        ├─ _x86_64-microarch-level 1 would require
   │        │  └─ __archspec 1 k10, which is missing on the system;
   │        ├─ _x86_64-microarch-level 1 would require
   │        │  └─ __archspec 1 nocona, which is missing on the system;
   │        ├─ _x86_64-microarch-level 1 would require
   │        │  └─ __archspec 1 x86_64, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 bulldozer, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 ivybridge, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 nehalem, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 piledriver, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 sandybridge, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 steamroller, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 westmere, which is missing on the system;
   │        ├─ _x86_64-microarch-level 2 would require
   │        │  └─ __archspec 1 x86_64_v2, which is missing on the system;
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 3, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   │        ├─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   │        └─ _x86_64-microarch-level 4, which cannot be installed (as previously explained);
   └─ graph-tool 2.77 would require
      └─ graph-tool-base [2.77 py310h6300a93_400|2.77 py311hf115aa5_400|2.77 py312h71012fb_400|2.77 py38h33ea7c3_400|2.77 py39heddc103_400], which requires
         └─ _x86_64-microarch-level 4.* , which cannot be installed (as previously explained).
traversaro commented 1 month ago

By looking a bit more into this, the problems seems that mamba reports generic microarch as x86_64-v3 (see https://github.com/mamba-org/mamba/blob/83fdeae46572a05a1657395cccccbab74e8710d3/libmamba/src/core/virtual_packages.cpp#L177-L191), while conda force expects x86_64_v3, see https://github.com/conda-forge/microarch-level-feedstock/blob/1b446dbab3999c5e27f1e0b000231f18fa1b6df1/recipe/conda_build_config.yaml#L15 .

Probably it make sense to open a sister issue in https://github.com/conda-forge/microarch-level-feedstock to let the maintainers there be aware of this.

isuruf commented 1 month ago

Yeah we should fix it to report x86_64_v3 which is compliant with archspec.

traversaro commented 1 month ago

Yeah we should fix it to report x86_64_v3 which is compliant with archspec.

Thanks, done in https://github.com/mamba-org/mamba/pull/3404 .