-
Notifications
You must be signed in to change notification settings - Fork 27
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
Add rworkflows #48
Add rworkflows #48
Conversation
Hi @bschilder thanks for your work on this. I don't think Rproj files belong in git -- these are user preferences rather than a part of the package; after all I don't include .emacs ... Also for instance if I read this correctly something like I'm concerned about the support costs of rworkflows, which I am not familiar with and which would fall on maintainer shoulders if your interests were to migrate elsewhere (the first commit to Rsamtools in 2009...). I'm also not confident that the workflow is 'doing the right thing' and will continue to do the right thing, with respect to versioning. For instance the Linux distribution appears to use R-devel and bioconductor/bioconductor_docker:devel, which is correct for the current and next Bioconductor release cycle, but will be incorrect for the cycle after that (bioconductor has a twice yearly release cycle whereas R has an annual cycle; bioconductor devel anticipates the user environment when it becomes release, so bioc-devel only builds on R-devel 1/2 the time). Likewise macOS and Windows seem to be using R 'latest' but bioc-devel, which is not how Bioconductor distributes packages (or perhaps 'latest' is a synonym for R-devel, but then this just highlights the implicit support costs...). I see also 'as_cran' but Bioconductor does not check packages that way, using instead the R environment defined at http://bioconductor.org/checkResults/release/bioc-LATEST/Renviron.bioc. The issue
seems to be incorrect -- the pattern is |
Thanks for all the thoughtful comments @mtmorgan !
I agree, this was added by mistake since I assumed you already had those file types added to your .gitignore. I can fix this.
True, but that's kind of the point of I do understand the fear, but the same is true for any package or software that is maintained on a volunteer basis, including If it's any consolation, I currently maintain >25 R packages that all depend on
I'm open to suggestions regarding the 'right thing' to do! As a developer of a handful of Bioc packages myself, I'm very much interested in making My logic with having Linux use the devel version was that it would allow developers to be ahead of the curve, whereas Mac/Windows reflects the latest release. These are of course all things you have full control over within your yaml file. I've done this step for you, but the R function
You're welcome to change any of the
I see, perhaps there's a setting in My larger concern were the Warning messages. I'm not familiar with C code myself, but perhaps you'll have some insights into this. ❯ checking compiled code ... WARNING
File ‘Rsamtools/libs/Rsamtools.so’:
Found ‘___stderrp’, possibly from ‘stderr’ (C)
Objects: ‘bam_sort.o’, ‘bamfile.o’, ‘bedidx.o’, ‘sam_opts.o’,
‘sam_utils.o’, ‘samtools_patch.o’
Found ‘___stdoutp’, possibly from ‘stdout’ (C)
Objects: ‘bam_sort.o’, ‘sam_utils.o’
Found ‘_abort’, possibly from ‘abort’ (C)
Object: ‘bam_sort.o’
File ‘Rsamtools/libs/Rsamtools.so’:
Found no call to: ‘R_useDynamicSymbols’ Thanks again, |
Hi @mtmorgan, I've gone through and implemented many of your helpful suggestions.
I hope this helps alleviate at least some of the main concerns! Let me know if there's anything else I can do to help. |
|
Hi @mtmorgan, just wanted to check in and see whether you might want to merge this PR. To recap:
Hope that helps clear things up, happy to answer any questions! |
We will look at it. |
Hi @bschilder, A few minor things that caught my attention:
Thanks! |
Also how is the addition of a In the same spirit, the new Again, PRs should stick to the matter and not try to squeeze random/unrelated changes. Thanks! |
Finally I'm not sure I understand the following lines:
Does it mean that the workflow will run Same with the following lines:
Shouldn't this be the otherway around? |
Likely due to the lag between when I first made the PR (Dec 23, 2022) and now. I merged the latest version of Rsamtools into my fork but I guess some files were kept by accident.
Again due to the lag, and apparently the fact that the NEWS file isn't being regularly updated?
Removed.
Simply wanted to make sure I wasn't pushing any extra files that I didn't intend to (e.g macs are constantly generating .DS_Store files). But happy to remove this and remove any other residual files manually.
Not quite. These are directly related to |
Yup, but you can change it to whatever configuration your prefer! Just let me know which you would like and I'd be happy to do it for you.
In your case yes, thanks for the catch! These are simply the defaults. Just fixed this. That said, outside of this PR I'd highly encourage you to consider adding some more targeted unit tests, rather than relying solely on the generic If you're unsure about any of the parameters, you can always read about each of them in more detail here, or use: |
I'm not convinced that these lines in
so maybe at least those can be removed? Not sure about the other ones:
but I don't see them here so I'm confused! I would suggest that you set The potential for confusion is real and should not be underestimated. Just earlier this morning @vjcitn merged your other "rworkflows" PR for VariantAnnotation (Bioconductor/VariantAnnotation#73), but then a couple hours later Vince had to revert the merge because check was failing, probably because the yaml file also had As mentioned already here, BiocCheck has a tendency to produce some false positives which is why we don't run it as part of our daily builds yet. About the
where
Not sure what you mean exactly. Calling Why add an empty line far down in the Thanks |
Sure, removed.
The issue is intermittent, haven't figured out the logic to it yet (partly due to how GHA sets up their VMs, I suspect). Can remove if you like, I'll leave it to you to fix if and and when the errors return.
Done.
I don't have any issues with BiocCheck atm. But if you do, I recommend take it up with the BiocCheck team:
Up to you how you want to document things, just pointing out the reason why it occurred.
We can discuss this in more detail elsewhere.
Done. |
@hpages if you're interested in learning about the purpose of As well as the associated preprint: |
Thanks for all the changes and the links you provided above. Why remove the
I don't maintain Rsamtools and didn't choose the style/format of its |
BTW Bioconductor has moved to using |
Sorry, I interpreted your previous messages as wanting to remove the
Thanks for noticing this, thought I had added "devel" but i guess not. I've adjusted this one, and will do so for the others. PS - It looks like when I forked the repo GitHub automatically must have renamed the branch "master". I'll keep an eye out for this in the future: |
Or maybe you forked before we renamed the branch? The Any chance you can amend your addition to the
with
Finally can you please explain how the yaml file makes sure that the right version of Bioconductor is used for building and checking the package? I see that the use of the Thanks again, |
@hpages |
@LiNk-NY Not really the place here to discuss this but it's actually a mix of:
|
Thanks, I've moved the discussion to Bioconductor/BiocCheck#197 |
@bschilder I wanted to mention in connection with this PR (and others) that our team has been discussing the proposal to adopt rworkflows for this and other packages. The current thinking is that an intensive multiparty discussion about specific GHA-oriented solutions for Bioconductor packages is needed. We will be in touch as this discussion is scheduled. |
@vjcitn I've actually been working on adding some new features to rworkflows to make it even more Bioc friendly. will share v soon! and thanks, looking forward to the discussion |
Ah you're right, that makes more sense actually.
Sure, I'm assuming you want me to bump the version in DESCRIPTION as well?
I'm not sure I would call the Coordinating within VMsLet's take a closer look: matrix:
config:
- os: ubuntu-latest
r: devel
bioc: devel
cont: bioconductor/bioconductor_docker:devel
rspm: https://packagemanager.rstudio.com/cran/__linux__/focal/release
- os: macOS-latest
r: latest
bioc: release
- os: windows-latest
r: latest
bioc: release You'll notice that on the Users can indeed change these parameters to suit their needs, but I provide a bit of extra help within the Here is the relevant documentation: Specifying runners in the workflows vs. the actionNow, you might ask "Why not just pass a simplified parameter to specify the runners, instead of including the Coordinating across branchesIf I understand correctly, there is a second point that you've made regarding the coordination between branches and VM runners. So for example, if you make pushes to the (note i'm using the dev version of rworkflows here bc i just edited some of the args to make this even easier.) remotes::install_github("neurogenomics/rworkflows@dev")
#### Write devel branch workflow ####
v <- "devel"
f1 <- use_workflow(name = paste("rworkflows",v,sep="."),
branches = v,
runners = construct_runners(bioc = v),
preview = TRUE,
force_new = TRUE,
save_dir = tempdir() # For demo only, use default in practice
)
#### Write RELEASE_3_17 branch workflow ####
v <- "RELEASE_3_17"
f2 <- use_workflow(name = paste("rworkflows",v,sep="."),
branches = v,
runners = construct_runners(bioc = v),
preview = TRUE,
force_new = TRUE,
save_dir = tempdir() # For demo only, use default in practice
) The above code will generate two workflow files; one for the |
Quick question: How do you learn that the RSPM / PPM now uses Currently, the Bioconductor devel container uses codename cont: bioconductor/bioconductor_docker:devel
rspm: https://packagemanager.rstudio.com/cran/__linux__/jammy/release verified with: docker run -it bioconductor/bioconductor_docker:devel bash
root@:/# lsb_release -a
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy |
Oh interesting! I didn't realise this was an element that was liable to change. I can add a function to Made a dedicated Issue for it here: |
Nope. You've already bumped it to 2.17.1, which is how it should be. (Remember that the core team will bump the package version to 2.18 at release time.)
Exactly. Using the right VM for the right branch is very important. It's important to realize that trying to build/check a specific branch (e.g. In the meantime, since your PR is against the
What am I missing? Thanks, |
Ok, thanks for clarifying .
I haven't made the changes yet. Was waiting to hear whether you'd approve of the multi-workflow approach. Will modify now. |
Done! |
Replying to @hpages comments here as requested:
Sure! Though that was proposed back in September so I think it would be good to figure out a concrete time to have that discussion. Otherwise, I think it's liable to fall off the radar indefinitely (understandably, we're all quite busy). Perhaps the next TAB meeting would be an appropriate time? @vjcitn I realise there's a lot to discuss in these meetings, so if it's too much to pack into TAB perhaps a separate meeting could be scheduled? I'd also argue using a tool in a couple of packages doesn't necessarily amount to "official Bioconductor-wide endorsement" of that tool, whether the tool is
Fair enough, but if you'd like some input to the direction of rworkflows, you're always more than welcome to join the monthly Cloud Methods Working Group meetings. Just sent you an invite to the dedicated Slack channel in case you'd like to join the conversation. You can also always propose any points of improvement as an Issue or a PR on the rworkflows repo. ConclusionsRegardless, as I've mentioned before I do think there's a strong argument to have some kind of GitHub-based CI vs. none. I think rworkflows via this PR is the easiest avenue to that, and if you change your mind later it's trivial to remove it (just delete the workflow file). So even if you're not a fan of rworkflows, I highly recommend you implement something sooner than later (e.g. biocthis, custom workflow scripts, etc.). As we've seen here, GH-based CI can identify issues before they're distributed to Bioc. Best, |
I see that you added me to this channel. I didn't receive the invite.
All I want to know is if this is something you're planning to fix. This is a major blocking issue IMO and it's been mentioned and discussed many times. |
@hpages To my knowledge, all changes you requested were completed a while ago. Is there anything else you'd like me to address? |
Now I'm confused. How did you address the versioning concern? You still have:
in the config file, which means that R devel is going to be installed and used on top of the What's even more confusing is that, one week ago, when I reminded you about this (see above), you seemed to aknowledge that this was still an issue (your answer was "Fair enough etc.."), and you even invited me to discuss it in the monthly Cloud Methods Working Group meetings. But now you say that all the changes I requested were completed... 🤔 ?!! Maybe we should just close this for now and wait until things have been discussed and sorted out by the Cloud Methods Working Group. It was probably premature for you to submit a PR for something like this in the first place given that there are several alternatives around that should be put on the table by the working group. Once the working group makes a decision, they can always make an announcement on the bioc-devel mailing list and/or the community-bioc Slack. |
I just added rworkflows to Rsamtools to have some immediate checks on your code (across 3 platforms) via GitHub Actions
There's still a couple of remaining Warnings and Notes from the previous version that i wasn't sure how to resolve. But since these were occurring in Rsamtools before I made my changes, I think it's safe to merge the PR and then sort out the source of these issues.
@vobencha @hpages @mtmorgan
Thanks, and let me know if you have any questions!
Best,
Brian