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
beta test on other packages? #14
Comments
So here is a list of all of the packages in the intersection (Akhila found issues via RcppDeepState last year, and the R package hosted in a repo on github)
Source code here, https://tdhock.github.io/blog/2022/packages-on-github/ Since there are so many, it would be better to programmatically fork/PR these repos. It may be possible with https://cloud.r-project.org/web/packages/gh/ can you please investigate? |
you can also do the git commit/push programmatically with https://docs.ropensci.org/git2r/reference/push.html |
Thank you for providing me with all of this great documentation. I'll get to work on this. |
Hi, @tdhock, here is the link to my blog article in response to yours. In this new blog post I discuss how to automatically beta test the packages listed above. To avoid a massive generation of repositories under my user profile, as stated in the blog article, I specified a variable Using a |
hi @FabrizioSandri these are really excellent results. It is great to see that this works, and the results are almost the same as the previus results from Akhila. A couple of comments.
|
from our experience with tdhock/binsegRcpp#16 the upstream maintainer will have to click an approve button as in the image below, before they can see the RcppDeepState report, |
it seems that the RcppDeepState action runs, but it can not post a comment in the PR, because of limited read only permissions, https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token |
Searching in the GithHub documentation I discovered some interesting concepts about running workflows from public forks. First and foremost, I found:
Source: Approving workflow runs from public forks According to what I can see here, the user need approval from one maintainer with write access in order to run a workflow inside a remote repository. This has been demonstrated by our experience with tdhock/binsegRcpp#16. However, this is not the only issue: the person who opens a pull request is not permitted to use the remote repository's
Source: Automatic token authentication WorkaroundBased on your suggestions a possible workaround is to:
|
I agree with this; I followed your suggestions and updated the script in the blog post. |
sounds like a great plan! |
@tdhock I've just published a new blog article that includes a detailed description of the script that implements the last two steps of the aforementioned plan. I increased the
|
looks like good progress. I see that the comment in the upstream PR is like the following, This package contains problems, according to RcppDeepState. The report was generated by RcppDeepState-action in this repository's fork and is accessible RcppDeepState/RcppDynProg#1. I think you should add a sentence to clarify what the PR does, something like: This PR adds a new Github Action which runs RcppDeepState+valgrind on your package. That means the C++ functions of your package will be tested with random inputs, and there will be a comment like this one for each new PR (which reports if valgrind found any issues with random inputs). |
about the RcppParallel not found, I think we need to add some compilation flag like -I/path/to/RcppParallel |
in WinVector/RcppDynProg#1 the table truncation feature seems to be working. |
You are right; the comment should be improved. The new message has been added to the script on my blog post. On the seven tested pull requests, I will manually change the current comments to include that message |
It seems that there is a linking issue. Same problem here: #19 |
I found this line at the beginning of the logs of the RcppDeepState workflow run within the
The issue appears to be caused by the |
as discussed today the solution involves using devtools::install() to install target repo/pkg along with dependencies, before compiling test harnesses. |
@tdhock I discovered why the dependencies had not been installed for the packages. The motivation is that the package is initially built and installed using install.packages(setdiff(basename(package), rownames(installed.packages())),
repos = "http://cran.us.r-project.org") |
Hi, @tdhock. RcppDeepState-action discovered issues in the TreeSearch package that Akhila did not mention on the page dedicated to the Rcpp-based packages where RcppDeepState discovered issues. Link to the workflow run. I believe that one final change for the action before submission is to improve the workflow logs. Some users, for example, will run the action outside of the pull request, as seen in the aforementioned TreeSearch package workflow run. Currently, the action outputs the logtable to standard output, and it would be preferable to format this table in a more readable manner, as well as provide a message that helps the user to immediately understand if RcppDeepState discovered issues. As a result, I feel that one pull request dedicated to log enhancements is required. Here is the link to the pull request #21 |
I tested another set of repositories as a part of beta testing. This is the list of repos where RcppDeepState discovered errors(Link to the pull requests): |
great thanks for the update! As for the PR comments, it looks like there are too many links/here at the end of the comment, "is accessible here.here.here.here." |
Good catch! I just realized I was reusing the |
Hi @FabrizioSandri there is a list of other packages in which RcppDeepState has found problems, https://akhikolla.github.io./packages-folders/
Not sure how many are on github, but at least this one is, https://github.com/WinVector/RcppDynProg/ Could you please fork/PR to see if we can replicate Akhila's results? (not sure if the issues have been fixed since then)
Also maybe worth investigating how many other of these packages have github repos.
The text was updated successfully, but these errors were encountered: