Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Aug 11 09:45
    karl-az commented #2458
  • Aug 11 03:01
    arihantsurana labeled #4560
  • Aug 11 03:01
    arihantsurana opened #4560
  • Aug 10 18:47
    andrecp labeled #4559
  • Aug 10 18:47
    andrecp opened #4559
  • Aug 10 15:20
    isuruf commented #4281
  • Aug 10 14:14
    jezdez closed #4281
  • Aug 10 14:14

    jezdez on main

    Support output packages with bo… (compare)

  • Aug 10 14:14
    jezdez auto_merge_enabled #4281
  • Aug 10 14:14
    jezdez synchronize #4281
  • Aug 10 07:45
    leshikus commented #3910
  • Aug 09 18:40

    jezdez on sphinx-sitemap

    (compare)

  • Aug 09 16:31
    kenodegard commented #4542
  • Aug 09 16:23

    jezdez on main

    Add sphinx-sitemap to docs. (#4… (compare)

  • Aug 09 16:23
    jezdez closed #4555
  • Aug 09 16:22
    jezdez synchronize #4555
  • Aug 09 16:22

    jezdez on sphinx-sitemap

    Add sphinx-sitemap to docs. Re… Update conf.py (compare)

  • Aug 09 16:14
    jakirkham commented #4556
  • Aug 09 16:01
    bryevdv commented #4542
  • Aug 09 16:00
    bryevdv commented #4542
Cheng H. Lee
@chenghlee
You're welcome.
Philip Austin
@phaustin
A compromise for pure python packages between a pypi install and writing your own conda recipe is to build a whl file (which essentially locks the dependency) and install that using build.sh:
https://docs.conda.io/projects/conda-build/en/latest/user-guide/wheel-files.html
matrixbot
@matrixbot
gabm I noticed that conda-build filters the .git folder from being packaged... I actually would like to package the whole .git folder along with the files present.. is there any way around that? https://github.com/conda/conda-build/blob/master/conda_build/utils.py#L1427
Jan Pöppel
@jpoeppel

Hi everyone, I may have mentioned this problem before, but while I did get it to work briefly, I do not belief I found a proper solution. My problem is related to build variants in combination with multiple outputs in a recipe.
As an example, I created a minimal example recipe:

package:
        name: outputvariants
        version: "0.1"

build:
        number: 0

requirements:
        run:
                - out_a
                - out_b

outputs:
        - name: out_a
          script: install_A.sh        # [unix]
          requirements:
                  build:
                        - {{ compiler('c') }}
                        - {{ compiler('cxx') }}
                        - cmake >=3.10
                  host:
                        - boost-cpp {{ boostcpp }}
                  run:
                        - boost-cpp {{ boostcpp }}

        - name: out_b
          noarch: python
          script: install_B.sh
          requirements:
                  host:
                          - python
                  run:
                          - python

with minimal build scripts that only do `touch out[A|B]file.
If i setup my conda_build_config.yaml with at most 2 variants, e.g. as such:

boostcpp: 
   - 1.68
   - 1.69

it builds as expected, but if I add more boost variants, or something else, liek so:

boostcpp: 
   - 1.68
   - 1.69
   - 1.70
   - 1.71
python:
   - 3.6
   - 3.7
   - 3.8

I only get a IndexError:

...
File "/Users/jpoeppel/miniconda3/lib/python3.7/site-packages/conda_build/metadata.py", line 2173, in _get_used_vars_meta_yaml_helper
    apply_selectors=apply_selectors))
  File "/Users/jpoeppel/miniconda3/lib/python3.7/site-packages/conda_build/metadata.py", line 1698, in extract_single_output_text
    output = output_matches[output_index] if output_matches else ''
IndexError: list index out of range

Since I cannot imaging being the only one trying to have multiple outputs build with variants, I must be doing something wrong, but I do not quite get what the problem is. I would be happy about any help!

Jan Pöppel
@jpoeppel
Digging into the code, the error appears to occur, because conda build tries to find an output named according to the implizit meta-package ("outputvariants" in this case), which is added to the output_tuples in the function, but its index can obviously not be found in the "output_matches" variable, which only contains the list of actual outputs.
However, I have no idea, why this does not occur, when the variants are 2 or less...
Ray Donnelly
@mingwandroid
@jpoeppel Please file a bug at github.com/conda/conda-build with full reproduction steps
Since I cannot imaging being the only one trying to have multiple outputs build with variants
indeed, far from it
everything we build for AD is built against a large matrix.
Jan Pöppel
@jpoeppel
@mingwandroid Thanks for the reply. While creating the bug report (#4023), I did figure out that it seems to be a problem with the Python variants. I assume that python variants and/or requirements are handled in a different way than other requirements, causing the error. But I may also just be doing something I am not supposed to with Python variants, but as they are mentioned in the docs, I thought it should be fine.
Mike Boyle
@moble
Hi everyone. Is there any way to build python C extensions on windows with gcc? I tried really hard, but exhausted all hope of the getting the code I'm building working with MSVC (via the feedstock PR conda-forge/spinsfast-feedstock#9). I saw these comments by @duncanmmacleod giving the most helpful suggestions so far. But at link time ld complains that it can't find "-lmsvcr140". Duncan said it wasn't showing up for him in azure, but it is for me. (I don't have any other access to windows machines.) There's some noise on the internet about hacking distutils to point it at vcruntime140 instead. But surely there's a more standard way to handle this, right???
Ray Donnelly
@mingwandroid
@jpoeppel there are some hacks in conda-build to do with python but if you use variants properly (i.e. have a zip_key containing python in it, probably) then those hacks are skipped.
Jan Pöppel
@jpoeppel
@mingwandroid I have not tried using zip_keys yet, but from how I understand the documentations, zip_keys would cause only specific pairings of versions, e.g. in the example above, one boost version with one python version. And it would also not work with 4 boost versions, but only 3 python versions, as the lists would need to be identical lengths, or am I missunderstanding something? Thanks a lot for the help regardless!
Jonathan J. Helmus
@jjhelmus
conda-build 3.20.0 has been tagged, https://github.com/conda/conda-build/releases/tag/3.20.0. Expect packages in the conda-canary channel tomorrow. This release supports Python 2.7 but support for running conda-build in a Python 2.7 or <3.6 environments will be dropped in a 4.0.0 release in the near future. See conda/conda-build#4024 for more discussion.
Dave Hirschfeld
@dhirschfeld
Looking forward to kicking the tyres! :rocket:
Faustin Carter
@FaustinCarter
Hey all, can anyone help shed some light on whether channeldata.json is actually used for anything? The only mentions of it in the docs are here: https://docs.conda.io/projects/conda-build/en/latest/concepts/generating-index.html?highlight=channeldata.json#parts-of-a-channel, but no mention of actual utility.
I'm wondering what negative downstream consequences there are if that file does not exist in a channel (but all the repodata and current_repodata files are in place).
nvm, found it
Anthony Scopatz
@scopatz
Hey Folks! I vaguely recall there was some way to use ccache with conda-build can anyone point me in the right direction here?
Blog posts, docs, etc
Jonathan J. Helmus
@jjhelmus
Anthony Scopatz
@scopatz
Thanks!
Fabien Celier
@fabiencelier
Hello,
Is it possible to build a package that is OS specific (win-64/osx-64/linux-64) but cross Python version ?
I always end up having my Python version pinned in "lib/python3.8/site-packages"
Nehal J Wani
@nehaljwani
26 replies
Matthew R. Becker
@beckermr
Does conda need the repodata.json files for anything?
or does it only pull the compressed ones?
Ray Donnelly
@mingwandroid
Hey Folks! I vaguely recall there was some way to use ccache with conda-build can anyone point me in the right direction here?
Hi @scopatz , conda-build 3.20.x have support for the jinja2 function "ccache(method)" where method can be symlinks, env_vars or native.
Defaults has fairly robust ccache exes, but ccache is moving fast, esp. on Windows support so it might be worth making sure that we're up to date with our ccaches
To see that it's working, you want to do e.g. ls -lrt ~/.ccache during builds and see that the order changes around lots! or run ccache -s to see some stats
probably I want to clear the stats at the start of a build and print them at the end of it, PRs and any testing/fixing very welcome!
Oops, missed Jonathan's comment. I'd like people to kick this feature around a bit for now, I don't think it's quite ready yet.
Anthony Scopatz
@scopatz
Yeah, I am just not even sure how to use it :laughing:
I have been trying to use it on windows, where everything is weird
Ray Donnelly
@mingwandroid
I'll try to kick the tyres a bit later, for sure it'll work better on the other OSes and it is still a bit of an experiment. Isuru didn't want it integrated into conda-build really but I want conda-build's stats reporting to tie into it via calling ccache -s. It can then report if using ccache actually did anything useful for your build or not so you can investigate that (maybe try the other methods, or modify bld.bat/build.sh etc)
Joe Graham
@josgraha
hello all, getting an error when I run conda-build --no-anaconda-upload --python=3.6 .
Scripts/.packagename-pre-link.sh not in info/files
this is from tar check.py, any clues where to look? not too familiar with build errors yet (this is for a noarch py>=3) package
2 replies
I guess I'm probably more interested in how tarcheck.py works and what the inputs are
Matthew R. Becker
@beckermr
@jjhelmus @mingwandroid @chenghlee have you all looked into code signing on osx-arm64? @isuruf @erykoff and I are hitting roadblocks due to missing or invalid signatures coming out of conda-build.
28 replies
J. Emiliano Deustua
@edeustua
This message was deleted
mattchan-tencent
@mattchan-tencent
Hi, is there any guidance on how to use pytest as a part of a conda build recipe?
5 replies
It seems like it's meant to be used with tox for installed packages, but there's significant overlapping functionality with conda build in that case...
mattchan-tencent
@mattchan-tencent
I guess one more question. What about the cases with cmake tests? Do you just run them after the compile in the build phase? Or is there some way to get all the sources, binaries, etc into the test phase?
mattchan-tencent
@mattchan-tencent
(the tests are run with "make test")
Jonathan J. Helmus
@jjhelmus
Typically cmake/autotools tests are run as part of the build rather than in the test phase.
Ray Donnelly
@mingwandroid
@mattchan-tencent I have a preference for tests (provided they are not too expensive, size-wise and time-to-run-wise) to be added to the package itself via conda-build's test metadata. Sometimes this is easy, but sometimes not. Getting the tests into the package itself allows that package to be tested later in different environments which will help greatly with tracking down unexpected behaviours (for example when you update some of the deps)
It might be an idea to split the package into package and package-tests too. Then make the test for package depend on package-tests. That way people who do not care about the tests do not suffer the costs. This would also be a good way to handle tests that are larger (and maybe take longer) .. I would love to find the time to implement multi-level testing too or perhaps giving tests some metadata against which you (or tooling) can filter them (needs_network, needs_super_user, slow_test, heavy_test, etc).
Isuru Fernando
@isuruf
Why does conda-build print warning messages twice? For eg:
No numpy version specified in conda_build_config.yaml.  Falling back to default numpy value of 1.11
WARNING:conda_build.metadata:No numpy version specified in conda_build_config.yaml.  Falling back to default numpy value of 1.11
sometimes 3 times
Multiple meta.yaml files found. The meta.yaml file in the base directory will be used.
WARNING:conda_build.utils:Multiple meta.yaml files found. The meta.yaml file in the base directory will be used.
WARNING conda_build.utils:find_recipe(1219): Multiple meta.yaml files found. The meta.yaml file in the base directory will be used.