Closed rainwoodman closed 6 years ago
Thanks for the info. Though TBH am not surprised that conda-build
3 is incompatible with conda-build-all
. Would recommend sticking to conda-build
2 when using conda-build-all
.
At this time, it is unclear to me to what extent conda-build
3 has replaced conda-build-all
and whether it makes sense to update conda-build-all
to be compatible. Would be interested to hear other people's thoughts on this though.
Oops. Conda-build 3 has a lot of new stuff.
The only documentation that is closest to a migration guide is the blog on continuum.io, at https://www.continuum.io/blog/developer-blog/package-better-conda-build-3
The essence of conda-build-all is to incrementally build/rebuild a single recipe template for a list of requirement-hashes. The 'variants' feature in conda-build might be useful for simplifying conda-build-all
's code base:
Meant to include you on this some time ago, @msarahan, and must have forgotten. Reminded by our discussion today about conda-build
3. Admittedly we are doing stuff in conda-build-all
that uses non-API stuff from conda-build
. So no surprises things don't work without some changes. It will be up to us maintaining/using conda-build-all
to fix this in some sensible way obviously. Though any tips you might have would certainly be appreciated.
everything becomes a variant in cb3. Although you can pass in environment variables like you could for cb2, you can't access then in the same way. All the loaded variants from any source are available as the metadata_object.config.variant
dictionary, which is one element of the expanded matrix present in metadata_object.variants
so here rather than config.CONDA_NPY, you'd have metadata_object.config.variant['numpy']
and note that the config is not global - it is a per-metadata object thing.
It's very easy to add properties to a given config instance with CONDA_NPY just returning the value of its self.variant.get('numpy'). I'll try to do that, but PRs also welcome. That might be a good way to not require conda-build-all modification for at least a little while longer.
I'd mention that we do want to build packages pinning to a version of mpich/openmpi with conda-build-all. The use case is to have dummy packages for cray-mpi and sgi-mpt, thus ship pre-compiled binaries for cray/sgi computers together with regular mpich / openmpi based binaries. Does this require cb3?
I don't think it's ever accurate to say that something requires cb3. If you don't use it, though, you'll need to have many more recipes, or some alternate scheme for handling the variants. It's not that cb3 enables unique package builds so much as it makes them much easier.
With the new cross-compilation system it becomes urgent for us to either find a way to get conda-build-all working with conda-build, or come up with some bash voodoo to achieve the same functionality. Which routine shall I take?
Why don't we get cb3 to recognize the CONDA_* env vars, so that hopefully cb3 "just works" with c-b-a? If you have time for a PR, that would be great. Otherwise I can try to get to it soon.
It's the best if you can do a PR -- such that I follow and have a better grab of where things are.
On Tue, Oct 17, 2017 at 6:26 AM, Mike Sarahan notifications@github.com wrote:
Why don't we get cb3 to recognize the CONDA_* env vars, so that hopefully cb3 "just works" with c-b-a? If you have time for a PR, that would be great. Otherwise I can try to get to it soon.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/conda-tools/conda-build-all/issues/89#issuecomment-337230577, or mute the thread https://github.com/notifications/unsubscribe-auth/AAIbTOalyGm-MjNlLkEKbMEIb22JWwJ5ks5stKsHgaJpZM4ORpW3 .
conda-build-all version 1.0.4 fails with conda-build 3.0.3