-
Notifications
You must be signed in to change notification settings - Fork 92
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
Absorb in constructor
#294
Comments
As an admittedly non-active contributor to both projects I'm not sure how I feel about this. They were constructed for different purposes, and output different types of environment assets. It's not clear to me how much savings you're really going to achieve, whether measured in lines of code or human hours. But as someone who wants to see both projects fully supported, if it is clear that this move would make it easier to achieve that, I'd get behind it. My final concern is this: "some conda-pack stuff will be removed if not needed." I just want to make sure that is referring only to redundant code, and not a suggestion to remove features of conda-pack. conda-pack tends to be more frequently integrated into unattended workflows, and it may not be fully appreciated what dependencies this or that feature of the tool are out there. |
Thanks for the comments @mcg1969. Right now I want to see how people feel about it, this is not going to be rushed or anything. My main idea is that since both tools allow redistribution of environments in one way or another, it would make sense to join forces instead of reimplementing some core logic (e.g. what if we want to conda-pack a lockfile). If I had to rewrite both
Definitely this. I don't intend to remove features just because I don't use them 😬 |
I like the idea. |
This sounds sensible. Marketing-wose conda-pack is the better name IMO. |
I like it as well, and would suggest sticking with |
Used conda-pack a while ago on daily basis with pyspark and called it even multiple times a day to distribute my current DataScience conda environment to all the Spark workers on ephemeral clusters. For me constructor and conda-pack are two complete different things:
Those differences in scope, goals, user base of both tools even go to the point, that I wonder why the tldr; I would not do that merge/absorb, even if there are some similarities in the codebase as both tools serve a different purpose and userbase. |
Thanks for the detailed comparison, @dbast! I agree in some points and it is useful to have these side by side. I'll answer below, one by one:
I used constructor shell scripts for the same HPC-related purpose because it was the tool I knew. Not saying it's the best for that, but it works. Maybe conda-pack has more specific options, but that's not a blocker.
constructor installers are used very often in CI pipelines. Some teams produce nightly installers of their applications.
I hope we can achieve better UX in constructor by working together in a single tool instead of separate codebases.
Yes, in a way constructor has a superset of functionalities. EULA is one of them, and it's not required. However, I wouldn't say that conda-pack artifacts are necessarily exempt from EULA requirements (not to be confused with license redistribution).
Correct. It's just a different output format.
That's a very fair point I hadn't considered. I'm not pushing hard for this, btw. I am just saying that there's an overlap of useful abstractions in the codebase that would benefit several projects (conda-docker is another one). My ideal project would be a Maybe a different compromise here is to expose better conda environment abstractions in a common library or something. Or just do nothing about the codebase but have better documentation and tutorials about the intended purpose of these similar but different tools. |
While you can distribute on a HPC via constructor by running a command/script on all machines, the pyspark case is different as you need a yarn compatible .tar.gz or zip file of the environment (not a self extracting script) so that you can give it as So conda-pack is compressing an environment that pre-exists almost like |
Idea
Merge
conda-pack
withconstructor
in a way thatconstructor
can outputconda-pack
files as one of the possible output artifacts.Why
Expected outcome
constructor
, with conda-pack being imported as a regular 3rd party library.constructor
.constructor
.constructor
and archive this repository and the corresponding feedstocks.Alternatives
conda-docker
outputs as part of the migration too.cc @xhochy @conda/constructor
The text was updated successfully, but these errors were encountered: