-
Notifications
You must be signed in to change notification settings - Fork 106
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
Delay dependency checks #447
Conversation
With these changes: - pangolin will not fail on missing dependencies unless these are required by the specific command line. In particular: - it will not fail on missing scorpio and/or constellations unless scorpio has to be run as part of the command - it will not fail on missing pangolin-data unless the data is required by the command and is not provided via --datadir - combining the --datadir and --update options is prohibited because of the complicated effects this would need to have on environment- and datadir-installed packages - the --datadir command line help has been adjusted to match recent changes
This is just a bit of extra work on top of what @pvanheus did in #444. |
Ok, I've managed to solve the harder constellations part, too. Together these changes will now allow for running pangolin from a really minimal environment with only scorpio, and no "data" repo dependencies - provided that there is a --datadir with all necessary data components. @pvanheus @AngieHinrichs @aineniamh ready for review :) |
While this is really neat and clean... when people have pangolin v4, but don't have pangolin-data installed in their conda environment, it usually means that they just ran I would rather move in the direction of making the conda environment as up-to-date as possible. For example, if pangolin could detect that the conda environment is outdated, and even update the conda environment, then I floated the idea of pangolin running conda update in a comment in #439, kind of hoping that someone more knowledgeable would say 'sure, give it a try' or 'oh god no, don't do that!', but it seems that with all things conda, you just have to do your best, release it, wait and see in what ways it breaks in someone else's environment. |
I agree with most of what you are saying about the state of the conda dependency management @AngieHinrichs, but I'm seeing the increased flexibility with the proposed changes here more as a starting point for addressing these issues rather than as a source of new issues.
That is true, however the proposed changes will not allow pangolin to run in that situation beyond something simple like |
for dependency, version in version_dictionary.items(): | ||
|
||
if version is None: | ||
continue |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@AngieHinrichs I introduced this check to make sure you will still not be able to "update" something that isn't there already.
To explain a bit my overall idea: I've come to think of pangolin v4 as a piece of software that orchestrates lineage assignment tools, and should do this one thing well, rather than an analysis software. As such, I envision it to work from a "pangolin-core" package/environment where starting from there it would be able to discover additional available components and (and, yes, that's important!) do compatibility checks and inform users of important updates for those components. |
@aineniamh I hope this general idea of pangolin matches yours more or less :) |
I'm very much biased here by my Galaxy perspective (where we would never want to change an existing environment of a tool), but |
Hi @wm75 and @AngieHinrichs, this has gone very stale - I was away on extended leave when it was originally flagged and was not checking notifications. I'm not sure it's worth all the extra development time to do this- I think the system that we have works pretty well for now. I'm going to close the PR but happy to have more discussion about it if there are very strong feelings! |
With these changes:
by the specific command line. In particular:
has to be run as part of the command
by the command and is not provided via --datadir
complicated effects this would need to have on environment- and
datadir-installed packages