-
Notifications
You must be signed in to change notification settings - Fork 20
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
Improvements for non-docker (native) usage #164
Comments
This is my proposed solution, I think some variant of option 1: Don't use any default runtime if the
This forces naive users to be familiar with the different runtime options. |
@victorlin That change would break several existing usages in our CI and unknown others out in the wild. I'm disinclined to make it as I'm not sure what benefit it provides over just improving the error message when the runtime isn't available.
While I absolutely think we should have good, clear docs and explanations for the different runtime options, I don't think it's actually a good goal to force users to be familiar with them, esp. at first. A good goal in my mind (which we've been making progress towards) is to make the runtimes as interchangeable as possible. Either of @jameshadfield's options basically sound reasonable to me, although I think I have a preference for option 1 for now with graduation to option 2 later once some improvements to how |
Context: This issue comes from this PR comment thread
When installing nextstrain-cli via our install instructions in a native environment, step 5:
does more than simply confirm it works, it's critical to setting up the CLI itself if you are a native user. Without this, the default runner is docker and so executing a
build
/view
command results in the following error:Improvements
Option 1
We shouldn't attempt to run in docker when it is not available. We could either detect that docker is not available (which we do during
nextstrain check-setup
) and display help instead, or catch the error and display help. Help could be along the lines of:Option 2
If there is only one runtime supported (as seen in the output of
nextstrain check-setup
) and no runtime is specified in~/.nextstrain/config
, then runningnextstrain {cmd}
should use the only supported runtime. This would be my interpretation of "It Just Works".Defaults aren't sandboxed
Noticed while exploring this, is that the default runner is stored in
~/.nextstrain/config
(on MacOS at least). We encourage users to install the CLI in conda environments, however the config lives out of the environment. This is broadly consistent with other tools (e.g. git's config is in~/.gitconfig
) and so is probably considered a feature not a bug, but it was something I noticed for the first time here.The text was updated successfully, but these errors were encountered: