-
Notifications
You must be signed in to change notification settings - Fork 15
fix: check if miniconda is present before installation, closes #47 #48
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
Closed
Closed
Changes from all commits
Commits
Show all changes
4 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
If the setup step is skipped, conda won't be set up with
.snakemake.environment.yamlas the default environment. Will snakemake then not be available as a consequence? If so, I imagine we need an additional step that installssnakemakeinto the base environment, or creates a snakemake conda environment, if conda is already available.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.
the idea is that this check is specific for the miniconda setup step. when you run this step twice, as we do in the standard snakemake testing workflow, the env is already present and checked out from the first step, including snakemake. the test in this repo succeeded, meaning it works as expected. that's why I would also not test for any conda installation, as this could be the wrong one, only for the specific miniconda3 one.
Uh oh!
There was an error while loading. Please reload this page.
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.
Gotcha yes, I see the
containerizestep would trigger a second setup miniconda step so there isn't a need for a secondrunstep.Regarding testing for
miniconda3: if the workflow includessetup-minicondaupstream, then I believe the current implementation would not install snakemake. Or am I missing something? For example, ifsetup-minicondais used to enablepytest: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.
Right. This is an edge case. A custom workflow with another setup-miniconda@v3 step would skip installing snakemake and fail. Is this a risk we can take (honest question)? In the end, the github action needs to work mainly for the test workflows, and it does so by wrapping several steps into a single one. In the example you posted, one would need to work around this by replacing the snakemake action with some selected steps.
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.
It's actually an important use-case, in my opinion. An extension is of this is to follow the
snakemake-github-actionwith integration tests, which would not be possible if the action needs to be run in a separate job. Why limit the action to only operate in jobs that only use the snakemake github action?What could go wrong by checking for a conda installation more generally, and updating/installing the snakemake environment if i conda exists?
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.
Hi Ezra, no rush I think this is probably going to be fixed upstream in miniconda, see David's other PR here. I've converted this PR to draft and we might close it without merging.
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.
Thanks @m-jahn! I see constructor has been updated, and miniconda has been rebuilt (here). Is snakemake github actions now working as usual on your end? Ours is still failing with the same error as before.
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.
as of 30 minutes ago our workflows are still failing at the test report step -- so no fix in sight...
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.
Sorry, I was out sick, so I only find time to follow up on this now.
It also still fails for the CI runs where I first noticed this. However, with one difference to the errors that I previously saw. Namely, these kinds of warnings (on the initial installation of miniconda3, which works) are gone:
So I think the constructor update is actually doing, what the original issue here was about:
conda/conda-libmamba-solver#798
But the re-installation error persists. So I think this might simply be a separate issue. Although I think we should not need to fix this here, but this is probably rather something where the
miniforgeinstaller should more gracefully handle existing installations -- as I guess it did before?I'm looking into this now, hope to have some better idea where to fix this later. And if we get stuck here, I would opt for pinning to the previous working version for now (#49), so everyone can get on with their actual work, not waiting for CI.
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.
sounds like a plan 👍