bioconda / bioconda-utils

Utilities for building and managing bioconda recipes
MIT License
96 stars 133 forks source link

`bioconda-utils build` errors with `clangxx_osx-arm64 16.* does not exist (perhaps a typo or a missing channel).` #1004

Open corneliusroemer opened 1 month ago

corneliusroemer commented 1 month ago

I've tried to debug the vcftools recipe locally on my osx-arm64 laptop.

I installed bioconda-utils, checkout out to the branch of bioconda-recipes and ran:

bioconda-utils build --docker --mulled-test --git-range master --loglevel debug

But the result is confusing:

❯ bioconda-utils build --docker --mulled-test --git-range master --loglevel debug
12:03:30 BIOCONDA DEBUG get_recipes(recipes/, package='['*']'): *
12:03:30 BIOCONDA WARNING No meta.yaml found in recipes/rnaformer. If you want to ignore this directory, add it to the blacklist.
12:03:30 BIOCONDA INFO Considering total of 9454 recipes.
12:03:30 GIT DEBUG Failed checking if running in CYGWIN due to: FileNotFoundError(2, 'No such file or directory')
12:03:30 GIT DEBUG Popen(['git', 'remote', 'get-url', '--all', 'origin'], cwd=/Users/corneliusromer/code/bioconda-recipes, stdin=None, shell=False, universal_newlines=False)
12:03:30 GIT DEBUG Popen(['git', 'remote', 'get-url', '--all', 'nextstrain'], cwd=/Users/corneliusromer/code/bioconda-recipes, stdin=None, shell=False, universal_newlines=False)
12:03:30 GIT DEBUG Popen(['git', 'merge-base', 'master', 'HEAD'], cwd=/Users/corneliusromer/code/bioconda-recipes, stdin=None, shell=False, universal_newlines=False)
12:03:30 GIT DEBUG Popen(['git', 'cat-file', '--batch-check'], cwd=/Users/corneliusromer/code/bioconda-recipes, stdin=<valid stream>, shell=False, universal_newlines=False)
12:03:30 GIT DEBUG Popen(['git', 'diff-tree', '2c54e527b6a084e574fb78b20005c64fbc4bc415', 'HEAD', '-r', '--abbrev=40', '--full-index', '-M', '--raw', '-z', '--no-color'], cwd=/Users/corneliusromer/code/bioconda-recipes, stdin=None, shell=False, universal_newlines=False)
12:03:30 GIT DEBUG Popen(['git', 'merge-base', 'master', 'HEAD'], cwd=/Users/corneliusromer/code/bioconda-recipes, stdin=None, shell=False, universal_newlines=False)
12:03:30 GIT DEBUG Popen(['git', 'cat-file', '--batch'], cwd=/Users/corneliusromer/code/bioconda-recipes, stdin=<valid stream>, shell=False, universal_newlines=False)
12:03:30 BIOCONDA INFO Constraining to 1 git modified recipes (vcftools).
12:03:30 BIOCONDA INFO Processing 1 recipes (vcftools).
12:03:30 BIOCONDA INFO Using docker image quay.io/bioconda/bioconda-utils-build-env-cos7:3.3.1 for building.
12:03:30 BIOCONDA INFO Generating DAG
Loading Recipes: 100%|█████████████████████████████████████████████████████████████████████| 1/1 [00:00<00:00,  1.29it/s]
12:03:31 BIOCONDA INFO 1 recipes to build and test: 
vcftools
12:03:31 BIOCONDA INFO Determining expected packages for recipes/vcftools
WARNING: Setting build platform. This is only useful when pretending to be on another platform, such as for rendering necessary dependencies on a non-native platform. I trust that you know what you're doing.
WARNING: No numpy version specified in conda_build_config.yaml.  Falling back to default numpy value of 1.22
Adding in variants from internal_defaults
Adding in variants from /Users/corneliusromer/micromamba/envs/bioconda-utils/conda_build_config.yaml
Adding in variants from /Users/corneliusromer/micromamba/envs/bioconda-utils/lib/python3.10/site-packages/bioconda_utils/bioconda_utils-conda_build_config.yaml
12:03:32 ASYNCIO DEBUG Using selector: KqueueSelector
conda-forge/osx-arm64: 79.5MB [00:02, 34.9MB/s]                                                | 0/10 [00:00<?, ?files/s]
conda-forge/noarch: 93.4MB [00:02, 35.6MB/s]                                           | 1/10 [00:04<00:37,  4.17s/files]
conda-forge/osx: 217MB [00:09, 23.2MB/s]                                               | 2/10 [00:09<00:38,  4.76s/files]
bioconda/linux-aarch64: 981kB [00:00, 33.9MB/s]                                        | 3/10 [00:15<00:36,  5.26s/files]
bioconda/linux: 37.5MB [00:06, 5.95MB/s]/s]]12MB/s]
conda-forge/linux-aarch64: 93.6MB [00:16, 5.94MB/s]█▌                                  | 5/10 [00:17<00:14,  2.82s/files]
bioconda/osx-arm64: 25.6kB [00:00, 926MB/s]5.2MB/s]
bioconda/osx: 29.8MB [00:03, 7.89MB/s]█████████████████████▍                           | 6/10 [00:19<00:10,  2.64s/files]
conda-forge/linux: 258MB [00:19, 13.8MB/s]████████████████████████▎                    | 7/10 [00:19<00:05,  1.96s/files]
bioconda/noarch: 37.4MB [00:08, 4.68MB/s]███████████████████████████████████████       | 9/10 [00:27<00:02,  2.84s/files]
Downloading: 100%|████████████████████████████████████████████████████████████████████| 10/10 [00:28<00:00,  2.84s/files]
Adding in variants from argument_variants
Attempting to finalize metadata for vcftools
Reloading output folder (local): ...working... done
Getting pinned dependencies: ...working... failed
WARNING: failed to get package records, retrying.  exception was: Unsatisfiable dependencies for platform osx-arm64: {MatchSpec("clangxx_osx-arm64=16")}
Encountered problems while solving:
  - nothing provides requested clangxx_osx-arm64 16.*

Could not solve for environment specs
The following package could not be installed
└─ clangxx_osx-arm64 16.*  does not exist (perhaps a typo or a missing channel).
Reloading output folder (local): ...working... done
Getting pinned dependencies: ...working... failed
Reloading output folder (local): ...working... done
Getting pinned dependencies: ...working... failed
Reloading output folder (local): ...working... done
Getting pinned dependencies: ...working... failed
ERROR: Failed to get package records, max retries exceeded.
Reloading output folder (local): ...working... done
Getting pinned dependencies: ...working... done
Reloading output folder (local): ...working... done
Getting pinned dependencies: ...working... done
Error: bad character '*' in package name dependency '*'

I don't know how to proceed. I'd like to see what environment was requested to be installed, but even when running with debug loglevel no such information is actually printed :/

Would be nice if in debug mode conda/mamba was run likewise with verbosity flags.

corneliusroemer commented 1 month ago

Recipe I encountered this on: https://github.com/bioconda/bioconda-recipes/pull/49102

martin-g commented 1 month ago

https://anaconda.org/conda-forge/clangxx_osx-arm64/files lists https://anaconda.org/conda-forge/clangxx_osx-arm64/16.0.6/download/osx-arm64/clangxx_osx-arm64-16.0.6-h54d7cd3_16.conda deployed 1 month and 2 days ago. There are some newer versions deployed earlier today too.

corneliusroemer commented 1 month ago

I know, it's super weird - I have no clue what's going on and it's frustrating that in debug mode I get no information about what the spec is the solver is trying to solve :/

I've made a local build with no issue whatsoever on macos-arm64

micromamba create -n vcftools-build --platform osx-arm64 make clangxx autoconf automake libtool pkg-config zlib perl
micromamba activate vcftools-build
bash
wget https://github.com/vcftools/vcftools/archive/v0.1.16.tar.gz
tar xvf v0.1.16.tar.gz 
cd vcftools-0.1.16/
./autogen.sh
./configure
make
make install
install_name_tool -add_rpath /opt/homebrew/opt/zlib/lib ./vcftools-0.1.16/src/cpp/vcftools
install_name_tool -add_rpath /opt/homebrew/opt/llvm/lib ./vcftools-0.1.16/src/cpp/vcftools
install_name_tool -add_rpath /opt/homebrew/opt/llvm/lib/c++ ./vcftools-0.1.16/src/cpp/vcftools
$ ./vcftools-0.1.16/src/cpp/vcftools 

VCFtools (0.1.16)
© Adam Auton and Anthony Marcketta 2009

Process Variant Call Format files

For a list of options, please go to:
        https://vcftools.github.io/man_latest.html

Alternatively, a man page is available, type:
        man vcftools

Questions, comments, and suggestions should be emailed to:
        vcftools-help@lists.sourceforge.net