mamba-org / boa

The fast conda package builder, based on mamba
https://boa-build.readthedocs.io/en/latest/
BSD 3-Clause "New" or "Revised" License
256 stars 56 forks source link

use strict channel prio if configured #115

Open wolfv opened 3 years ago

johanneskoester commented 1 year ago

Hi @wolfv. I currently see on bioconda that conda mambabuild does not seem to respect strict priority. Is this right? How can we fix it?

johanneskoester commented 1 year ago

Test case:

Recipe:

{% set name = "recetox-aplcms" %}
{% set version = "0.10.3" %}
{% set github = "https://github.com/RECETOX" %}

package:
  name: "r-{{ name|lower }}"
  version: "{{ version }}"

source:
  url: "{{ github }}/recetox-aplcms/archive/refs/tags/v{{ version }}.tar.gz"
  sha256: e141a20b0b9737045575ce7eb521131fafc5eaaa702903d21ae3e2ced45587a0

build:
  number: 2
  noarch: generic
  rpaths:
    - lib/R/lib/
    - lib/
  script_env:
    - RGL_USE_NULL=TRUE # avoid warning at test-time
  script: R CMD INSTALL --build . 

requirements:
  host:
    - r-base =4.2
    - r-mass
    - bioconductor-mzr
    - r-splines2
    - r-doparallel
    - r-foreach
    - r-iterators
    - r-snow
    - r-rcpp
    - r-arrow >=7.0.0,<10.0.0
    - r-dplyr
    - r-tidyr
    - r-stringr
    - r-stringi
    - r-tibble
  run:
    - r-base =4.2
    - r-mass
    - bioconductor-mzr
    - r-splines2
    - r-doparallel
    - r-foreach
    - r-iterators
    - r-snow
    - r-rcpp
    - r-arrow >=7.0.0,<10.0.0
    - r-dplyr
    - r-tidyr
    - r-stringr
    - r-stringi
    - r-tibble

test:
  commands:
    - $R -e "library('recetox.aplcms')"

about:
  home: "{{ github }}"
  license: GPL-2.0
  license_file: LICENSE
  summary: apLCMS is a software which generates a feature table from a batch of LC/MS spectra. A modified fork of the original apLCMS by Tianwei Yu.

extra:
  recipe-maintainers:
    - hechth
    - martenson
    - maximskorik
  identifiers:
    - doi:10.1093/bioinformatics/btp291
    - doi:10.1186/1471-2105-11-559
    - doi:10.1021/pr301053d
    - doi:10.1093/bioinformatics/btu430
    - doi:10.1038/s41598-020-70850-0
  container:
    extended-base: True

.condarc:

channels:
  - conda-forge
  - bioconda
  - defaults
channel_priority: strict
auto_activate_base: false

Output of conda mambabuild (excerpt):

    r-magrittr:                2.0.3-r42h06615bd_1         conda-forge                                                                                                 
    r-mass:                    7.3_60-r42h57805ef_0        conda-forge                                                                                                            
    r-ncdf4:                   1.21-r42h93dc0a4_1          conda-forge                                                                                                            
    r-pillar:                  1.9.0-r42hc72bb7e_0         conda-forge                                                                                                            
    r-pkgconfig:               2.0.3-r42hc72bb7e_2         conda-forge                                                                                                            
    r-purrr:                   1.0.1-r42h133d619_0         conda-forge                                                                                                            
    r-r6:                      2.5.1-r42hc72bb7e_1         conda-forge                                                                                                            
    r-rcpp:                    1.0.10-r42h38f115c_0        conda-forge                                                                                                            
    r-rcpparmadillo:           0.12.2.0.0-r42h358215d_0    conda-forge                                                                                                            
    r-rlang:                   1.1.1-r42ha503ecb_0         conda-forge                                                                                                            
    r-snow:                    0.4_4-r42hc72bb7e_1         conda-forge                                                                                                            
    r-splines2:                0.4.8-r42hbf9dc1e_0         conda-forge                                                                                                            
    r-stringi:                 1.7.6-r42h884c59f_0                                                                                                                                
    r-stringr:                 1.5.0-r42h785f33e_0         conda-forge                                                                                                            
    r-tibble:                  3.2.1-r42h133d619_1         conda-forge                                                                                                            
    r-tidyr:                   1.3.0-r42h38f115c_0         conda-forge                                                                                                            
    r-tidyselect:              1.2.0-r42hc72bb7e_0         conda-forge                                                                                                            
    r-utf8:                    1.2.3-r42h133d619_0         conda-forge                                                                                                            
    r-vctrs:                   0.6.2-r42ha503ecb_0         conda-forge                                                                                                            
    r-withr:                   2.5.0-r42hc72bb7e_1         conda-forge  

As you can see, r-stringi is taken from defaults. This is a problem because the version taken from defaults is linked against another icu, seemingly even without properly pinning to it via the runtime dependencies.

Versions:

johanneskoester commented 1 year ago

PR with hopefully a fix can be found here: https://github.com/mamba-org/boa/pull/347