Skip to content
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

CRediTas: a tiny package to generate CRediT authors statements #576

Closed
12 of 29 tasks
jospueyo opened this issue Feb 23, 2023 · 64 comments
Closed
12 of 29 tasks

CRediTas: a tiny package to generate CRediT authors statements #576

jospueyo opened this issue Feb 23, 2023 · 64 comments
Assignees

Comments

@jospueyo
Copy link

jospueyo commented Feb 23, 2023

Date accepted: 2023-04-11

Submitting Author Name: Josep Pueyo-Ros
Submitting Author Github Handle: @jospueyo
Repository: https://github.com/jospueyo/CRediTas
Version submitted: 0.1.0
Submission type: Standard
Editor: @emilyriederer
Reviewers: @zambujo, @msperlin

Due date for @zambujo: 2023-04-04

Due date for @msperlin: 2023-04-06
Archive: TBD
Version accepted: TBD
Language: en

  • Paste the full DESCRIPTION file inside a code block below:
Package: CRediTas
Type: Package
Title: Generate CRediT Author Statements
Version: 0.1.0
Authors@R: 
    c(
      person(given = "Josep", family = "Pueyo-Ros", email = "josep.pueyo@udg.edu", 
      role = c("aut", "cre"), comment = c(ORCID = "0000-0002-1236-5651")))
Description: CRediTas is a tiny package to generate CRediT author statements (https://credit.niso.org/). 
    It provides three functions: create a template, read it back and generate the CRediT author statement in a text file.
License: MIT + file LICENSE
Encoding: UTF-8
LazyData: true
URL: https://github.com/jospueyo/creditas
BugReports: https://github.com/jospueyo/creditas/issues
RoxygenNote: 7.2.1
Suggests: 
    testthat (>= 3.0.0)
Config/testthat/edition: 3

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
    • data validation and testing
    • 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 facilitates the creation of CRediT author statements, which are mandatory for many journals and encourage good practices in coauthoring scientific publications.

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

The target audience are authors of scientific publications. There are not scientific applications of this package. It helps in the good practices of open science.

There are not as far as I know

Not applicable

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

  • Explain reasons for any pkgcheck items which your package is unable to pass.

Long lines in test-write_cras.R because I compare a string with a generated text file. If I break the lines I cannot compare both.
Avoid T and F in write_cras.R: I do not use T or F, in line 1, there is "CRediT" which confounds the algorithm.

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

🚀

Editor check started

👋

@ropensci-review-bot
Copy link
Collaborator

Checks for credit (v0.1.0)

git hash: 5c151c4f

  • ✔️ Package name is available
  • ✖️ does not have a 'codemeta.json' file.
  • ✖️ does not have a 'contributing' file.
  • ✔️ uses 'roxygen2'.
  • ✔️ 'DESCRIPTION' has a URL field.
  • ✔️ 'DESCRIPTION' has a BugReports field.
  • ✖️ Package has no HTML vignettes
  • ✔️ All functions have examples.
  • ✔️ Package has continuous integration checks.
  • ✔️ Package coverage is 100%.
  • ✔️ R CMD check found no errors.
  • ✔️ R CMD check found no warnings.
  • 👀 Function names are duplicated in other packages

Important: All failing checks above must be addressed prior to proceeding

(Checks marked with 👀 may be optionally addressed.)

Package License: MIT + file LICENSE


1. Package Dependencies

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

type package ncalls
internal base 12
internal credit 2
internal stats 2
internal utils 2
imports NA NA
suggests testthat NA
linking_to NA NA

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.

base

for (3), data.frame (2), drop (1), if (1), length (1), ncol (1), nrow (1), seq_len (1), T (1)

credit

create_template (1), read_template (1)

stats

df (2)

utils

read.csv2 (1), write.csv2 (1)

NOTE: No imported packages appear to have associated function calls; please ensure with author that these 'Imports' are listed appropriately.


2. 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 3 files) and
  • 1 authors
  • no vignette
  • no internal data file
  • 1 imported package
  • 3 exported functions (median 17 lines of code)
  • 3 non-exported functions in R (median 31 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

All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the checks_to_markdown() function

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 3 21.5
files_vignettes 0 0.0 TRUE
files_tests 4 79.0
loc_R 55 5.5
loc_tests 49 25.2
num_vignettes 0 0.0 TRUE
n_fns_r 6 6.6
n_fns_r_exported 3 12.9
n_fns_r_not_exported 3 5.3
n_fns_per_file_r 1 0.2 TRUE
num_params_per_fn 3 33.6
loc_per_fn_r 22 64.1
loc_per_fn_r_exp 17 40.3
loc_per_fn_r_not_exp 31 79.3
rel_whitespace_R 42 19.2
rel_whitespace_tests 27 26.7
doclines_per_fn_exp 22 17.6
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 0 0.0 TRUE

2a. Network visualisation

Click to see the interactive network visualisation of calls between objects in package


3. goodpractice and other checks

Details of goodpractice checks (click to open)

3a. Continuous Integration Badges

R-CMD-check.yaml

GitHub Workflow Results

id name conclusion sha run_number date
4253501958 R-CMD-check success 5c151c 6 2023-02-23

3b. goodpractice results

R CMD check with rcmdcheck

rcmdcheck found no errors, warnings, or notes

Test coverage with covr

Package coverage: 100

Cyclocomplexity with cyclocomp

No functions have cyclocomplexity >= 15

Static code analyses with lintr

lintr found the following 2 potential issues:

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


4. Other Checks

Details of other checks (click to open)

✖️ The following function name is duplicated in other packages:

    • read_template from onbrand


Package Versions

package version
pkgstats 0.1.3
pkgcheck 0.1.1.11


Editor-in-Chief Instructions:

Processing may not proceed until the items marked with ✖️ have been resolved.

@jospueyo
Copy link
Author

All items marked with ✖️ have been resolved.

@jospueyo
Copy link
Author

@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 credit (v0.1.0)

git hash: fa36ab55

  • ✔️ Package name is available
  • ✔️ has a 'codemeta.json' file.
  • ✔️ has a 'contributing' file.
  • ✔️ uses 'roxygen2'.
  • ✔️ 'DESCRIPTION' has a URL field.
  • ✔️ 'DESCRIPTION' has a BugReports field.
  • ✔️ Package has at least one HTML vignette
  • ✔️ All functions have examples.
  • ✔️ Package has continuous integration checks.
  • ✔️ Package coverage is 100%.
  • ✔️ R CMD check found no errors.
  • ✔️ R CMD check found no warnings.
  • 👀 Function names are duplicated in other packages

(Checks marked with 👀 may be optionally addressed.)

Package License: MIT + file LICENSE


1. Package Dependencies

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

type package ncalls
internal base 12
internal credit 2
internal stats 2
internal utils 2
imports NA NA
suggests knitr NA
suggests rmarkdown NA
suggests testthat NA
linking_to NA NA

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.

base

for (3), data.frame (2), drop (1), if (1), length (1), ncol (1), nrow (1), seq_len (1), T (1)

credit

create_template (1), read_template (1)

stats

df (2)

utils

read.csv2 (1), write.csv2 (1)

NOTE: No imported packages appear to have associated function calls; please ensure with author that these 'Imports' are listed appropriately.


2. 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 3 files) and
  • 1 authors
  • 1 vignette
  • no internal data file
  • 1 imported package
  • 3 exported functions (median 17 lines of code)
  • 3 non-exported functions in R (median 31 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

All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the checks_to_markdown() function

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 3 21.5
files_vignettes 1 68.4
files_tests 4 79.0
loc_R 55 5.5
loc_vignettes 47 8.0
loc_tests 49 25.2
num_vignettes 1 64.8
n_fns_r 6 6.6
n_fns_r_exported 3 12.9
n_fns_r_not_exported 3 5.3
n_fns_per_file_r 1 0.2 TRUE
num_params_per_fn 3 33.6
loc_per_fn_r 22 64.1
loc_per_fn_r_exp 17 40.3
loc_per_fn_r_not_exp 31 79.3
rel_whitespace_R 42 19.2
rel_whitespace_vignettes 51 16.9
rel_whitespace_tests 27 26.7
doclines_per_fn_exp 22 17.6
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 0 0.0 TRUE

2a. Network visualisation

Click to see the interactive network visualisation of calls between objects in package


3. goodpractice and other checks

Details of goodpractice checks (click to open)

3a. Continuous Integration Badges

R-CMD-check.yaml

GitHub Workflow Results

id name conclusion sha run_number date
4253778554 R-CMD-check success fa36ab 10 2023-02-23

3b. goodpractice results

R CMD check with rcmdcheck

rcmdcheck found no errors, warnings, or notes

Test coverage with covr

Package coverage: 100

Cyclocomplexity with cyclocomp

No functions have cyclocomplexity >= 15

Static code analyses with lintr

lintr found the following 6 potential issues:

message number of times
Avoid library() and require() calls in packages 1
Lines should not be more than 80 characters. 5


4. Other Checks

Details of other checks (click to open)

✖️ The following function name is duplicated in other packages:

    • read_template from onbrand


Package Versions

package version
pkgstats 0.1.3
pkgcheck 0.1.1.11


Editor-in-Chief Instructions:

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

@jospueyo
Copy link
Author

@ropensci-review-bot check package (I added some sanity checks to a function)

@ropensci-review-bot
Copy link
Collaborator

I'm sorry human, I don't understand that. You can see what commands I support by typing:

@ropensci-review-bot help

@jospueyo
Copy link
Author

@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 credit (v0.1.0)

git hash: ca2d4ce9

  • ✔️ Package name is available
  • ✔️ has a 'codemeta.json' file.
  • ✔️ has a 'contributing' file.
  • ✔️ uses 'roxygen2'.
  • ✔️ 'DESCRIPTION' has a URL field.
  • ✔️ 'DESCRIPTION' has a BugReports field.
  • ✔️ Package has at least one HTML vignette
  • ✔️ All functions have examples.
  • ✔️ Package has continuous integration checks.
  • ✔️ Package coverage is 100%.
  • ✔️ R CMD check found no errors.
  • ✔️ R CMD check found no warnings.
  • 👀 Function names are duplicated in other packages

(Checks marked with 👀 may be optionally addressed.)

Package License: MIT + file LICENSE


1. Package Dependencies

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

type package ncalls
internal base 17
internal credit 4
internal stats 2
internal utils 1
imports NA NA
suggests knitr NA
suggests rmarkdown NA
suggests testthat NA
linking_to NA NA

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.

base

for (3), data.frame (2), nrow (2), seq_len (2), character (1), drop (1), file (1), if (1), length (1), ncol (1), T (1), vapply (1)

credit

check_cras_table (1), create_template (1), drop_authors (1), read_template (1)

stats

df (2)

utils

read.csv2 (1)

NOTE: No imported packages appear to have associated function calls; please ensure with author that these 'Imports' are listed appropriately.


2. 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 4 files) and
  • 1 authors
  • 1 vignette
  • no internal data file
  • 1 imported package
  • 3 exported functions (median 17 lines of code)
  • 7 non-exported functions in R (median 11 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

All parameters are explained as tooltips in the locally-rendered HTML version of this report generated by the checks_to_markdown() function

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 4 28.3
files_vignettes 1 68.4
files_tests 4 79.0
loc_R 71 7.2
loc_vignettes 51 9.1
loc_tests 55 27.1
num_vignettes 1 64.8
n_fns_r 10 13.0
n_fns_r_exported 3 12.9
n_fns_r_not_exported 7 15.5
n_fns_per_file_r 1 19.8
num_params_per_fn 3 33.6
loc_per_fn_r 14 42.4
loc_per_fn_r_exp 17 40.3
loc_per_fn_r_not_exp 11 35.4
rel_whitespace_R 44 24.6
rel_whitespace_vignettes 47 16.9
rel_whitespace_tests 27 29.6
doclines_per_fn_exp 22 17.6
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 2 14.4

2a. Network visualisation

Click to see the interactive network visualisation of calls between objects in package


3. goodpractice and other checks

Details of goodpractice checks (click to open)

3a. Continuous Integration Badges

R-CMD-check.yaml

GitHub Workflow Results

id name conclusion sha run_number date
4260817751 R-CMD-check NA ca2d4c 12 2023-02-24

3b. goodpractice results

R CMD check with rcmdcheck

rcmdcheck found no errors, warnings, or notes

Test coverage with covr

Package coverage: 100

Cyclocomplexity with cyclocomp

No functions have cyclocomplexity >= 15

Static code analyses with lintr

lintr found the following 3 potential issues:

message number of times
Avoid library() and require() calls in packages 1
Lines should not be more than 80 characters. 2


4. Other Checks

Details of other checks (click to open)

✖️ The following function name is duplicated in other packages:

    • read_template from onbrand


Package Versions

package version
pkgstats 0.1.3
pkgcheck 0.1.1.11


Editor-in-Chief Instructions:

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

@maurolepore
Copy link
Member

@jospueyo thanks a lot for your submission!

I'm discussing the scope with the editors board.

To increase the chance they will see the merit of {credit} you might want to unpack in README why the task this package solves is a tedious one. README says it's tedious but it's not immediately obvious how.

@maurolepore maurolepore pinned this issue Feb 26, 2023
@maurolepore maurolepore unpinned this issue Feb 26, 2023
@jospueyo
Copy link
Author

jospueyo commented Feb 27, 2023

@maurolepore I just pushed this explanation.

@maurolepore
Copy link
Member

@jospueyo

Thanks for the explanation and for your patience.

I discussed with other editors and find this package to be in scope. I'll start looking for a handling editor.

@maurolepore
Copy link
Member

@ropensci-review-bot assign @emilyriederer as editor

@ropensci-review-bot
Copy link
Collaborator

Assigned! @emilyriederer is now the editor

@emilyriederer
Copy link

Hi @jospueyo ! I'm delighted to be handling this from the editorial side. I'm traveling for work W-F so I may be a bit slower to respond, but I thought I'd share some initial feedback to get us started. Thanks again and I look forward to working together.

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. In particular,
    • Is the case for the package well made?
    • Is the reference index page clear (grouped by topic if necessary)?
    • Are vignettes readable, sufficiently detailed and not just perfunctory?
  • Fit: The package meets criteria for fit and overlap.
  • Installation instructions: Are installation instructions clear enough for human users?
  • Tests: If the package has some interactivity / HTTP / plot production etc. are the tests using state-of-the-art tooling?
  • Contributing information: Is the documentation for contribution clear enough e.g. tokens for tests, playgrounds?
  • License: The package has a CRAN or OSI accepted license.
  • Project management: Are the issue and PR trackers in a good shape, e.g. are there outstanding bugs, is it clear when feature requests are meant to be tackled?

Editor comments

This is a very clean submission, and it feels close to being ready for reviewers! I notice a few small opportunities before we do the hand-off.

  • Documentation:
    • The documentation is useful but could be improved to help reviewers navigate
    • The vignette could be enhanced to better show different workflows. For example, the text says "The workflow is meant to work with three basic functions. First, we create a template table. It can be created as a data.frame and being populated in R. Or as a csv file and being populated in your preferred csv editor.", but the subsequent code chunk does not show all such options/workflows
    • Please consider making a publicly available pkdown site for your docs (instructions here)
  • License:
    • The package does not appear to use a standard license at the moment. Please refer to [https://devguide.ropensci.org/building.html#licence](this section) of our docs for more options about licenses

@jospueyo
Copy link
Author

jospueyo commented Mar 8, 2023

  • Documentation:

    • I enhanced the vignette by adding different workflows: write a template to a csv file and define custom roles.
    • I created a public pkgdown site at https://jospueyo.github.io/credit/
  • License:

    • I used the function use_mit_license() from devtools. Is this correct?

@emilyriederer
Copy link

Thanks @jospueyo ! I like the Documentation updates a lot. My mistake on the License -- I somehow saw the LICENSE file but missed the LICENSE.md file the first time through. I'll start looking for reviewers for this

@emilyriederer
Copy link

@ropensci-review-bot seeking reviewers

@ropensci-review-bot
Copy link
Collaborator

Please add this badge to the README of your package repository:

[![Status at rOpenSci Software Peer Review](https://badges.ropensci.org/576_status.svg)](https://github.com/ropensci/software-review/issues/576)

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

@jospueyo
Copy link
Author

I addressed all comments of @msperlin. You can see all changes in news: https://github.com/jospueyo/CRediTas/blob/master/NEWS.md

@msperlin
Copy link

I addressed all comments of @msperlin. You can see all changes in news: https://github.com/jospueyo/CRediTas/blob/master/NEWS.md

Thanks @jospueyo. Great work. LEt me know if I can help any further.

@ropensci-review-bot
Copy link
Collaborator

📆 @zambujo you have 2 days left before the due date for your review (2023-04-04).

@zambujo
Copy link

zambujo commented Apr 3, 2023

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

  • Briefly describe any working relationship you have (had) with the package authors.
  • As the reviewer I confirm that there are no conflicts of interest for me to review this work (if you are unsure whether you are in conflict, please speak to your editor before starting your review).

Documentation

The package includes all the following forms of documentation:

  • A statement of need: clearly stating problems the software is designed to solve and its target audience in README
  • Installation instructions: for the development version of package and any non-standard dependencies in README
  • Vignette(s): demonstrating major functionality that runs successfully locally
  • Function Documentation: for all exported functions
  • Examples: (that run successfully locally) for all exported functions
  • Community guidelines: including contribution guidelines in the README or CONTRIBUTING, and DESCRIPTION with URL, BugReports and Maintainer (which may be autogenerated via Authors@R).

Functionality

  • Installation: Installation succeeds as documented.
  • Functionality: Any functional claims of the software been confirmed.
  • Performance: Any performance claims of the software been confirmed.
  • Automated tests: Unit tests cover essential functions of the package and a reasonable range of inputs and conditions. All tests pass on the local machine.
  • Packaging guidelines: The package conforms to the rOpenSci packaging guidelines.

Estimated hours spent reviewing: 5

  • Should the author(s) deem it appropriate, I agree to be acknowledged as a package reviewer ("rev" role) in the package DESCRIPTION file.

Review Comments

CRediTas, which presents itself as a tiny R package, gathers a few functions designed to help authors in providing detailed information about the 14 contributor roles defined by CRediT. Essentially, the package provides a few functions to convert an author-contribution matrix in CRediT statements-like format. The matrix can be more easily shared and edited among the authors in a spreadsheet-like manner before producing the corresponding text with the authors and their contributions.

Although the previous review already significantly improved the package, I have a few additional suggestions (of which implementing non-important ones is left to the criteria of the the author):

  • docs/ (important) fix the link to the CSS of the package dedicated documentation page (https://jospueyo.github.io/CRediTas) appears to be broken as the pkdown package layout is missing

  • template_create() (important): the @description roxygen2 package tag is missing. This originates a very long headline in ?template_create

  • README (not important): in the Example section, add fix(cras_table) (right after knitr::kable(cras_table)) to edit the authorship contribution dataframe in a spreadsheet-like manner directly from within R or RStudio

  • README (not important): add a Related packages section with links to packages covering related use cases (eg. marton-balazs-kovacs/tenzing and openbiox/contribution) at the end of the file

  • allow the file parameter to be empty in cras_write() (not important): check if the file parameter has been assigned with if (missing(file)) instead of if(is.null(file))

  • reduce the scope of template_create() and remove template_read() (not important)

writing/reading output files with write.csv2()/read.csv2() (and/or the readxl package) could be shown in the README and in a vignette. template_create() could be even shorter:

template_create <- function(authors, roles = roles_get()){
  df <- data.frame(Authors = authors)
  mat <- matrix(0, nrow = length(authors), ncol = length(roles))
  colnames(mat) <- roles
  return(cbind(df, mat))
}

In the long run, I would also think of adding a couple of extra features:

  • supporting author UIDs (eg. ORCID) to distinguish between authors with duplicated names in the same list of authors
  • supporting the reverse of cras_write() (i.e. a function converting a string of contributor statements into a non-zero matrix)

@jospueyo
Copy link
Author

jospueyo commented Apr 4, 2023

Responses to @zambujo:

@jospueyo
Copy link
Author

jospueyo commented Apr 4, 2023

For the long run suggestions, I will keep those in mind. I liked both ideas from @zambujo. The second one is especially interesting for epistemological research. I also have in mind an option to facilitate copy&paste in MS word, currently the bold is missed on the way to MS word.

Any contributions will be welcome! ;)

@msperlin
Copy link

msperlin commented Apr 4, 2023

Responses to @zambujo:

I agree.

@ropensci-review-bot
Copy link
Collaborator

📆 @msperlin you have 2 days left before the due date for your review (2023-04-06).

@zambujo
Copy link

zambujo commented Apr 5, 2023

Many thanks @jospueyo: great to see the changes.

If i/o functionality is to be kept, then I'd like to extend my suggestion of not setting file = NULL by default to template_create() and template_read() (replacing is.null(file) with missing(file)).

In template_create(), I'd also suggest passing file as the second parameter.

And to help beginners, it might be a good idea to include path nomalization with normalizePath(file).

Eg.:

template_create <- function(authors, file, roles = roles_get()) {
  df <- data.frame(Authors = authors)
  mat <- matrix(0, nrow = length(authors), ncol = length(roles))
  colnames(mat) <- roles
  df <- cbind(df, mat)
  if (is.missing(file)) return(df)

  file <- normalizePath(file)
  write.csv2(df, file, row.names = FALSE)
  invisible()
}

Last, consider updating the error message in cras_write.R, line 82. 😉

@emilyriederer
Copy link

@msperlin - It looks like you're satisfied with the responses to your feedback? If so, can you please document your approval with our {Final Approval Form](https://devguide.ropensci.org/approval2template.html) ?

(Same for @zambujo once you're satisfied with the discussion!)

@msperlin
Copy link

msperlin commented Apr 10, 2023

Reviewer Response

Final approval (post-review)

  • The author has responded to my review and made changes to my satisfaction. I recommend approving this package.

Estimated hours spent reviewing: 2

@jospueyo
Copy link
Author

jospueyo commented Apr 10, 2023

Thank you for these final insights, @zambujo!

I followed all your suggestions except using normalizePath because then the tests failed. Also, I don't fully understand what it does. So, I'd be happy if you could help me in this if you consider important using normalizePath.

I also updated the NEWS, which I forgot in the last review.

Best wishes!

@zambujo
Copy link

zambujo commented Apr 11, 2023

Reviewer Response

Final approval (post-review)

  • The author has responded to my review and made changes to my satisfaction. I recommend approving this package.

Estimated hours spent reviewing: 1

@emilyriederer
Copy link

@ropensci-review-bot submit review #576 (comment) time 5

@ropensci-review-bot
Copy link
Collaborator

Logged review for zambujo (hours: 5)

@emilyriederer
Copy link

@ropensci-review-bot submit review #576 (comment) time 1.5

@ropensci-review-bot
Copy link
Collaborator

Logged review for msperlin (hours: 1.5)

@emilyriederer
Copy link

emilyriederer commented Apr 11, 2023

Thanks to @zambujo and @msperlin for their thoughtful reviews and @jospueyo for his fast follow-ups! I'm happy to say it looks like we are ready to approve this package 🎉

@jospueyo , I'll submit the "formal approval" now. Please make sure to read the instructions the bot shares carefully! There's a lot of great information in there regarding repo transfer and package promotion.

@emilyriederer
Copy link

@ropensci-review-bot approve CRediTas

@ropensci-review-bot
Copy link
Collaborator

Approved! Thanks @jospueyo for submitting and @zambujo, @msperlin for your 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 will need to enable two-factor authentication for your GitHub account.
    This invitation will expire after one week. If it happens write a comment @ropensci-review-bot invite me to ropensci/<package-name> which will re-send an invitation.
  • After transfer write a comment @ropensci-review-bot finalize transfer of <package-name> where <package-name> is the repo/package name. This will give you admin access back.
  • 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, https://github.com/ropensci/foobar
  • Skim the docs of the pkgdown automatic deployment, in particular if your website needs MathJax.
  • Fix any links in badges for CI and coverage to point to the new repository URL.
  • Increment the package version to reflect the changes you made during review. In NEWS.md, add a heading for the new version and one bullet for each user-facing change, and each developer-facing change that you think is relevant.
  • We're starting to roll out software metadata files to all rOpenSci packages via the Codemeta initiative, see https://docs.ropensci.org/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.
  • You can add this installation method to your package README install.packages("<package-name>", repos = "https://ropensci.r-universe.dev") thanks to R-universe.

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

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.

@ropensci-review-bot
Copy link
Collaborator

I'm sorry human, I don't understand that. You can see what commands I support by typing:

@ropensci-review-bot help

@jospueyo
Copy link
Author

@ropensci-review-bot finalize transfer of CRediTas

@ropensci-review-bot
Copy link
Collaborator

Transfer completed.
The CRediTas team is now owner of the repository and the author has been invited to the team

@jospueyo
Copy link
Author

Approved! Thanks @jospueyo for submitting and @zambujo, @msperlin for your 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 will need to enable two-factor authentication for your GitHub account.
    This invitation will expire after one week. If it happens write a comment @ropensci-review-bot invite me to ropensci/<package-name> which will re-send an invitation.

  • After transfer write a comment @ropensci-review-bot finalize transfer of <package-name> where <package-name> is the repo/package name. This will give you admin access back.

  • 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, https://github.com/ropensci/foobar
  • Skim the docs of the pkgdown automatic deployment, in particular if your website needs MathJax.

  • Fix any links in badges for CI and coverage to point to the new repository URL.

  • Increment the package version to reflect the changes you made during review. In NEWS.md, add a heading for the new version and one bullet for each user-facing change, and each developer-facing change that you think is relevant.

  • We're starting to roll out software metadata files to all rOpenSci packages via the Codemeta initiative, see https://docs.ropensci.org/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.

  • You can add this installation method to your package README install.packages("<package-name>", repos = "https://ropensci.r-universe.dev") thanks to R-universe.

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

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.

I completed all tasks. I will think about the post. Probably in a few weeks. I also volunteered as a reviewer, although I have a lot to learn.

@yabellini
Copy link
Member

Hi, @jospueyo (rOpenSci Community Manager here). If you want to, I can invite you to our Slack workspace. I will need your email. You can send it to yabellini@ropensci.org.

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

8 participants