ropensci / software-review

rOpenSci Software Peer Review.
291 stars 104 forks source link

Submission: {cffr} Generate Citation File Format ('cff') Metadata for R Packages #463

Closed dieghernan closed 2 years ago

dieghernan commented 3 years ago

Submitting Author Name: Diego Hernangómez Submitting Author Github Handle: !--author1-->@dieghernan<!--end-author1-- Repository: https://github.com/dieghernan/cffr Version submitted: 0.0.1.9001 Submission type: Standard Editor: @emilyriederer Reviewers: @sckott, @zambujo

Due date for @sckott: 2021-10-19 Due date for @zambujo: 2021-10-20

Archive: TBD Version accepted: TBD


Package: cffr
Title: Generate Citation File Format ('cff') Metadata for R Packages
Version: 0.0.1.9001
Authors@R: 
    person(given = "Diego",
           family = "Hernangómez",
           role = c("aut", "cre"),
           email = "diego.hernangomezherrero@gmail.com",
           comment = c(ORCID = "0000-0001-8457-4658"))
Description: The Citation File Format version 1.2.0 (Druskat, S. et al.
    (2021) <doi:10.5281/zenodo.5171937>) is a human and machine readable
    file format which provides citation metadata for software. This
    package provides core utilities to generate and validate this
    metadata.
License: GPL (>= 3)
URL: https://dieghernan.github.io/cffr/,
    https://github.com/dieghernan/cffr
BugReports: https://github.com/dieghernan/cffr/issues
Depends: 
    R (>= 3.6.0)
Imports: 
    crayon (>= 1.4.1),
    desc (>= 1.3.0),
    jsonlite (>= 1.7.2),
    jsonvalidate (>= 1.1.0),
    yaml (>= 2.2.1)
Suggests: 
    knitr,
    rmarkdown,
    testthat (>= 3.0.0)
VignetteBuilder: 
    knitr
Config/testthat/edition: 3
Encoding: UTF-8
Roxygen: list(markdown = TRUE)
RoxygenNote: 7.1.2
X-schema.org-keywords: attribution, citation, credit, citation-files, cff,
    metadata

Scope

The package extract metadata from DESCRIPTION and CITATION and generates a CITATION.cff file.

CITATION.cff files are plain text files with human- and machine-readable citation information for software (and datasets).

Any R package developer. A CITATION.cff file provides clarity when citating R packages. GitHub, Zenodo and Zotero supports this format.

{citation}: The development version (at the time of this writing) includes a new function r2cff that creates a minimal CITATION.cff file (v1.1.0) using the information of your DESCRIPTION file. It also provide minimal validity checks.

{handlr}: Tool for converting among citation formats, including *.cff files. At the time of this writing only CFF v1.1.0 was supported (see #24).

{cffr} performs an extensive extraction of DESCRIPTION and CITATION, as well as validation via {jsonvalidate} against the official schema.json. None of the packages mentioned before supports CFF v1.2.0, that is the latest released version.

It also provides parsers for person and citation/bibentry classes.

N/A

https://github.com/ropensci/software-review/issues/462 @noamross

Technical checks

Confirm each of the following by checking the box.

This package:

Publication options

MEE Options - [ ] The package is novel and will be of interest to the broad readership of the journal. - [ ] The manuscript describing the package is no longer than 3000 words. - [ ] You intend to archive the code for the package in a long-term repository which meets the requirements of the journal (see [MEE's Policy on Publishing Code](http://besjournals.onlinelibrary.wiley.com/hub/journal/10.1111/(ISSN)2041-210X/journal-resources/policy-on-publishing-code.html)) - (*Scope: Do consider MEE's [Aims and Scope](http://besjournals.onlinelibrary.wiley.com/hub/journal/10.1111/(ISSN)2041-210X/aims-and-scope/read-full-aims-and-scope.html) for your manuscript. We make no guarantee that your manuscript will be within MEE scope.*) - (*Although not required, we strongly recommend having a full manuscript prepared when you submit here.*) - (*Please do not submit your package separately to Methods in Ecology and Evolution*)

Code of conduct

ropensci-review-bot commented 3 years ago

Thanks for submitting to rOpenSci, our editors and @ropensci-review-bot will reply soon. Type @ropensci-review-bot help for help.

ropensci-review-bot commented 3 years ago

Error (500). The editorcheck service is currently unavailable

ropensci-review-bot commented 3 years ago

Checks for cffr (v0.0.1.9001)

git hash: cc7c87d1

Package License: GPL (>= 3)


1. Statistical Properties

This 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: - code in R (100% in 13 files) and - 1 authors - 1 vignette - no internal data file - 5 imported packages - 12 exported functions (median 21 lines of code) - 74 non-exported functions in R (median 13 lines of code) --- Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages The following terminology is used: - `loc` = "Lines of Code" - `fn` = "function" - `exp`/`not_exp` = exported / not exported The final measure (`fn_call_network_size`) is the total number of calls between functions (in R), or more abstract relationships between code objects in other languages. Values are flagged as "noteworthy" when they lie in the upper or lower 5th percentile. |measure | value| percentile|noteworthy | |:------------------------|-----:|----------:|:----------| |files_R | 13| 65.6| | |files_vignettes | 2| 83.0| | |files_tests | 13| 91.6| | |loc_R | 896| 63.0| | |loc_vignettes | 174| 66.6| | |loc_tests | 802| 80.8| | |num_vignettes | 1| 60.7| | |n_fns_r | 86| 66.2| | |n_fns_r_exported | 12| 48.2| | |n_fns_r_not_exported | 74| 70.6| | |n_fns_per_file_r | 4| 50.4| | |num_params_per_fn | 1| 1.1|TRUE | |loc_per_fn_r | 14| 56.3| | |loc_per_fn_r_exp | 22| 51.8| | |loc_per_fn_r_not_exp | 13| 59.8| | |rel_whitespace_R | 28| 74.5| | |rel_whitespace_vignettes | 52| 85.5| | |rel_whitespace_tests | 30| 94.7| | |doclines_per_fn_exp | 44| 55.3| | |doclines_per_fn_not_exp | 0| 0.0|TRUE | |fn_call_network_size | 96| 76.3| | ---

1a. Network visualisation

Interactive network visualisation of calls between objects in package can be viewed by clicking here


2. goodpractice and other checks

Details of goodpractice and other checks (click to open)

### 3a. Continuous Integration Badges [![github](https://github.com/dieghernan/cffr/actions/workflows/check-full.yaml/badge.svg)](https://github.com/dieghernan/cffr/actions) [![github](https://github.com/dieghernan/cffr/actions/workflows/cff-validator.yml/badge.svg)](https://github.com/dieghernan/cffr/actions) **GitHub Workflow Results** |name |conclusion |sha |date | |:----------------|:----------|:------|:----------| |lint |success |cc7c87 |2021-09-16 | |pkgdown-gh-pages |success |cc7c87 |2021-09-16 | |R-CMD-check |success |cc7c87 |2021-09-16 | |Test on GHA |success |cc7c87 |2021-09-16 | |test-coverage |success |cc7c87 |2021-09-16 | --- ### 3b. `goodpractice` results ### `R CMD check` with [rcmdcheck](https://r-lib.github.io/rcmdcheck/) rcmdcheck found no errors, warnings, or notes ### Test coverage with [covr](https://covr.r-lib.org/) Package coverage: 99.04 ### Cyclocomplexity with [cyclocomp](https://github.com/MangoTheCat/cyclocomp) The following functions have cyclocomplexity >= 15: function | cyclocomplexity --- | --- cff_create | 15 clean_str | 15 ### Static code analyses with [lintr](https://github.com/jimhester/lintr) [lintr](https://github.com/jimhester/lintr) found the following 13 potential issues: message | number of times --- | --- Lines should not be more than 80 characters. | 13


Package Versions

|package |version | |:--------|:---------| |pkgstats |0.0.0.309 | |pkgcheck |0.0.1.428 |


Editor-in-Chief Instructions:

This package is in top shape and may be passed on to a handling editor

noamross commented 3 years ago

Thanks, @dieghernan! @emilyriederer will be your editor. FYI, our check-bot failed because the <!--repourl--><!--end-repourl--> tags were absent from your submission template. I've added them back in. We're looking into ways to make that more robust!

dieghernan commented 3 years ago

My bad, thank you!

emilyriederer commented 3 years ago

Hi @dieghernan - so nice to meet you and thank you for submitting this great package!

I did not notice any causes for concern on my first review, and the only enhancement found by the testing suite is perhaps splitting up a few of the long lines of code found by lintr. You can run lintr::lint_package(".") within your R package to reproduce these locally.

I think we are ready to move to the next stage, so I will begin to look for reviewers. We will be in touch soon!

In the meantime on your end, could you please add the rOpenSci badge to your repo? You can use the helper function rodev::use_review_badge(463) to accomplish this

(P.S. Love the hex sticker design 😍 )


Editor checks:


Editor comments

lintr identifies a small number of particularly long lines of code. You can run lintr::lint_package(".") within your R package to reproduce these locally and might want to consider if there are opportunities to shorten or to break across lines for readability.


Reviewers: Due date:

dieghernan commented 3 years ago

Thanks @emilyriederer , nice to meet you as well.

I did my best trying to remove long lines of code, most of them were links to long urls, but I managed to get no lint warning on that, see:

https://github.com/dieghernan/cffr/actions/runs/1244840358

I also added the badge to the README, thanks for the rodev::use_review_badge(463)

(PS: I was looking for images of neural networks and I found that fantastic .png 😄 )

dieghernan commented 3 years ago

@ropensci-review-bot check package

ropensci-review-bot commented 3 years ago

I'm sorry @dieghernan, I'm afraid I can't do that. That's something only editors are allowed to do.

noamross commented 3 years ago

@ropensci-review-bot check package

ropensci-review-bot commented 3 years ago

Thanks, about to send the query.

ropensci-review-bot commented 3 years ago

:rocket:

Editor check started

:wave:

ropensci-review-bot commented 3 years ago

Checks for cffr (v0.0.1.9001)

git hash: f8060a2e

Package License: GPL (>= 3)


1. Statistical Properties

This 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: - code in R (100% in 13 files) and - 1 authors - 1 vignette - no internal data file - 5 imported packages - 12 exported functions (median 21 lines of code) - 74 non-exported functions in R (median 13 lines of code) --- Statistical properties of package structure as distributional percentiles in relation to all current CRAN packages The following terminology is used: - `loc` = "Lines of Code" - `fn` = "function" - `exp`/`not_exp` = exported / not exported The final measure (`fn_call_network_size`) is the total number of calls between functions (in R), or more abstract relationships between code objects in other languages. Values are flagged as "noteworthy" when they lie in the upper or lower 5th percentile. |measure | value| percentile|noteworthy | |:------------------------|-----:|----------:|:----------| |files_R | 13| 65.6| | |files_vignettes | 2| 83.0| | |files_tests | 13| 91.6| | |loc_R | 889| 62.7| | |loc_vignettes | 176| 66.9| | |loc_tests | 803| 80.8| | |num_vignettes | 1| 60.7| | |n_fns_r | 86| 66.2| | |n_fns_r_exported | 12| 48.2| | |n_fns_r_not_exported | 74| 70.6| | |n_fns_per_file_r | 4| 50.4| | |num_params_per_fn | 1| 1.1|TRUE | |loc_per_fn_r | 14| 56.3| | |loc_per_fn_r_exp | 22| 51.8| | |loc_per_fn_r_not_exp | 13| 59.8| | |rel_whitespace_R | 28| 75.0| | |rel_whitespace_vignettes | 52| 85.5| | |rel_whitespace_tests | 30| 94.6| | |doclines_per_fn_exp | 44| 55.3| | |doclines_per_fn_not_exp | 0| 0.0|TRUE | |fn_call_network_size | 94| 75.8| | ---

1a. Network visualisation

Interactive network visualisation of calls between objects in package can be viewed by clicking here


2. goodpractice and other checks

Details of goodpractice and other checks (click to open)

### 3a. Continuous Integration Badges [![github](https://github.com/dieghernan/cffr/actions/workflows/check-full.yaml/badge.svg)](https://github.com/dieghernan/cffr/actions) [![github](https://github.com/dieghernan/cffr/actions/workflows/cff-validator.yml/badge.svg)](https://github.com/dieghernan/cffr/actions) **GitHub Workflow Results** |name |conclusion |sha |date | |:------------------------------|:----------|:------|:----------| |.github/workflows/test-ci.yaml |failure |440d20 |2021-09-17 | |lint |failure |f8060a |2021-09-17 | |pkgdown-gh-pages |failure |f8060a |2021-09-17 | |R-CMD-check |success |f8060a |2021-09-17 | |Test on GHA | |f8060a |2021-09-17 | |test-coverage |failure |f8060a |2021-09-17 | --- ### 3b. `goodpractice` results ### `R CMD check` with [rcmdcheck](https://r-lib.github.io/rcmdcheck/) rcmdcheck found no errors, warnings, or notes ### Test coverage with [covr](https://covr.r-lib.org/) Package coverage: 98.89 ### Cyclocomplexity with [cyclocomp](https://github.com/MangoTheCat/cyclocomp) The following functions have cyclocomplexity >= 15: function | cyclocomplexity --- | --- cff_create | 15 clean_str | 15 ### Static code analyses with [lintr](https://github.com/jimhester/lintr) [lintr](https://github.com/jimhester/lintr) found the following 13 potential issues: message | number of times --- | --- Lines should not be more than 80 characters. | 13

:heavy_check_mark: Package has at least one HTML vignette


Package Versions

|package |version | |:--------|:---------| |pkgstats |0.0.0.311 | |pkgcheck |0.0.1.484 |


Editor-in-Chief Instructions:

This package is in top shape and may be passed on to a handling editor

emilyriederer commented 3 years ago

Thanks, @dieghernan !

One other metric I just wanted to call out is the high cyclocomplexity scores for clean_str() and cff_create().

If you aren't familiar with this score (I wasn't until this review!), the R package's README gives some good examples. In short, it measure how many different distinct paths your code might go through when evaluation (based on things like if-else clauses). Right now, our checks highlight scores greater than 15. High scores might suggest opportunities for simplification with strategies like using more internal helper functions; high scores can also suggest that the function is hard to test robustly since it can be hard to hit all the corner cases.

I want to say upfront, I am comfortable with your code as-is and think these functions are very reasonable. For your functions, all of the blocks seem necessary and so concise that more internal functions might actually decrease the readability of the code.

That said, I thought I'd also highlight that part of the review for your judgement.

Still working on the reviewers but hope to have some news soon!

dieghernan commented 3 years ago

Thanks @emilyriederer, I would have a look on that. I still don’t fully understand the high score on clean_str (24 loc with 3 if/else, would investigate it).

I would like to highlight that I have implemented a strategy with testthat + GHA for testing the package on >5000 packages. More information here:

Latest results here:

I have used this for detecting corner cases, but probably this have added also complexity on the functions.

The tests are OK now, and in the packages that the validation is failing are due to errors on the raw files of the packages tested (i.e. malformed urls and DOI/ORCID on old packages, that won’t be compliant with the current CRAN policies).

Thanks for your hard work. May I suggest for review any of the authors of {codemeta} or {handlr} (both in rOpenSci)? The scope of these packages are closely related with {cffr} and it will be interesting to have their feedback.

dieghernan commented 3 years ago

Hi @emilyriederer , I have introduced some changes and removing some unneeded chunks (https://github.com/dieghernan/cffr/commit/1aeb1868b8c3989fe8e9e9b438a7d99658270034)

Now running cyclocomp::cyclocomp_package_dir() I see a max cyclocomp of 13 🎉 !

Details | |name | cyclocomp| |:--|:-----------------------------|---------:| |7 |cff_create | 13| |17 |cff_write | 11| |9 |cff_parse_citation | 10| |10 |cff_parse_person | 8| |19 |clean_str | 8| |6 |cff | 7| |35 |parse_desc_urls | 6| |42 |rapply_cff | 6| |1 |as.cff | 5| |16 |cff_validate | 5| |39 |parse_r_citation | 5| |23 |is.substring | 4| |3 |building_month | 3| |5 |building_url | 3| |18 |clean_jsonlite | 3| |22 |is.email | 3| |24 |is.url | 3| |25 |merge_desc_cit | 3| |32 |parse_desc_keywords | 3| |2 |building_doi | 2| |14 |cff_schema_keys | 2| |21 |is.cff | 2| |29 |parse_desc_authors | 2| |31 |parse_desc_date_released | 2| |37 |parse_package_meta | 2| |38 |parse_preferred_auto | 2| |43 |stopifnotcff | 2| |44 |stopifnotexists | 2| |4 |building_other_persons | 1| |8 |cff_description | 1| |11 |cff_schema_definitions_entity | 1| |12 |cff_schema_definitions_person | 1| |13 |cff_schema_definitions_refs | 1| |15 |cff_schema_keys_license | 1| |20 |drop_null | 1| |26 |other_persons | 1| |27 |other_persons_entity | 1| |28 |parse_desc_abstract | 1| |30 |parse_desc_contacts | 1| |33 |parse_desc_license | 1| |34 |parse_desc_title | 1| |36 |parse_desc_version | 1| |40 |print.cff | 1| |41 |print_snapshot | 1| |45 |validate_schema | 1|
emilyriederer commented 3 years ago

@ropensci-review-bot add @sckott to reviewers

ropensci-review-bot commented 3 years ago

@sckott added to the reviewers list. Review due date is 2021-10-19. Thanks @sckott for accepting to review! Please refer to our reviewer guide.

ropensci-review-bot commented 3 years ago

@sckott: If you haven't done so, please fill this form for us to update our reviewers records.

dieghernan commented 3 years ago

Hi @sckott , nice to meet you. I just wanted to say hello and let you know that some days ago I added a new vignette "Crosswalk" that provides tecnical details and examples on how {cffr} extracts the metadata. I think this may be useful:

https://dieghernan.github.io/cffr/articles/crosswalk.html

Regards

emilyriederer commented 3 years ago

@ropensci-review-bot add @zambujo to reviewers

ropensci-review-bot commented 3 years ago

@zambujo added to the reviewers list. Review due date is 2021-10-20. Thanks @zambujo for accepting to review! Please refer to our reviewer guide.

ropensci-review-bot commented 3 years ago

@zambujo: If you haven't done so, please fill this form for us to update our reviewers records.

emilyriederer commented 3 years ago

Thanks to @sckott and @zambujo for volunteering to review!

emilyriederer commented 2 years ago

Hey @sckott and @zambujo - I just thought I'd give an nudge that we are about halfway to the target review due dates (~10/20). Nu rush at all within those bounds, but I know we have a lot going on so I wanted to drop a quick reminder in here. Thanks again for your support reviewing this work!

zambujo commented 2 years ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Functionality

Estimated hours spent reviewing: 7


Review Comments

{cffr} allows R users to effortlessly produce Github compliant citations cff files from the metadata provided in the DESCRIPTION and/or CITATION files. I believe and hope this package will provide a new best practices standard for anyone who wishes to be credited for their R packages and research compendia.

The effort and the level of detail @dieghernan put in developing the package are superb. I really liked to see the way the package was structured and the code tested. 🙌🏼

I could only find a few minor issues, which are divided in should- and would-have.

Should-have issues

fixes that should be addressed to improve the package

Would have issues

opinionated suggestions, based on personal preferences, therefore left to the criteria of the author

dieghernan commented 2 years ago

Many thanks for such an useful review @zambujo , I'll tackle those issues along with the potential ones provided by @sckott once I have a complete feedback. Regards

sckott commented 2 years ago

Package Review

Please check off boxes as applicable, and elaborate in comments below. Your review is not limited to these topics, as described in the reviewer guide

Documentation

The package includes all the following forms of documentation:

Functionality

Estimated hours spent reviewing: 1


Review Comments

Nice work! Very nice package. A few comments:

newobject <- cff_create(cff())
newkeys <- list(
     "url" = "https://ropensci.org/",
     "version" = "0.0.1",
     "repository" = "https://github.com/user/repo",
     # If the field is already present, it would be overridden
     tittle = "Modifying a 'cff' object"
   )
modobject <- cff_create(newobject, keys = newkeys)
modobject
#> cff-version: 1.2.0
#> message: If you use this software, please cite it using these metadata.
#> title: My Research Software
#> version: 0.0.1
#> authors:
#> - family-names: Doe
#>   given-names: John
#> preferred-citation:
#>   type: manual
#>   title: My Research Software
#>   authors:
#>   - family-names: Doe
#>     given-names: John
#>   year: '2021'
#> repository: https://github.com/user/repo
#> url: https://ropensci.org/
dieghernan commented 2 years ago

Thanks for your feedback @sckott , I am already working on that

dieghernan commented 2 years ago

Hi @emilyriederer , I am already working on the proposals of @zambujo and @sckott . Could you please let me know the steps to follow?

emilyriederer commented 2 years ago

Hi @dieghernan - My apologies for the slow reply! Thanks so much for getting started working on the feedback (and thanks to @zambujo and @sckott for excellent reviews! I love all of the thoughtful ideas you shared to both improve the design/UI and the resilience on the backend.)

To answer your question, @dieghernan , you're already on the right next step by starting to evaluate and incorporate review feedback. Of course, you are not obligated to take all of the reviewers' suggestions; we can all discuss them more here if you have questions or counterarguments, and ultimately you own the outcome. Otherwise, for those that you like, you can work to implement them. When you feel good about the package, we can ask the reviewers to take one last look, and then likely we can get this approved!

So TLDR: let us know when you're ready for more input -- whether that be discussing reviewer comments and/or getting a final sign-off.

dieghernan commented 2 years ago

Hi see here my comments on your feedback:

@zambujo

Should-have issues

Done, although this was purelly internal, I renamed to parse_cit_result: https://github.com/dieghernan/cffr/blob/f0bfec08b7f187fc81095aa34c0035389d2e8f1b/R/cff_parse_citation.R#L168-L177

Renamed to perc and multiplied by 100: https://github.com/dieghernan/cffr/blob/main/inst/extdata/cran_licenses.csv

Removed, see https://github.com/dieghernan/cffr/commit/41891df841cbd95cf602947380bbc8ce68a0f182#diff-29652df7edd2dd5fb8d61a890494b71c3b1fbfc6324423d345d9441f254fd6ab

Would have issues

Thanks for raise this, in fact I reviewed the CFF specification and added even more: https://github.com/dieghernan/cffr/commit/f357575349a5adbcf9a096eddcf6fd3ed02cc4be#diff-a49a797e82cb8d4bb9dae1e29fcb4bc2e6ba5216cbe790ba38b6ef2095586a9c. I also added tests: https://github.com/dieghernan/cffr/commit/f357575349a5adbcf9a096eddcf6fd3ed02cc4be#diff-563c01c983fd081a369a31d2eacad752d51b3861d8c8174ce475880ff807ac08

Same that before and same links (changed and tests added, thanks)

Now it is displayed, see https://dieghernan.github.io/cffr/reference/cffr-package.html, although this was due to how roxygen2 handles the DESCRIPTION file: https://github.com/r-lib/roxygen2/issues/1265

Done https://dieghernan.github.io/cffr/reference/cff_validate.html

Done https://dieghernan.github.io/cffr/reference/cff_write.html

It has been removed

Now it is accessible, see https://dieghernan.github.io/cffr/reference/cran_to_spdx.html

dieghernan commented 2 years ago

@sckott

Added, I just identified as potential alternative CodeMeta (any help is appreciated):https://github.com/dieghernan/cffr/#related-projects. I also updated the README

See comment for @zambujo

I have reduced the amount of messages, see log: https://github.com/dieghernan/cffr/runs/4036820340?check_suite_focus=true

I have added the verbose parameter on the relevant functions:

Fixed, see https://dieghernan.github.io/cffr/reference/cff.html#value

See now https://dieghernan.github.io/cffr/reference/cff.html#arguments

I added a fuzzy matching algorithm: https://github.com/dieghernan/cffr/blob/62f69116d495130fae22334df16af32270255590/R/utils.R#L110-L157

And also additional tests: https://github.com/dieghernan/cffr/blob/62f69116d495130fae22334df16af32270255590/tests/testthat/test-cff.R#L88-L113 and the snapshot https://github.com/dieghernan/cffr/blob/main/tests/testthat/_snaps/cff.md#fuzzy-matching-of-keys-on-cff

zambujo commented 2 years ago

Hi @emilyriederer: @dieghernan thoroughly addressed all of my comments and suggestions. Great job!

sckott commented 2 years ago

✅ @dieghernan has addressed my comments, nice work 🚀

emilyriederer commented 2 years ago

Approved! Congratulations, @dieghernan, for the great work, and thanks to @zambujo and @sckott for your thoughtful reviews! :tada:

To-dos:

Should you want to acknowledge your reviewers in your package DESCRIPTION, you can do so by making them "rev"-type contributors in the Authors@R field (with their consent). More info on this here.

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 @stefaniebutland in your reply. She will get in touch about timing and can answer any questions.

We've put together an online book with our best practice and tips, this chapter starts the 3d section that's about guidance for after onboarding. Please tell us what could be improved, the corresponding repo is here.

emilyriederer commented 2 years ago

@dieghernan , I know I shared a lot in the message above, so I wanted to highlight one more specific item for your consideration. I think this package could be of very high interest to the rOpenSci community since it would apply generally across all domains. If you'd be interested in thinking about how this package could be highlighted in an rOpenSci blog post or tech note, it might be worth having a discussion with @ropensci/blog-editors

I think it could be great to highlight how this package is similar in spirit to well-known tools like devtools and usethis and smartly reuses repository context to create a general-purpose citation file. This could also help raise awareness for GitHub's citation feature and the benefits that you see in it since it is relatively new.

dieghernan commented 2 years ago

Hi @emilyriederer, thanks! I am not able to transfer the repo, could you please double check? I’ll answer the rest of the comment on a later stage

emilyriederer commented 2 years ago

Hi @dieghernan - my apologies. You should have now received an invitation to join a team within the ropensci organization. Please accept that and try the transfer. After it is complete, I will go in and make you an admin on the transferred repo.

dieghernan commented 2 years ago

Repo transferred @emilyriederer! ~By the way, the rOpenSci badge is still as "Under Review" (?)~

peer-review

Also ping @noamross

emilyriederer commented 2 years ago

Admin access granted!

stefaniebutland commented 2 years ago

Hi @dieghernan, I'm rOpenSci's Community Manager. Congratulations on cffr passing review! Yes a post noted by Emily would be really valuable. Narrative and technical guidelines are in https://blogguide.ropensci.org/. If you're interested, please suggest when you would like to submit a draft. I recognize this is extra work, so no pressure intended here :-)

My colleague @steffilazerte would review it and suggest a publication date.

dieghernan commented 2 years ago

Hi @stefaniebutland, @steffilazerte

I’ll have a look and let you know a feasible date for the blog post.

I was also thinking on submitting the package to CRAN, and I wonder if submitting it before or after you publish the post. The package is almost ready for it.

What are your views on this? Regards

stefaniebutland commented 2 years ago

I can't think of a specific reason to choose publishing before or after CRAN (Steffi how about you?). It's up to you. We could have your post in a pull request, reviewed and ready to publish once on CRAN if you prefer that.

steffilazerte commented 2 years ago

I think it's up to you as well. I can't imagine that CRAN would have you change anything major that would affect the user experience, and we generally have you link to the ropensci docs page (not to the CRAN page), so it shouldn't matter in the blog post.

dieghernan commented 2 years ago

Hi @steffilazerte @emilyriederer

I think I could send a draft post by the end of the next week. So assuming at least one week for reviewing and that the posts are usually published on Tuesday (as per the Blog Guide the first feasible publishing date would be Nov. 23 2021.

Let me know what you think,

Regards

P.S: the package has been submitted to CRAN for review 🤞🏻

stefaniebutland commented 2 years ago

Just fyi, @maelle & others wrote this post in Feb 2021: Make Your R Package Easier to Cite. So you know what rOpenSci has said on the topic before.

Steffi and I agreed Nov 23 is a good tentative publication date.

dieghernan commented 2 years ago

And it is on CRAN! https://cran.r-project.org/package=cffr

emilyriederer commented 2 years ago

Congratulations, @dieghernan ! That's fantastic news!