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

dwctaxon: Tools for Working with Darwin Core Taxon Data #574

Closed
13 of 29 tasks
joelnitta opened this issue Feb 16, 2023 · 43 comments
Closed
13 of 29 tasks

dwctaxon: Tools for Working with Darwin Core Taxon Data #574

joelnitta opened this issue Feb 16, 2023 · 43 comments
Assignees

Comments

@joelnitta
Copy link

joelnitta commented Feb 16, 2023

Date accepted: 2023-05-22
Submitting Author Name: Joel H. Nitta
Submitting Author Github Handle: @joelnitta
Repository: https://github.com/joelnitta/dwctaxon
Version submitted: 1.0.0.9000
Submission type: Standard
Editor: @noamross
Reviewers: @collinschwantes, @sformel-usgs

Archive: TBD
Version accepted: TBD
Language: en

  • Paste the full DESCRIPTION file inside a code block below:
Package: dwctaxon
Title: Tools for Working with Darwin Core Taxon Data
Version: 1.0.0.9000
Authors@R: 
    c(
      person(given = "Joel H.",
           family = "Nitta",
           role = c("aut", "cre"),
           email = "joelnitta@gmail.com",
           comment = c(ORCID = "0000-0003-4719-7472")),
      person(given = "Wataru",
           family = "Iwasaki",
           role = c("ctb"),
           comment = c(ORCID = "0000-0002-9169-9245"))
    )
Description: Provides functions to create, manipulate, and validate taxonomic 
    data in compliance with Darwin Core standards 
    (Darwin Core "Taxon" class https://dwc.tdwg.org/terms/#taxon).
License: MIT + file LICENSE
Encoding: UTF-8
LazyData: true
Roxygen: list(
    markdown = TRUE,
    roclets = c("collate", "namespace", "rd", "roxyglobals::global_roclet"))
RoxygenNote: 7.2.1
Imports: 
    assertr,
    assertthat,
    digest,
    dplyr,
    glue,
    purrr,
    rlang,
    settings,
    stringr,
    tibble,
    utils
Suggests: 
    testthat (>= 3.0.0),
    roxyglobals (>= 0.2.1),
    mockery,
    readr,
    usethis,
    knitr,
    rmarkdown,
    tidyverse,
    patrick,
    stringi
Remotes: 
    anthonynorth/roxyglobals
Depends: 
    R (>= 2.10)
Config/testthat/edition: 3
URL: https://joelnitta.github.io/dwctaxon/,
    https://github.com/joelnitta/dwctaxon
BugReports: https://github.com/joelnitta/dwctaxon/issues
VignetteBuilder: knitr

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

dwctaxon facilitates manipulating and validating taxonomic data (of biological species) in R, in compliance with the widely used Darwin Core data standard.

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

Biologists, anybody working with taxonomic data in Darwin Core format.

Not currently, to the best of my knowledge. The closest thing out there is the GBIF data validator (not an R package). The archived finch package had a function to call the GBIF data validator.

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.

No pre-submission inquiry

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

pkgcheck passes when I run it locally. I have observed an error in the CI, but I believe this is a problem with pkgcheck, and unrelated to my package.

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 dwctaxon (v1.0.0.9000)

git hash: db71df7b

  • ✔️ 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 96.8%.
  • ✔️ R CMD check found no errors.
  • ✔️ R CMD check found no warnings.

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 83
internal dwctaxon 28
internal graphics 1
internal stats 1
imports glue 48
imports settings 23
imports dplyr 9
imports stringr 6
imports utils 5
imports purrr 4
imports tibble 2
imports assertr 1
imports assertthat NA
imports digest NA
imports rlang NA
suggests testthat NA
suggests roxyglobals NA
suggests mockery NA
suggests readr NA
suggests usethis NA
suggests knitr NA
suggests rmarkdown NA
suggests tidyverse NA
suggests patrick NA
suggests stringi 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

list (12), is.na (9), paste (9), c (6), do.call (5), grepl (5), as.character (4), col (3), colnames (3), inherits (3), nrow (3), class (2), match (2), Sys.time (2), by (1), duplicated (1), for (1), formals (1), gsub (1), if (1), ifelse (1), is.null (1), isTRUE (1), lapply (1), seq_len (1), setdiff (1), strsplit (1), tryCatch (1), warning (1)

glue

glue (46), glue_collapse (1), identity_transformer (1)

dwctaxon

null_transformer (8), assert_that_d (2), any_not_true (1), assert_col (1), assert_dat (1), assert_that_uses_one_name (1), bind_rows_f (1), check_acc_id_has_tax_status (1), check_acc_id_valid_tax_status (1), check_accepted_map_to_nothing (1), check_col_names_p (1), check_fill_usage_id_name (1), check_mapping_exists (1), check_mapping_strict_status (1), check_mapping_to_self (1), check_sci_name_is_uniq (1), check_sci_name_not_na (1), dct_modify_row (1), dct_options (1), paste3 (1)

settings

inlist (22), options_manager (1)

dplyr

mutate (4), filter (3), anti_join (1), bind_rows (1)

stringr

fixed (4), str_detect (1), str_match (1)

utils

data (4), capture.output (1)

purrr

map_lgl (4)

tibble

tibble (2)

assertr

success_logical (1)

graphics

text (1)

stats

df (1)

NOTE: Some imported packages appear to have no 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 17 files) and
  • 1 authors
  • 3 vignettes
  • 2 internal data files
  • 11 imported packages
  • 9 exported functions (median 29 lines of code)
  • 106 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 17 76.7
files_vignettes 3 92.4
files_tests 14 93.8
loc_R 2343 86.9
loc_vignettes 324 66.2
loc_tests 2584 95.6 TRUE
num_vignettes 3 94.2
data_size_total 28214 76.8
data_size_median 14107 81.1
n_fns_r 115 79.7
n_fns_r_exported 9 42.0
n_fns_r_not_exported 106 84.9
n_fns_per_file_r 5 67.9
num_params_per_fn 5 69.6
loc_per_fn_r 12 36.1
loc_per_fn_r_exp 29 61.6
loc_per_fn_r_not_exp 11 35.4
rel_whitespace_R 7 65.5
rel_whitespace_vignettes 43 75.5
rel_whitespace_tests 4 74.5
doclines_per_fn_exp 65 76.5
doclines_per_fn_not_exp 0 0.0 TRUE
fn_call_network_size 213 89.2

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

pkgcheck

GitHub Workflow Results

id name conclusion sha run_number date
4191806772 pages build and deployment success 9e0773 35 2023-02-16
4191789240 pkgcheck NA db71df 7 2023-02-16
4191789239 pkgdown success db71df 51 2023-02-16
4191789237 test-coverage success db71df 26 2023-02-16

3b. goodpractice results

R CMD check with rcmdcheck

R CMD check generated the following check_fail:

  1. cyclocomp

Test coverage with covr

Package coverage: 96.81

Cyclocomplexity with cyclocomp

The following functions have cyclocomplexity >= 15:

function cyclocomplexity
dct_modify_row_single 103
dct_add_row 32
dct_opts 19
check_acc_id_has_tax_status 18
check_acc_id_valid_tax_status 18
check_accepted_map_to_nothing 18
check_syn_map_to_acc 18
check_variant_map_to_nonvar 18
check_variant_map_to_something 18
check_mapping_exists 17
check_mapping_to_self 17
dct_validate 17

Static code analyses with lintr

lintr found the following 10 potential issues:

message number of times
Avoid library() and require() calls in packages 10


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

@joelnitta thanks a lot for your submision!
The checks are looking great. I'll check fit and overlap and come back to you asap.

@maurolepore
Copy link
Member

@joelnitta thanks a lot for your patience.

I discussed with other editors and think this submission is in scope. I'll start looking for a handling editor.

@joelnitta
Copy link
Author

Great, thanks @maurolepore!

@maurolepore
Copy link
Member

@ropensci-review-bot assign @noamross as editor

@ropensci-review-bot
Copy link
Collaborator

Assigned! @noamross is now the editor

@noamross
Copy link
Contributor

@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/574_status.svg)](https://github.com/ropensci/software-review/issues/574)

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

@noamross
Copy link
Contributor

noamross commented Mar 1, 2023

@ropensci-review-bot assign @collinschwantes as reviewer

@ropensci-review-bot
Copy link
Collaborator

@collinschwantes added to the reviewers list. Review due date is 2023-03-22. Thanks @collinschwantes for accepting to review! Please refer to our reviewer guide.

rOpenSci’s community is our best asset. We aim for reviews to be open, non-adversarial, and focused on improving software quality. Be respectful and kind! See our reviewers guide and code of conduct for more.

@ropensci-review-bot
Copy link
Collaborator

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

@noamross
Copy link
Contributor

noamross commented Mar 1, 2023

Thanks @collinschwantes! Please be sure to look at the diagnostic report above. I note a few instances of packages imported for very few functions (assertr), high-cyclocomplexity functions that may benefit from breaking up, and some other goodpractice notes that should be examined as part of your review.

@ropensci-review-bot
Copy link
Collaborator

📆 @collinschwantes you have 2 days left before the due date for your review (2023-03-22).

@noamross

This comment was marked as resolved.

@ropensci-review-bot

This comment was marked as resolved.

@ropensci-review-bot

This comment was marked as resolved.

@noamross

This comment was marked as resolved.

@ropensci-review-bot

This comment was marked as resolved.

@noamross
Copy link
Contributor

@ropensci-review-bot submit review #574 (comment) time 8

@ropensci-review-bot
Copy link
Collaborator

Logged review for collinschwantes (hours: 8)

@noamross
Copy link
Contributor

@ropensci-review-bot submit review #574 (comment) time 8

@ropensci-review-bot
Copy link
Collaborator

Logged review for sformel-usgs (hours: 8)

@ropensci-review-bot
Copy link
Collaborator

@joelnitta: please post your response with @ropensci-review-bot submit response <url to issue comment> if you haven't done so already (this is an automatic reminder).

Here's the author guide for response. https://devguide.ropensci.org/authors-guide.html

@joelnitta
Copy link
Author

@ropensci-review-bot submit response ropensci/dwctaxon@82aa4ea

Thanks again to the reviewers for their helpful comments! Here are my responses.

Responses to @sformel-usgs

Review Comments

I found this package to be thoughtfully written and documented. Code appears to have been carefully constructed and functions well. However, I do have a few high level concerns:

  1. TL;DR More context and example should be added to the statement of need.
  1. I’m not sure why these functions shouldn’t be included as part of the taxastand package (or vice versa)? Again, the video referenced above give some sense of why these tasks would be separated, but I think a little more description of how they relate could be useful. I’m not totally convinced that the modification/validation of taxonomic data (dwctaxon) should be separated from the standardization of species names from different sources (taxastand) as these tasks seem to have a lot of overlap.
  • Usage of dwctaxon is not limited to standardization of species names, as described in the revised Statement of Need and demonstrated in the newly added "Real World Data" vignette. Furthermore, different packages / software are available to do name standardization (e.g., U.Taxonstand in addition to taxastand). So in the case of name standardization, I think it makes more since to provide dwctaxon as a separate tool that can be used to prepare the reference database, then the user could standardize names against the reference using the tool of their choice.

Documentation

  1. Throughout the documentation, but most noticeably in the vignette ‘What is DWC?’ vignette, Darwin Core is abbreviated ‘DWC’. Generally speaking, I see/use ‘DwC’, and that is what is described on the Wikipedia page since 2011. Not critical, but I would be curious to hear whether the author has a strong opinion on the appropriate abbreviation. If not, I would prefer DwC.
  1. In the ‘What is DWC?’ vignette, line 64 describes genus, family and order as “higher taxonomic levels”. I understand these to be “lower levels”, which seems consistent with the comment in the DwC taxonomic term higherClassification.
  1. Line 64 of the editing vignette references ‘hash’ generically. I think it would be worth specifying that it is using MD5.
  1. utils.R credits the paste3 function to a stackoverflow conversation. I’m not sure of the best way to give credit in this situation, but it seems like it would also be good to include the user [“IRTFM”] and userID [“1855677”], since it is a function that is clearly written by one person.

Logical programming API

  1. Yes, however see suggestions below.

  2. In the function, dct_add_row, I’m curious about the decision to only use the first 8 characters from the hash as the taxonID. As you note, this may result in duplicates, why not preserve the entire hash as taxonID?

  1. I disagree with the use/creation of aliases as described in lines 72-89 of the editing vignette. This promotes confusion about the name of the DwC standard term. Especially in this case where the term is a function parameter and users can use tab to autocomplete, rather than typing out the names. I think this aspect of the package should be revised, and the vignette can point out tab autocomplete as a way to avoid typing out the rather long names of DwC.

automated tool review

Checking the initial package report generated by our @ropensci-review-bot.

  1. As noted in the goodpractice checks, dct_modify_row and dct_add_row have high-cyclocomplexity. I don’t have any great suggestions for ways to break it up. But, if my suggestion, that aliases for DwC terms should be avoided, is accepted, then some of the checks for misuse of aliases could be removed.
  • dct_modify_row_single() previously had the highest cyclocomplexity (103). Numerous subfunctions have been split out from dct_modify_row_single(), and there are no longer any if() statements in the main function, greatly decreasing cyclocomplexity to 14 (ropensci/dwctaxon@315bd19). Unfortunately one of the subfunctions, create_new_row_by_modification() still contains a large number of if() statements and has high cyclocomplexity (56), but this is a significant improvement from 103. I would like to avoid further breaking up create_new_row_by_modification() because it has a well-defined purpose (creating a single row), and it is easier to understand the conditional relationships when they are all at the same level and immediately visible.
  1. The library and require calls described by lintr in goodpractices are acceptable. They all appear to be associated with vignettes, tests, or documentation of raw data creation.

  2. It appears that the assertr package is imported for a single function in utilties.R. I don’t know of a simple way to replace this function and reduce the dependency.

  • Thanks for catching this. That function is no longer needed and has been removed, along with the dependency on assertr (ropensci/dwctaxon@b60ddd8).

Responses to @collinschwantes

Review Comments

Overall easy to use and well documented. I really enjoyed testing this package. That being said, the statement of need could more clearly define who the target audience is. Is it biologist who are not necessarily taxonomists, taxonomists, collections managers?

  • The target audience is anybody who needs to maintain DwC taxonomic data and uses R. The Statement of Need has been clarified and use-cases added (ropensci/dwctaxon@c866731).

I tested the package using data from a project I worked on back in 2014. Once I had the taxa data in the proper form, all functions worked as expected. I did notice that certain functions create missing columns or provide errors for non-dct terms. Its not always obvious which functions will generate new columns, and which wont. See dct_fill_col vs dct_add_row

  • Documentation has been added to clarify when new columns are added (ropensci/dwctaxon@9cb465e). Non-dct terms are never added as new columns.
  • I would prefer that functions use DCW terms instead of abbreviations.
    I didn't find the terms saved me that much time from a typing perspective
    and I had to remember the abbreviation plus the actual term. Not a lot of mental effort
    but non-zero.
  • Since there is an "add_row" function, it may be worth including a drop_row?
  • dct_fill_col does not throw an error if the fill_from argument is a non-existent column that is a dct_term.
  • One error for failing test when running devtools::check. dct_add_row throws an error.
  • It is not clear to me what error this was, but in its current state devtools::check() passes locally and on CI builds.
  • dct_modify_row_single has a lot of if statements that are nicely labelled in the function. Consider whether or not each of those sections of the function could be split into its own, smaller, easier to evaluate function.
  • Thanks for the suggestion. Several sections of dct_modify_row_single() have been split into subfunctions (ropensci/dwctaxon@315bd19).
  • You could also take advantage of rlang::empty to test if something is NA or
    NULL.
  • I have been able to clean up this code by moving the call to is.null() as one of the conditionals checked with assert_that() instead of running assert_that() conditional on the result of is.null() (ropensci/dwctaxon@712d07e).
  • The dependency section in the packaging guidelines recommends using minimum version numbers
    for the package dependencies
  • The packaging guidelines only recommend using minimum version numbers if there is a known minimum version that would otherwise cause the package to break. I am not aware of any, so I did not include them.
  • Would be great (though potentially out of scope for the package) to have a
    vignette that shows how to retrieve taxon data and/or what
    you can do with taxon data once you have it properly formatted in Darwin core.

@sformel-usgs
Copy link

Thanks @joelnitta , these are all satisfactory responses and revisions. I appreciate the changes you've made to the Statement of Need and the References in the readme. The Real World vignette was also a great addition for folks who might be starting out in this realm.

I rechecked the package and only came across one minor issue. On my Windows computer, the real-world data vignette fails to build because the download.file call results in a corrupt zip file. A solution is to add mode = "wb". But you should double check this, because I'm not 100% that it won't cause problems for non-Windows machines. This is something new that just started occurring for me (non-text files becoming corrupt). I'm not sure what changed, but apparently, it's not unusual.

@sformel-usgs
Copy link

Thanks for handling that so quickly! Everything is working smoothly now. I have no more suggestions or concerns.

@noamross
Copy link
Contributor

Thank your for the robust reply @joelnitta and your follow-up, @sformel-usgs. @collinschwantes, please look at the changes to the package and indicate if they address your review.

@collinschwantes
Copy link

@joelnitta Looks great!! The real world example is very helpful! No more suggestions or concerns.

@noamross
Copy link
Contributor

@ropensci-review-bot approve dwctaxon

@ropensci-review-bot
Copy link
Collaborator

Approved! Thanks @joelnitta for submitting and @collinschwantes, @sformel-usgs 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.

@joelnitta
Copy link
Author

@ropensci-review-bot finalize transfer of dwctaxon

@ropensci-review-bot
Copy link
Collaborator

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

@joelnitta
Copy link
Author

Thanks again to reviewers @sformel-usgs and @collinschwantes and editor @noamross !

I have completed all of the tasks above:

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

I'm happy this package now has a home at rOpenSci!

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

6 participants