Skip to content

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

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
11 of 27 tasks
dieghernan opened this issue Sep 16, 2021 · 49 comments
Closed
11 of 27 tasks
Assignees

Comments

@dieghernan
Copy link
Member

dieghernan commented Sep 16, 2021

Submitting Author Name: Diego Hernangómez
Submitting Author Github Handle: @dieghernan
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


  • Paste the full DESCRIPTION file inside a code block below:
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

  • 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.):

    • data retrieval
    • data extraction
    • data munging
    • data deposition
    • workflow automation
    • version control
    • citation management and bibliometrics
    • scientific software wrappers
    • field and lab reproducibility tools
    • database software bindings
    • geospatial data
    • text analysis
  • Explain how and why the package falls under these categories (briefly, 1-2 sentences):

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).

  • Who is the target audience and what are scientific applications of this package?

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

  • If you made a pre-submission inquiry, please paste the link to the corresponding issue, forum post, or other discussion, or @tag the editor you contacted.

#462 @noamross

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
  • 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)
  • (Scope: Do consider MEE's Aims and Scope 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
Copy link
Collaborator

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

@ropensci-review-bot
Copy link
Collaborator

Error (500). The editorcheck service is currently unavailable

@dieghernan dieghernan changed the title {cffr} Generate Citation File Format ('cff') Metadata for R Packages Submission: {cffr} Generate Citation File Format ('cff') Metadata for R Packages Sep 16, 2021
@ropensci-review-bot
Copy link
Collaborator

Checks for cffr (v0.0.1.9001)

git hash: cc7c87d1

  • ✔️ Package uses 'roxygen2'
  • ✔️ Package has a 'contributing.md' file
  • ✔️ Package has a 'CITATION' file
  • ✔️ Package has a 'codemeta.json' file
  • ✔️ All functions have examples
  • ✔️ Package 'DESCRIPTION' has a URL field
  • ✔️ Package 'DESCRIPTION' has a BugReports field
  • ✔️ Package name is available
  • ✔️ Package has continuous integration checks
  • ✔️ Package coverage is 99%
  • ✔️ R CMD check found no errors
  • ✔️ R CMD check found no warnings

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
github

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

rcmdcheck found no errors, warnings, or notes

Test coverage with covr

Package coverage: 99.04

Cyclocomplexity with cyclocomp

The following functions have cyclocomplexity >= 15:

function cyclocomplexity
cff_create 15
clean_str 15

Static code analyses with lintr

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
Copy link
Contributor

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
Copy link
Member Author

My bad, thank you!

@emilyriederer
Copy link

emilyriederer commented Sep 17, 2021

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:

  • Documentation: The package has sufficient documentation available online (README, pkgdown docs) to allow for an assessment of functionality and scope without installing the package.
  • Fit: The package meets criteria for fit and overlap
  • Automated tests: Package has a testing suite and is tested via a CI service.
  • License: The package has a CRAN or OSI accepted license
  • Repository: The repository link resolves correctly

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 added a commit to ropensci/cffr that referenced this issue Sep 17, 2021
@dieghernan
Copy link
Member Author

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
Copy link
Member Author

@ropensci-review-bot check package

@ropensci-review-bot
Copy link
Collaborator

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

@noamross
Copy link
Contributor

@ropensci-review-bot check package

@ropensci-review-bot
Copy link
Collaborator

Thanks, about to send the query.

@ropensci-review-bot
Copy link
Collaborator

🚀

Editor check started

👋

@ropensci-review-bot
Copy link
Collaborator

Checks for cffr (v0.0.1.9001)

git hash: f8060a2e

  • ✔️ Package uses 'roxygen2'.
  • ✔️ Package has a 'contributing.md' file.
  • ✔️ Package has a 'CITATION' file.
  • ✔️ Package has a 'codemeta.json' file.
  • ✔️ All functions have examples.
  • ✔️ Package has at least one HTML vignette
  • ✔️ Package 'DESCRIPTION' has a URL field.
  • ✔️ Package 'DESCRIPTION' has a BugReports field.
  • ✔️ Package name is available.
  • ✔️ Package has continuous integration checks.
  • ✔️ Package coverage is 98.9%.
  • ✔️ R CMD check found no errors.
  • ✔️ R CMD check found no warnings.

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
github

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

rcmdcheck found no errors, warnings, or notes

Test coverage with covr

Package coverage: 98.89

Cyclocomplexity with cyclocomp

The following functions have cyclocomplexity >= 15:

function cyclocomplexity
cff_create 15
clean_str 15

Static code analyses with lintr

lintr found the following 13 potential issues:

message number of times
Lines should not be more than 80 characters. 13

✔️ 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
Copy link

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
Copy link
Member Author

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
Copy link
Member Author

dieghernan commented Sep 18, 2021

Hi @emilyriederer , I have introduced some changes and removing some unneeded chunks (ropensci/cffr@1aeb186)

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
Copy link

@ropensci-review-bot add @sckott to reviewers

@ropensci-review-bot
Copy link
Collaborator

@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
Copy link
Collaborator

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

@ropensci ropensci deleted a comment from ropensci-review-bot Sep 28, 2021
@dieghernan
Copy link
Member Author

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
Copy link

@ropensci-review-bot add @zambujo to reviewers

@ropensci-review-bot
Copy link
Collaborator

@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.

@dieghernan
Copy link
Member Author

Hi see here my comments on your feedback:

@zambujo

Should-have issues

  • community guidelines: CONTRIBUTING.md is hidden under .github/ and should moved to ./CONTRIBUTING (also @sckott)

Done, now is in the root dir of the package: https://github.com/dieghernan/cffr

  • naming: in cff_parse_citation() (R/cff_parse_citation.R), newlist could be renamed as something more meaningful (eg. parse_cit_final or parse_cit_result)

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

  • naming: in cran_licences.csv (data-raw/cran-to-spdx.R, line 11), the column name porc could be renamed as either perc (in which case should be multiplied by 100) or share

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

  • other_persons_entity() (R/parse_citation.R) contains commented code and should be dealt with (removed if not important, or accounted for if important)

Removed, see ropensci/cffr@41891df#diff-29652df7edd2dd5fb8d61a890494b71c3b1fbfc6324423d345d9441f254fd6ab

Would have issues

  • is.url() (R/assertions.R): would it make sense to also include ftp:// (as in desc:::is_url())?

Thanks for raise this, in fact I reviewed the CFF specification and added even more: ropensci/cffr@f357575#diff-a49a797e82cb8d4bb9dae1e29fcb4bc2e6ba5216cbe790ba38b6ef2095586a9c. I also added tests: ropensci/cffr@f357575#diff-563c01c983fd081a369a31d2eacad752d51b3861d8c8174ce475880ff807ac08

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

  • would there a way to display the DOI in this page as a proper link?

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: r-lib/roxygen2#1265

  • I think cff_validate(x = "CITATION.cff", ...) (R/cff_validate.R) would be more natural than cff_validate(x = "./CITATION.cff", ...)

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

  • I think cff_write(x, ...) (R/cff_write.R) would be more natural than cff_write(x = ".", ...), as x can take different types

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

  • dev/ appears to contain development scripts: some could be stashed onto a separate git branch (and removed from main) or placed in a Makefile, thereby removing dev/ from the main branch

It has been removed

  • if one would wish to call inst/extdata/cran-to-spdx.csv from other packages or scripts, it would be easiest to place it in data/cran_to_spdx.rda (and document it in R/data.R)

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

@dieghernan
Copy link
Member Author

@sckott

  • A statement of need (...) Maybe add a bit of text in README about what alternatives exist, if any, and if there are altneratives, why use CFF?

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

  • Community guidelines

See comment for @zambujo

  • When the tests run, there's a lot of messages output - perhaps suppress these messages for tests? Would make for a cleaner test output. But maybe you want the messages?

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

  • Maybe give users the ability to suppress messages if they want to as they use the package?

I have added the verbose parameter on the relevant functions:

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

  • For the ... ellipsis arg for cff(), I'm left wondering what named arguments can be passed in?

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

  • I wonder if there's possibly a better user experience when someone misspells a key, e.g., what if they type tittle instead of title? Right now the misspelled key gets silently dropped/ignored. Perhaps its possible to check if a key that doesn't match is close to a known key, and let the user know?

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
Copy link

zambujo commented Oct 29, 2021

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

@sckott
Copy link
Contributor

sckott commented Oct 29, 2021

@dieghernan has addressed my comments, nice work 🚀

@emilyriederer
Copy link

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

To-dos:

  • Transfer the repo to rOpenSci's "ropensci" GitHub organization under "Settings" in your repo. I have invited you to a team that should allow you to do so. You'll be made admin once you do.
  • Fix all links to the GitHub repo to point to the repo under the ropensci organization.
  • Delete your current code of conduct file if you had one since rOpenSci's default one will apply, see https://devguide.ropensci.org/collaboration.html#coc-file
  • If you already had a pkgdown website and are ok relying only on rOpenSci central docs building and branding,
    • deactivate the automatic deployment you might have set up
    • remove styling tweaks from your pkgdown config but keep that config file
    • replace the whole current pkgdown website with a redirecting page
    • replace your package docs URL with https://docs.ropensci.org/package_name
    • In addition, in your DESCRIPTION file, include the docs link in the URL field alongside the link to the GitHub repository, e.g.: URL: https://docs.ropensci.org/foobar (website) https://github.com/ropensci/foobar
  • Fix any links in badges for CI and coverage to point to the ropensci URL. We no longer transfer Appveyor projects to ropensci Appveyor account so after transfer of your repo to rOpenSci's "ropensci" GitHub organization the badge should be [![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/github/ropensci/pkgname?branch=master&svg=true)](https://ci.appveyor.com/project/individualaccount/pkgname). If Appveyor does not pick up new commits after transfer, you might need to delete and re-create the Appveyor project. (Repo transfers are smoother with GitHub Actions)
  • Please check you updated the package version post-review version updated and that you documented all changes in NEWS.md
  • We're starting to roll out software metadata files to all ropensci packages via the Codemeta initiative, see https://github.com/ropensci/codemetar/#codemetar for how to include it in your package, after installing the package - should be easy as running codemetar::write_codemeta() in the root of your package.

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
Copy link

@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
Copy link
Member Author

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
Copy link

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
Copy link
Member Author

dieghernan commented Nov 1, 2021

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

peer-review

Also ping @noamross

@emilyriederer
Copy link

Admin access granted!

@stefaniebutland
Copy link
Member

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
Copy link
Member Author

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
Copy link
Member

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
Copy link
Member

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
Copy link
Member Author

dieghernan commented Nov 4, 2021

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
Copy link
Member

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
Copy link
Member Author

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

@emilyriederer
Copy link

Congratulations, @dieghernan ! That's fantastic news!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

9 participants