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

Add more output formats (Docker, conda-pack) #730

Open
2 tasks done
jaimergp opened this issue Nov 10, 2023 · 0 comments
Open
2 tasks done

Add more output formats (Docker, conda-pack) #730

jaimergp opened this issue Nov 10, 2023 · 0 comments
Labels
type::feature request for a new feature or capability

Comments

@jaimergp
Copy link
Contributor

Checklist

  • I added a descriptive title
  • I searched open requests and couldn't find a duplicate

What is the idea?

constructor is able to generate installers for Linux, macOS, and Windows, using an array of formats (SH, PKG, EXE, respectively). However, there's nothing special about these "installers" they are just "artifacts" that "pack" a number of conda packages.

The idea here would be to teach constructor how to generate additional artifact formats, like:

  • Docker containers via conda-docker
  • Tarballs via conda-pack

Why is this needed?

constructor would slowly become an interface for packaging and distributing conda environments. There is plenty of duplicated logic across this projects and we would benefit from a single maintenance hub for all of them. There are bits of conda-pack internals that would be lovely to have in constructor's code (like the Environment abstraction).

What should happen?

Users could just have a construct.yml like this:

name: Scripts
version: X
# installer_type: all
artifacts:
  - container  # via conda-docker
  - conda-pack
channels:
  - http://repo.anaconda.com/pkgs/main/
specs:
  - python

Additional Context

This is the other side of conda/conda-pack#294.

We could take a look and see how feasible this is. constructor was always built with the "installer" idea in mind, so some concepts in the config file and code base might be too coupled. In that case, a separate tool that encompasses all these usages with their nuances could be better welcome (e.g. conda-bundle).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type::feature request for a new feature or capability
Projects
Status: 🆕 New
Development

No branches or pull requests

1 participant