-
-
Notifications
You must be signed in to change notification settings - Fork 104
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
rix: Reproducible Environments with Nix #625
Comments
Thanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type |
🚀 Editor check started 👋 |
Checks for rix (v0.6.0)git hash: e7b673cb
Important: All failing checks above must be addressed prior to proceeding Package License: GPL (>= 3) 1. Package DependenciesDetails of Package Dependency Usage (click to open)
The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table. baselapply (15), Sys.getenv (14), is.null (11), paste0 (9), Filter (8), file.path (7), list (7), names (7), for (6), get (6), grep (6), paste (6), seq_along (6), unlist (6), vapply (6), all (4), c (4), grepl (4), if (4), nzchar (4), args (3), character (3), emptyenv (3), switch (3), any (2), as.list (2), call (2), environmentName (2), getOption (2), gsub (2), is.function (2), new.env (2), setdiff (2), Sys.which (2), url (2), as.character (1), as.name (1), bquote (1), deparse (1), do.call (1), file (1), file.exists (1), formals (1), format (1), identical (1), length (1), logical (1), Map (1), match (1), match.call (1), normalizePath (1), readRDS (1), source (1), split (1), strsplit (1), Sys.info (1), Sys.time (1), system.file (1), tempdir (1), unname (1) rixclassify_globals (3), deparse_chr1 (3), get_sri_hash_deps (3), detect_versions (2), find_rev (2), get_globals_exprs (2), get_rPackages (2), get_rprofile_text (2), is_nix_rsession (2), is_rstudio_session (2), nix_build_exit_msg (2), set_nix_path (2), where (2), available_r (1), check_expr (1), create_shell_nix (1), detect_os (1), fetchgit (1), fetchgits (1), fetchpkgs (1), fetchzip (1), fetchzips (1), fix_ld_library_path (1), generate_git_archived_packages (1), generate_header (1), generate_locale_archive (1), generate_locale_variables (1), generate_rix_call (1), generate_rpkgs (1), generate_rstudio_pkgs (1), generate_shell (1), generate_system_pkgs (1), generate_tex_pkgs (1), get_expr_extra_pkgs (1), get_latest (1), get_system_pkgs (1), is_empty (1), is_integerish (1), message_rprofile (1), nix_build (1), nix_build_installed (1), nix_rprofile (1), nix_shell_available (1), poll_sys_proc_nonblocking (1), quote_rnix (1), recurse_find_check_globals (1), serialize_globals (1), serialize_pkgs (1), with_assign_vec_call (1), with_assign_vecnames_call (1) codetoolsfindGlobals (3), checkUsage (2) httrGET (3), content (1) utilstimestamp (2), packageVersion (1) sysexec_status (2) jsonlitefromJSON (1) 2. Statistical PropertiesThis package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing. Details of statistical properties (click to open)
The package has:
Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages
All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the The final measure (
2a. Network visualisationClick to see the interactive network visualisation of calls between objects in package 3.
|
id | name | conclusion | sha | run_number | date |
---|---|---|---|---|---|
7802080928 | devtools-tests-via-r-nix | success | e7b673 | 69 | 2024-02-06 |
7802080935 | nix-builder | success | e7b673 | 385 | 2024-02-06 |
7802119374 | pages build and deployment | success | ef12c6 | 276 | 2024-02-06 |
7802080938 | pkgdown | success | e7b673 | 532 | 2024-02-06 |
7802080934 | R-CMD-check | success | e7b673 | 528 | 2024-02-06 |
7801340546 | ropensci-pkgcheck | failure | 27a828 | 64 | 2024-02-06 |
7802080931 | tests-r-via-system | success | e7b673 | 66 | 2024-02-06 |
3b. goodpractice
results
R CMD check
with rcmdcheck
R CMD check generated the following note:
- checking package subdirectories ... NOTE
Problems with news in ‘NEWS.md’:
Cannot extract version info from the following section titles:
rix (development version)
Test coverage with covr
ERROR: Test Coverage Failed
Cyclocomplexity with cyclocomp
The following functions have cyclocomplexity >= 15:
function | cyclocomplexity |
---|---|
with_nix | 27 |
rix | 22 |
Static code analyses with lintr
lintr found the following 108 potential issues:
message | number of times |
---|---|
Avoid library() and require() calls in packages | 19 |
Lines should not be more than 80 characters. | 87 |
unexpected '/' | 1 |
Use <-, not =, for assignment. | 1 |
Package Versions
package | version |
---|---|
pkgstats | 0.1.3.9 |
pkgcheck | 0.1.2.14 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with ✖️ have been resolved.
@ropensci-review-bot assign @ldecicco-USGS as editor |
I'm sorry human, I don't understand that. You can see what commands I support by typing:
|
@ropensci-review-bot assign @ldecicco-USGS as editor |
Assigned! @ldecicco-USGS is now the editor |
Editor checks:
Editor commentsLooks good! I'll begin searching for editors. |
@ropensci-review-bot seeking reviewers |
Please add this badge to the README of your package repository: [![Status at rOpenSci Software Peer Review](https://badges.ropensci.org/625_status.svg)](https://github.com/ropensci/software-review/issues/625) Furthermore, if your package does not have a NEWS.md file yet, please create one to capture the changes made during the review process. See https://devguide.ropensci.org/releasing.html#news |
done with: ropensci/rix@859fd18 |
@ropensci-review-bot assign @wdwatkins as reviewer |
@wdwatkins added to the reviewers list. Review due date is 2024-03-06. Thanks @wdwatkins for accepting to review! Please refer to our reviewer guide. rOpenSci’s community is our best asset. We aim for reviews to be open, non-adversarial, and focused on improving software quality. Be respectful and kind! See our reviewers guide and code of conduct for more. |
@wdwatkins: If you haven't done so, please fill this form for us to update our reviewers records. |
@ropensci-review-bot assign @assignUser as reviewer |
@assignUser added to the reviewers list. Review due date is 2024-03-11. Thanks @assignUser for accepting to review! Please refer to our reviewer guide. rOpenSci’s community is our best asset. We aim for reviews to be open, non-adversarial, and focused on improving software quality. Be respectful and kind! See our reviewers guide and code of conduct for more. |
@assignUser: If you haven't done so, please fill this form for us to update our reviewers records. |
📆 @wdwatkins you have 2 days left before the due date for your review (2024-03-06). |
Package ReviewPlease check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide
DocumentationThe package includes all the following forms of documentation:
Functionality
Estimated hours spent reviewing:6
Review CommentsDue to my organization's IT policies, I can only run You may need to update the Good selection of vignettes, help files are complete. I also found your "What is nix" blog post particularly helpful for understanding what was actually happening under the hood. It seems likely to me that a good portion of your users will also be using From goodpractice resultsIs there a reason for using code commentsI see a couple 'list versions' functions rely on a stored data file. Is there a way to get this information directly from the nix archive so you don't need to keep that up to date? There are a fair number of internal functions that don't have inputs/outputs documented, I would suggest documenting those for your own/future maintainer's benefit down the road. Also, several todos still in comments. test commentsSeems like get_latest.R could be tested at least that it doesn't error and returns a hash, Re: coverage—just to make sure I understand, the 25% coverage value is ignoring the tests |
📆 @assignUser you have 2 days left before the due date for your review (2024-03-11). |
Checks for rix (v0.9.1)git hash: 008e3d1a
Important: All failing checks above must be addressed prior to proceeding Package License: GPL (>= 3) 1. Package DependenciesDetails of Package Dependency Usage (click to open)
The table below tallies all function calls to all packages ('ncalls'), both internal (r-base + recommended, along with the package itself), and external (imported and suggested packages). 'NA' values indicate packages to which no identified calls to R functions could be found. Note that these results are generated by an automated code-tagging system which may not be entirely accurate.
Click below for tallies of functions used in each package. Locations of each call within this package may be generated locally by running 's <- pkgstats::pkgstats(<path/to/repo>)', and examining the 'external_calls' table. basec (22), paste (16), Sys.getenv (16), lapply (14), paste0 (13), Filter (12), is.null (11), file.path (10), grepl (9), unlist (9), url (9), grep (8), list (8), args (7), if (7), names (7), for (6), get (6), nzchar (6), seq_along (6), all (5), vapply (5), file (3), getOption (3), split (3), strsplit (3), any (2), as.list (2), call (2), character (2), file.exists (2), gsub (2), is.function (2), list.files (2), rawToChar (2), source (2), Sys.info (2), Sys.which (2), system.file (2), tempdir (2), unname (2), as.character (1), as.data.frame (1), as.name (1), bquote (1), colnames (1), deparse (1), do.call (1), drop (1), emptyenv (1), environmentName (1), formals (1), format (1), identical (1), intersect (1), isFALSE (1), length (1), logical (1), Map (1), match (1), match.call (1), normalizePath (1), read.dcf (1), readRDS (1), setdiff (1), switch (1), Sys.time (1), trimws (1) rixclassify_globals (3), deparse_chr1 (3), get_imports (3), get_sri_hash_deps (3), hash_url (3), is_nix_r_session (3), is_rstudio_session (3), nix_shell_available (3), available_r (2), detect_versions (2), get_globals_exprs (2), get_latest (2), get_rpkgs (2), get_rprofile_text (2), get_sri_hash_option (2), make_nixpkgs_url (2), nix_build_exit_msg (2), nix_build_installed (2), set_nix_path (2), try_get_request (2), with_assign_vecnames_call (2), detect_os (1), fetchgit (1), fetchgits (1), fetchlocal (1), fetchlocals (1), fetchpkgs (1), fetchzip (1), fetchzips (1), fix_ld_library_path (1), ga_cachix (1), generate_git_archived_pkgs (1), generate_header (1), generate_local_r_pkgs (1), generate_locale_archive (1), generate_locale_variables (1), generate_rix_call (1), generate_rpkgs (1), generate_shell (1), generate_system_pkgs (1), generate_tex_pkgs (1), generate_wrapped_pkgs (1), get_right_commit (1), get_system_pkgs (1), hash_cran (1), hash_git (1), install.packages (1), is_empty (1), is_integerish (1), message_r_session_nix_rstudio (1), message_rprofile (1), nix_build (1), nix_hash (1), nix_rprofile (1), nix_sri_hash (1), poll_sys_proc_blocking (1), quote_rnix (1), recurse_find_check_globals (1), serialize_globals (1), serialize_pkgs (1), where (1), with_assign_vec_call (1) curlnew_handle (7), curl_fetch_disk (2), curl_fetch_memory (1), has_internet (1) sysexec_background (3), exec_status (2), as_text (1), exec_internal (1) codetoolsfindGlobals (3), checkUsage (1) utilstimestamp (2), packageVersion (1) jsonlitefromJSON (2) toolspskill (2) statsna.omit (1) 2. Statistical PropertiesThis package features some noteworthy statistical properties which may need to be clarified by a handling editor prior to progressing. Details of statistical properties (click to open)
The package has:
Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages
All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the The final measure (
2a. Network visualisationClick to see the interactive network visualisation of calls between objects in package 3.
|
id | name | conclusion | sha | run_number | date |
---|---|---|---|---|---|
10318993653 | create_inst_default.nix | success | 008e3d | 73 | 2024-08-09 |
10318993655 | devtools-tests-via-r-nix | success | 008e3d | 499 | 2024-08-09 |
10318993658 | lint | success | 008e3d | 36 | 2024-08-09 |
10318993665 | nix-builder | success | 008e3d | 819 | 2024-08-09 |
10319025028 | pages build and deployment | success | c36f3b | 472 | 2024-08-09 |
10318993666 | pkgdown | success | 008e3d | 966 | 2024-08-09 |
10319019373 | pseudodramatic-boa: linux, macos, macos-arm64, windows, ubuntu-next, ubuntu-release | success | 008e3d | 66 | 2024-08-09 |
10318993855 | run-rhub-checks | success | 008e3d | 74 | 2024-08-09 |
10318993669 | styler | success | 008e3d | 32 | 2024-08-09 |
10318993654 | test-fetchlocal | success | 008e3d | 258 | 2024-08-09 |
10551547337 | Update cachix cache for development environment | success | 008e3d | 375 | 2024-08-26 |
3b. goodpractice
results
R CMD check
with rcmdcheck
R CMD check generated the following note:
- checking package subdirectories ... NOTE
Problems with news in ‘NEWS.md’:
Cannot extract version info from the following section titles:
rix (development version)
R CMD check generated the following check_fail:
- cyclocomp
Test coverage with covr
ERROR: Test Coverage Failed
Cyclocomplexity with cyclocomp
The following functions have cyclocomplexity >= 15:
function | cyclocomplexity |
---|---|
rix | 56 |
with_nix | 30 |
quote_rnix | 15 |
Static code analyses with lintr
lintr found the following 121 potential issues:
message | number of times |
---|---|
Avoid library() and require() calls in packages | 27 |
Lines should not be more than 80 characters. This line is 100 characters. | 5 |
Lines should not be more than 80 characters. This line is 101 characters. | 1 |
Lines should not be more than 80 characters. This line is 102 characters. | 2 |
Lines should not be more than 80 characters. This line is 105 characters. | 1 |
Lines should not be more than 80 characters. This line is 1056 characters. | 1 |
Lines should not be more than 80 characters. This line is 106 characters. | 2 |
Lines should not be more than 80 characters. This line is 107 characters. | 2 |
Lines should not be more than 80 characters. This line is 108 characters. | 1 |
Lines should not be more than 80 characters. This line is 112 characters. | 2 |
Lines should not be more than 80 characters. This line is 118 characters. | 6 |
Lines should not be more than 80 characters. This line is 121 characters. | 2 |
Lines should not be more than 80 characters. This line is 1229 characters. | 1 |
Lines should not be more than 80 characters. This line is 125 characters. | 2 |
Lines should not be more than 80 characters. This line is 126 characters. | 1 |
Lines should not be more than 80 characters. This line is 127 characters. | 4 |
Lines should not be more than 80 characters. This line is 129 characters. | 1 |
Lines should not be more than 80 characters. This line is 131 characters. | 2 |
Lines should not be more than 80 characters. This line is 135 characters. | 1 |
Lines should not be more than 80 characters. This line is 136 characters. | 1 |
Lines should not be more than 80 characters. This line is 138 characters. | 3 |
Lines should not be more than 80 characters. This line is 143 characters. | 1 |
Lines should not be more than 80 characters. This line is 160 characters. | 1 |
Lines should not be more than 80 characters. This line is 163 characters. | 1 |
Lines should not be more than 80 characters. This line is 179 characters. | 1 |
Lines should not be more than 80 characters. This line is 185 characters. | 1 |
Lines should not be more than 80 characters. This line is 194 characters. | 1 |
Lines should not be more than 80 characters. This line is 2280 characters. | 1 |
Lines should not be more than 80 characters. This line is 312 characters. | 1 |
Lines should not be more than 80 characters. This line is 325 characters. | 1 |
Lines should not be more than 80 characters. This line is 482 characters. | 1 |
Lines should not be more than 80 characters. This line is 570 characters. | 1 |
Lines should not be more than 80 characters. This line is 81 characters. | 2 |
Lines should not be more than 80 characters. This line is 82 characters. | 5 |
Lines should not be more than 80 characters. This line is 83 characters. | 3 |
Lines should not be more than 80 characters. This line is 84 characters. | 2 |
Lines should not be more than 80 characters. This line is 85 characters. | 4 |
Lines should not be more than 80 characters. This line is 86 characters. | 3 |
Lines should not be more than 80 characters. This line is 87 characters. | 5 |
Lines should not be more than 80 characters. This line is 88 characters. | 3 |
Lines should not be more than 80 characters. This line is 89 characters. | 3 |
Lines should not be more than 80 characters. This line is 91 characters. | 4 |
Lines should not be more than 80 characters. This line is 92 characters. | 1 |
Lines should not be more than 80 characters. This line is 93 characters. | 1 |
Lines should not be more than 80 characters. This line is 94 characters. | 1 |
Lines should not be more than 80 characters. This line is 96 characters. | 2 |
Lines should not be more than 80 characters. This line is 98 characters. | 3 |
Package Versions
package | version |
---|---|
pkgstats | 0.1.6.17 |
pkgcheck | 0.1.2.55 |
Editor-in-Chief Instructions:
Processing may not proceed until the items marked with ✖️ have been resolved.
Reviewer ResponseI re-ran pkgcheck on the most recent version as there were considerable changes but looks good (ignoring ❌ in coverage due to known issue). Neat new functionality with the hook into cachix, sounds like a low effort way to setup a private cache (and basically free for OSS! 🎉). Overall very nice improvements and additions to the vignettes and documentation! I have actually used rix in production to create a nix env for rendering a quarto report in gha, which has been running everyday for several months now! Final approval (post-review)
Estimated hours spent reviewing: 9 |
Thank you very much for the review! |
@ropensci-review-bot submit review #625 (comment) time 10 |
Logged review for assignUser (hours: 10) |
@ropensci-review-bot submit review #625 (comment) time 6 |
Logged review for wdwatkins (hours: 6) |
@ropensci-review-bot submit response #625 (comment) time 6 |
I'm sorry human, I don't understand that. You can see what commands I support by typing:
|
@ropensci-review-bot approve rix |
Approved! Thanks @b-rodrigues for submitting and @wdwatkins, @assignUser for your reviews! 😁 To-dos:
Should you want to acknowledge your reviewers in your package DESCRIPTION, you can do so by making them Welcome aboard! We'd love to host a post about your package - either a short introduction to it with an example for a technical audience or a longer post with some narrative about its development or something you learned, and an example of its use for a broader readership. If you are interested, consult the blog guide, and tag @ropensci/blog-editors in your reply. They will get in touch about timing and can answer any questions. We maintain an online book with our best practice and tips, this chapter starts the 3d section that's about guidance for after onboarding (with advice on releases, package marketing, GitHub grooming); the guide also feature CRAN gotchas. Please tell us what could be improved. Last but not least, you can volunteer as a reviewer via filling a short form. |
Whoo hoo! Thanks everyone for a great and thorough job! @b-rodrigues and @philipp-baumann - really well done work! @wdwatkins and @assignUser thanks for the fantastic feedback! |
🙏🙏 thank you all ! little heads-up I am currently on holidays with no access to a pc, so I'll be only able to finalize in mid September |
Thanks very much for your excellent reviews! It was a really constructive process 🙏 {rix} has become mature and I'm really happy it is being sheltered under the ROpenSci umbrella. |
@wdwatkins and @assignUser would you be OK if we add you as reviewers in the package's DESCRIPTION ? |
Sure! |
@ropensci-review-bot finalize transfer of rix |
Transfer completed. |
Hi @ldecicco-USGS I'd need some guidance regarding the pkgdown website. We currently have the website up at https://ropensci.github.io/rix/ So from my understanding, all we need to do is remove the github action |
That sounds right to me, but I'll ask around to see if we're missing anything. |
Hi @ldecicco-USGS . While testing a pre-commit-lite ci hook for styling ( ropensci/rix#295 ) we realized that I could not add the integration ( https://results.pre-commit.ci/ ). Could @ropensci-review-bot give me admin rights on the repo too? Thanks |
@philipp-baumann - you should have an invitation to the rOpenSci slack channel to discuss adding pre-commit. One quote cracked me up: "I'm always happy to opine on precommit!" |
The invitation to the Slack workspace should come soon cc @yabellini (invitations happen weekly) |
@philipp-baumann I have sent you an invitation to the rOpenSci organization and a team with admin access to the repository (together with @b-rodrigues). I have removed the personal write access both of you had, but you get more access via the team. |
sweet! |
I see that the webpage is up already: https://docs.ropensci.org/rix/ so I guess it happens automatically 😃 |
Date accepted: 2024-09-03
Submitting Author Name: Bruno Rodrigues
Submitting Author Github Handle: @b-rodrigues
Other Package Authors Github handles: @philipp-baumann
Repository: https://github.com/b-rodrigues/rix
Version submitted: 0.60
Submission type: Standard
Editor: @ldecicco-USGS
Reviewers: @wdwatkins, @assignUser
Archive: TBD
Version accepted: TBD
Language: en
Scope
Please indicate which category or categories from our package fit policies this package falls under: (Please check an appropriate box below. If you are unsure, we suggest you make a pre-submission inquiry.):
Explain how and why the package falls under these categories (briefly, 1-2 sentences):
The package makes it easy to define
default.nix
files which can then be use by the Nix package manager to build a reproducible development environment. This is especially useful to make workflows completely reproducible.This package will be useful to anyone with very strict reproducibility requirements.
Not quite: to replace what
{rix}
provides one would need to combine Docker and {renv} or {groundhog}.Not applicable.
#624
@jhollist @mpadge
pkgcheck
items which your package is unable to pass.We are unable to have the coverage of 75%. This is due to several issues:
skip_on_covr()
function, but on only on GA. On our computers,covr::package_coverage()
runs and these tests are successfully skipped.covr
.We have 26 tests, which all pass on different configurations: on Ubuntu, macOS and Windows, with or without Nix available (some tests get skipped if Nix is not available) and whether R itself is installed with Nix as well, or not (in other words, through the usual means for the operating system in use).
Because of these issues, our coverage is quite low:
but if our snapshot tests (for the functions
rix()
, andtar_nix_ga()
) would not be ignored, and ifcovr
would successfully run the tests forwith_nix()
, our coverage would be more than 50%, we think. Some functions are very difficult to test, for exampleget_latest()
, which gets the latest commit hash of thenixpkgs
github repository.Technical checks
Confirm each of the following by checking the box.
This package:
Publication options
Do you intend for this package to go on CRAN?
Do you intend for this package to go on Bioconductor?
Do you wish to submit an Applications Article about your package to Methods in Ecology and Evolution? If so:
MEE Options
Code of conduct
The text was updated successfully, but these errors were encountered: