build: source dependencies from conda #204
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In our current setup, we use two package managers to satisfy Monty dependencies:
conda
andpip
. This was fine when we were not distributing Monty. However, to publish and distribute Monty, we need to pick a single source for our dependencies. Today, this needs to beconda
as not all dependencies are available onpip
(e.g.,habitat_sim
).By using
conda
to source all dependencies, when we publishthousandbrainsproject::tbp.monty
, we can specify dependencies that should be installed when someone installsthousandbrainsproject::tbp.monty
. If we do not do this, there is no standard install method for Monty on eitherconda
orpip
. (Without a standard install method, we would be asking users to execute a custom sequence of steps; not impossible, but not as accessible asconda env create
).With the changes in this pull request, the following conda
environment.yml
is expected to work out of the box (once this version is published) and install all dependencies needed for Monty to run:Note
In
environment.yml
above, we need to specify all the channels thattbp.monty
depends on becauseconda
dependency file does not support specifying channels (see: conda/conda-build#532). For example, even thoughtbp.monty
depends onaihabitat::habitat-sim
, in theconda
dependency file this will be truncated tohabitat-sim
. Without specifying the necessary channels, installation will fail ashabitat-sim
is not in thedefaults
. When we specifyaihabitat
in thechannels:
property,conda
install will includeaihabitat::habitat-sim
in the search forhabitat-sim
.