-
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
Better support pathogen repositories which place workflows in subdirectories #355
Conversation
Some new tests are failing on Windows, due to path handling.
I'll fix it up. |
…ctories …as this is the direction we're moving. The main change is making the filesystem isolation boundary (i.e. what's mapped to `/nextstrain/build` in a container) a _separate thing_ from the workflow and initial working directory (i.e. what's given to `nextstrain build`). In this codebase, these two things are referred to as the _build volume_ (aka `opts.build`) and the _working volume_. Historically, the working volume given to the runners for `nextstrain build` and `nextstrain shell` _was_ the build volume; now, they're separately considered and sometimes differ. See the included changelog entry for usage details and rationale. For background, I made the initial proposal for this feature¹ on a PR in our pathogen-repo-template repository and some discussion ensued. ¹ <nextstrain/pathogen-repo-guide#16 (comment)> or <https://github.com/tsibley/blab-standup/blob/master/2024-01-25.md>
bf858d2
to
fc2afdf
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 don't have strong feelings about the technical implementation, but I love the idea of the top-level indicator file that works akin to .git
to designate a pathogen directory. I also love that this approach allows us to run the Nextstrain CLI the way that feels most natural (to me, at least) by specifying the directory with the workflow we want to run (nextstrain build ingest
) and not needing to also specify the path to the Snakefile (nextstrain build . -s ingest/Snakefile
which reveals implementation details that we don't necessarily want to formalize).
I also love that you made this happen so quickly after our random coffee/lab chat about it, @tsibley, even if it was to head-off my terrible suggestions involving symlinks! 🌈
This is currently an empty file to indicate the top level pathogen repo. The inclusion of this file allows the `nextstrain build` invocation to work from any directory regardless of runtime. See nextstrain/cli#355 for more details.
This is currently an empty file to indicate the top level pathogen repo. The inclusion of this file allows the `nextstrain build` invocation to work from any directory regardless of runtime. See nextstrain/cli#355 for more details.
This is currently an empty file to indicate the top level pathogen repo. The inclusion of this file allows the `nextstrain build` invocation to work from any directory regardless of runtime. See nextstrain/cli#355 for more details.
This is currently an empty file to indicate the top level pathogen repo. The inclusion of this file allows the `nextstrain build` invocation to work from any directory regardless of runtime. See nextstrain/cli#355 for more details.
This is currently an empty file to indicate the top level pathogen repo. The inclusion of this file allows the `nextstrain build` invocation to work from any directory regardless of runtime. See nextstrain/cli#355 for more details.
…as this is the direction we're moving.
The main change is making the filesystem isolation boundary (i.e. what's mapped to
/nextstrain/build
in a container) a separate thing from the workflow and initial working directory (i.e. what's given tonextstrain build
). In this codebase, these two things are referred to as the build volume (akaopts.build
) and the working volume. Historically, the working volume given to the runners fornextstrain build
andnextstrain shell
was the build volume; now, they're separately considered and sometimes differ.See the included changelog entry for usage details and rationale. For background, I made the initial proposal for this feature¹ on a PR in our pathogen-repo-template repository and some discussion ensued.
¹ nextstrain/pathogen-repo-guide#16 (comment)
or https://github.com/tsibley/blab-standup/blob/master/2024-01-25.md
Related issue(s)
Based on #354.
Checklist