nextstrain / conda-base

Conda package build for nextstrain-base
https://anaconda.org/Nextstrain/nextstrain-base
1 stars 1 forks source link

`KeyError: ''` when running `CONDA_SUBDIR=osx-64 ./devel/build` on arm mac #11

Closed corneliusroemer closed 1 year ago

corneliusroemer commented 1 year ago

Current Behavior

When running CONDA_SUBDIR=osx-64 ./devel/build, I get the following error:

Starting build for nextstrain-base

source tree in: /Users/corneliusromer/code/conda-base/build/src/nextstrain-base-0_1670372113008/work
number of files: 0
Fixing permissions

Adding files for nextstrain-base

ATTENTION: No files added in target nextstrain-base

INFO :: Time taken to mark (prefix)
        0 replacements in 0 files was 0.00 seconds
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/conda/models/version │
│ .py:45 in __call__                                                                               │
│                                                                                                  │
│    42 │   │   │   return arg                                                                     │
│    43 │   │   elif isinstance(arg, str):                                                         │
│    44 │   │   │   try:                                                                           │
│ ❱  45 │   │   │   │   return cls._cache_[arg]                                                    │
│    46 │   │   │   except KeyError:                                                               │
│    47 │   │   │   │   val = cls._cache_[arg] = super(SingleStrArgCachingType, cls).__call__(ar   │
│    48 │   │   │   │   return val                                                                 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
KeyError: ''

During handling of the above exception, another exception occurred:
...

How to reproduce

Steps to reproduce the current behavior:

  1. Setup with ./devel/setup (note: no subdir set, so it's implicitly osx-arm64)
  2. Run CONDA_SUBDIR=osx-64 ./devel/build
  3. See error

macOS 13, osx-arm64

Full log:

conda-base on  main via 🅒 conda-base took 50s 
❯ CONDA_SUBDIR=osx-64 ./devel/build
date: illegal option -- -
usage: date [-jnRu] [-r seconds|file] [-v[+|-]val[ymwdHMS]]
            [-I[date | hours | minutes | seconds]]
            [-f fmt date | [[[mm]dd]HH]MM[[cc]yy][.ss]] [+format]
╱╱ Removing /Users/corneliusromer/code/conda-base/build and /Users/corneliusromer/code/conda-base/locked
╱╱ Building /Users/corneliusromer/code/conda-base/src into /Users/corneliusromer/code/conda-base/build/src

           _
          | |__   ___   __ _
          | '_ \ / _ \ / _` |
          | |_) | (_) | (_| |
          |_.__/ \___/ \__,_|

Loading config files: 

Updating build index: /Users/corneliusromer/code/conda-base/build/src

No numpy version specified in conda_build_config.yaml.  Falling back to default numpy value of 1.16
WARNING:conda_build.metadata:No numpy version specified in conda_build_config.yaml.  Falling back to default numpy value of 1.16
Recipe validation OK
Found 1 recipe
 - nextstrain-base

Assembling all recipes and variants

       Output: nextstrain-base        
┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━┓
┃ Package         ┃ Variant versions ┃
┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━┩
│ target_platform │ osx-64           │
└─────────────────┴──────────────────┘

Initializing mamba solver

Downloading source

Preparing environment for nextstrain-base

Finalizing run for nextstrain-base
conda-forge/osx-64                                          Using cache
conda-forge/noarch                                          Using cache
bioconda/osx-64                                             Using cache
bioconda/noarch                                             Using cache
Reloading output folder: /Users/corneliusromer/code/conda-base/build/src
file:///Users/corneliusromer/code/conda-base/bui..  ??.?MB @  ??.?MB/s 0 failed  0.0s
file:///Users/corneliusromer/code/conda-base/bui.. 127.0 B @   3.8MB/s  0.0s

Starting build for nextstrain-base

source tree in: /Users/corneliusromer/code/conda-base/build/src/nextstrain-base-0_1670372113008/work
number of files: 0
Fixing permissions

Adding files for nextstrain-base

ATTENTION: No files added in target nextstrain-base

INFO :: Time taken to mark (prefix)
        0 replacements in 0 files was 0.00 seconds
╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/conda/models/version │
│ .py:45 in __call__                                                                               │
│                                                                                                  │
│    42 │   │   │   return arg                                                                     │
│    43 │   │   elif isinstance(arg, str):                                                         │
│    44 │   │   │   try:                                                                           │
│ ❱  45 │   │   │   │   return cls._cache_[arg]                                                    │
│    46 │   │   │   except KeyError:                                                               │
│    47 │   │   │   │   val = cls._cache_[arg] = super(SingleStrArgCachingType, cls).__call__(ar   │
│    48 │   │   │   │   return val                                                                 │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
KeyError: ''

During handling of the above exception, another exception occurred:

╭─────────────────────────────── Traceback (most recent call last) ────────────────────────────────╮
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/boa/core/run_build.p │
│ y:372 in build_recipe                                                                            │
│                                                                                                  │
│   369 │   │   │   │   f"\n[yellow]Starting build for [bold]{o.name}[/bold][/yellow]\n"           │
│   370 │   │   │   )                                                                              │
│   371 │   │   │                                                                                  │
│ ❱ 372 │   │   │   final_outputs = build(                                                         │
│   373 │   │   │   │   meta,                                                                      │
│   374 │   │   │   │   None,                                                                      │
│   375 │   │   │   │   allow_interactive=interactive,                                             │
│                                                                                                  │
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/boa/core/build.py:66 │
│ 8 in build                                                                                       │
│                                                                                                  │
│   665 │   │   │   return                                                                         │
│   666 │   │                                                                                      │
│   667 │   │   if m.output.is_package:                                                            │
│ ❱ 668 │   │   │   final_outputs = bundle_conda(                                                  │
│   669 │   │   │   │   m, files_before_script, env, m.output.sections["files"]                    │
│   670 │   │   │   )                                                                              │
│   671 │   │   else:                                                                              │
│                                                                                                  │
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/boa/core/build.py:35 │
│ 3 in bundle_conda                                                                                │
│                                                                                                  │
│   350 │   │   │   )                                                                              │
│   351 │   │   │   final_outputs.append(final_output)                                             │
│   352 │                                                                                          │
│ ❱ 353 │   update_index(                                                                          │
│   354 │   │   os.path.dirname(output_folder), verbose=metadata.config.debug, threads=1           │
│   355 │   )                                                                                      │
│   356                                                                                            │
│                                                                                                  │
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/conda_build/index.py │
│ :259 in update_index                                                                             │
│                                                                                                  │
│    256 │   │   │   │   │   │   │   threads=threads, verbose=verbose, progress=progress,          │
│    257 │   │   │   │   │   │   │   hotfix_source_repo=hotfix_source_repo,                        │
│    258 │   │   │   │   │   │   │   current_index_versions=current_index_versions)                │
│ ❱  259 │   return ChannelIndex(dir_path, channel_name, subdirs=subdirs, threads=threads,         │
│    260 │   │   │   │   │   │   deep_integrity_check=check_md5, debug=debug).index(               │
│    261 │   │   │   │   │   │   │   patch_generator=patch_generator, verbose=verbose,             │
│    262 │   │   │   │   │   │   │   progress=progress,                                            │
│                                                                                                  │
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/conda_build/index.py │
│ :841 in index                                                                                    │
│                                                                                                  │
│    838 │   │   │   │   │   │   │   self._write_repodata(subdir, patched_repodata, REPODATA_JSON  │
│    839 │   │   │   │   │   │   │   t2.set_description("Building current_repodata subset")        │
│    840 │   │   │   │   │   │   │   t2.update()                                                   │
│ ❱  841 │   │   │   │   │   │   │   current_repodata = _build_current_repodata(subdir, patched_r  │
│    842 │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │   │      pins=current_inde  │
│    843 │   │   │   │   │   │   │   t2.set_description("Writing current_repodata subset")         │
│    844 │   │   │   │   │   │   │   t2.update()                                                   │
│                                                                                                  │
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/conda_build/index.py │
│ :748 in _build_current_repodata                                                                  │
│                                                                                                  │
│    745                                                                                           │
│    746                                                                                           │
│    747 def _build_current_repodata(subdir, repodata, pins):                                      │
│ ❱  748 │   r = _get_resolve_object(subdir, repodata=repodata)                                    │
│    749 │   keep_pkgs = _shard_newest_packages(subdir, r, pins)                                   │
│    750 │   new_repodata = {k: repodata[k] for k in set(repodata.keys()) - {'packages', 'package  │
│    751 │   packages = {}                                                                         │
│                                                                                                  │
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/conda_build/index.py │
│ :649 in _get_resolve_object                                                                      │
│                                                                                                  │
│    646 │   SubdirData._cache_[channel.url(with_credentials=True)] = sd                           │
│    647 │                                                                                         │
│    648 │   index = {prec: prec for prec in precs or sd._package_records}                         │
│ ❱  649 │   r = Resolve(index, channels=(channel,))                                               │
│    650 │   return r                                                                              │
│    651                                                                                           │
│    652                                                                                           │
│                                                                                                  │
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/conda/resolve.py:135 │
│ in __init__                                                                                      │
│                                                                                                  │
│    132 │   │   # more, because more modern packages utilize constraints in more sane             │
│    133 │   │   # ways (for example, using run_exports in conda-build 3)                          │
│    134 │   │   for name, group in self.groups.items():                                           │
│ ❱  135 │   │   │   self.groups[name] = sorted(group, key=self.version_key, reverse=True)         │
│    136 │                                                                                         │
│    137 │   def __hash__(self):                                                                   │
│    138 │   │   return (super(Resolve, self).__hash__() ^                                         │
│                                                                                                  │
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/conda/resolve.py:806 │
│ in version_key                                                                                   │
│                                                                                                  │
│    803 │   │   channel = prec.channel                                                            │
│    804 │   │   channel_priority = self._channel_priorities_map.get(channel.name, 1)  # TODO: as  │
│    805 │   │   valid = 1 if channel_priority < MAX_CHANNEL_PRIORITY else 0                       │
│ ❱  806 │   │   version_comparator = VersionOrder(prec.get('version', ''))                        │
│    807 │   │   build_number = prec.get('build_number', 0)                                        │
│    808 │   │   build_string = prec.get('build')                                                  │
│    809 │   │   noarch = - int(prec.subdir == 'noarch')                                           │
│                                                                                                  │
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/conda/models/version │
│ .py:47 in __call__                                                                               │
│                                                                                                  │
│    44 │   │   │   try:                                                                           │
│    45 │   │   │   │   return cls._cache_[arg]                                                    │
│    46 │   │   │   except KeyError:                                                               │
│ ❱  47 │   │   │   │   val = cls._cache_[arg] = super(SingleStrArgCachingType, cls).__call__(ar   │
│    48 │   │   │   │   return val                                                                 │
│    49 │   │   else:                                                                              │
│    50 │   │   │   return super(SingleStrArgCachingType, cls).__call__(arg)                       │
│                                                                                                  │
│ /Users/corneliusromer/code/conda-base/.dev-env/lib/python3.10/site-packages/conda/models/version │
│ .py:170 in __init__                                                                              │
│                                                                                                  │
│   167 │   │   version = vstr.strip().rstrip().lower()                                            │
│   168 │   │   # basic validity checks                                                            │
│   169 │   │   if version == '':                                                                  │
│ ❱ 170 │   │   │   raise InvalidVersionSpec(vstr, "empty version string")                         │
│   171 │   │   invalid = not version_check_re.match(version)                                      │
│   172 │   │   if invalid and '-' in version and '_' not in version:                              │
│   173 │   │   │   # Allow for dashes as long as there are no underscores                         │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
InvalidVersionSpec: Invalid version '': empty version string
corneliusroemer commented 1 year ago

I tested whether setting up CONDA_SUBDIR=osx-64 ./devel/setup would help, unfortunately it doesn't. Same error.