Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support some common conda-based workflows #17

Open
bollwyvl opened this issue Dec 21, 2023 · 0 comments
Open

Support some common conda-based workflows #17

bollwyvl opened this issue Dec 21, 2023 · 0 comments
Labels
enhancement New feature or request

Comments

@bollwyvl
Copy link
Contributor

Elevator Pitch

Offer some additional declarative support for using conda-based tools in doitomlworkflows without adding any hard dependencies, such as with a doitoml[conda].

Motivation

Doit works fairly well with conda (given an outer environment with python and doit), but leads to a lot of boilerplate.

Design Ideas

flowchart TB
    partial.env.yml -- inherit_from --> another.env.yml
    partial.env.yml -- conda-lock --> lock.yml --> lock.txt
    partial.env.yml --> environment.yml --> readthedocs.org & mybinder.org 
    lock.txt -- create --> prefix/conda-meta/history
    prefix/conda-meta/history --> conda-run --> actions
    lock.txt -- environment_file --> construct.yml --> installer.sh & installer.exe & installer.pkg
    meta.yaml -- conda build --> package.conda
    recipe.yaml -- boa build --> package.conda
    package.conda --> construct.yml
  • build conda.lock.txt files from environment.yml files, with support for
    • declarative multiple inheritance of yaml files
    • solve matrices with multiple factors (with punch-out)
    • platform-specific dependencies
  • build portable environment.yml for consumption on e.g.
    • readthedocs.org
    • mybinder.org
  • creating conda environments
    • selecting/provisioning $CONDA_EXE
  • modifying actions with [conda, run, --prefix, "{prefix}", --no-capture-output]
  • build constructor installers from construct.yaml
  • build .conda packages from meta.yaml and recipe.yaml

Prior art

  • jupyterlab-fonts
    • requires a preflight to pre-calculate some values, which is undesirable
@bollwyvl bollwyvl added the enhancement New feature or request label Dec 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant