-
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
view: Support narratives #129
Conversation
Previously the launched Auspice would either show baked in test narratives or no narratives at all, depending on the Auspice version. Resolves #128.
f27cbc0
to
0a02324
Compare
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.
I love how simple this change is, but it won't support the interface for narratives files we've been recommending in our documentation. I think we've always recommended that users store their narratives in a separate narratives/
directory to distinguish descriptions of datasets from the datasets themselves. Asking users to store their files in the same directory for nextstrain view
and in different directories for auspice view
will be confusing.
If we want to generally avoid pass-through arguments, could we add an optional argument for --narratives-dir
to support the currently recommended file system layout?
I'm also curious about @jameshadfield's thoughts here. If a single directory for auspice JSONs and narratives would be easier for users anyway, we could rethink our historical choice to split these files into separate directories.
I'll note that we enforce this pattern ( From a broader (and more debatable) perspective, should the CLI expose the same options as the tool it's wrapping? For instance, with |
Hmm. This is super helpful feedback and will change the implementation of this PR, so thank you both! For context, the main reason Given that, I see When
It feels weird to make the main I have another proposal:
This is backwards incompatible, but only if you have some datasets in a directory which also has an At the same time, it supports an arbitrary directory containing a pile of dataset and/or narrative files (except for the narrow case of also containing an
Good point! I think this is the only place we truly require it, though? I'd love if we starting keeping a record of design decisions like this in a central place, so we can refer back to why we made them. Constraints like this where "there's only one way to do it" can be useful when the alternatives are not reasonably possible to implement. Alternatives, in this case, could be allowing both kinds of files at the repo root, at arbitrary paths, or at some single but per-repo configurable path. It'd be helpful to know what was considered or not considered and why choices were chosen or not.
I think that wrappers like the CLI should generally strive to avoid pass-thru args when possible, as it defeats much of the benefit of wrapping, which is an interface that intends to be smaller, unified across disparate tools, and reside at a conceptually different level. At the same time, pass-thru is sometimes necessary and still the best choice for supporting advanced/uncommon use cases. See also #128, where @huddlej and I touched on pass-thru arguments:
|
Interesting thoughts, as always. I think all of our build pipelines have adopted the convention of using I'll note that |
Nod. For core and staging, eventually, I think it'd be useful to move the narratives into our production S3 buckets used for datasets. This could be namespaced under a For Groups, the current CLI interface in development centers around existing nextstrain.org URLs, e.g.
Oh, what about {Linux, macOS, Windows} is preventing this? |
Closing, as we're going to implement a different solution (described in my comment above). I'll update #128 with the summary. |
Previously the launched Auspice would either show baked in test
narratives or no narratives at all, depending on the Auspice version.
Resolves #128.