goodpractice

Advice on R Package Building

https://github.com/ropensci-review-tools/goodpractice

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (18.2%) to scientific vocabulary

Keywords from Contributors

complex-networks graph-algorithms graph-theory mathematics network-analysis network-graph ecology color-palette
Last synced: 10 months ago · JSON representation

Repository

Advice on R Package Building

Basic Info
Statistics
  • Stars: 470
  • Watchers: 14
  • Forks: 35
  • Open Issues: 29
  • Releases: 4
Created over 10 years ago · Last pushed 11 months ago
Metadata Files
Readme Changelog Contributing License Codemeta

README.Rmd

---
output: github_document
---

```{r, setup, include = FALSE}
#, echo = FALSE, message = FALSE}
knitr::opts_chunk$set(
  echo = TRUE,
  comment = "#>",
  tidy = FALSE,
  error = FALSE,
  fig.width = 8,
  fig.height = 8)
```

# goodpractice 

  
  [![R-CMD-check](https://github.com/ropensci-review-tools/goodpractice/workflows/R-CMD-check/badge.svg)](https://github.com/ropensci-review-tools/goodpractice/actions)
  [![CRAN status](https://www.r-pkg.org/badges/version/goodpractice)](https://CRAN.R-project.org/package=goodpractice)
  [![CRAN RStudio mirror downloads](https://cranlogs.r-pkg.org/badges/goodpractice)](https://www.r-pkg.org/pkg/goodpractice)
  [![Codecov test coverage](https://codecov.io/gh/ropensci-review-tools/goodpractice/branch/main/graph/badge.svg)](https://app.codecov.io/gh/ropensci-review-tools/goodpractice?branch=main)
  


## Advice on R Package Building

Give advice about good practices when building R packages. Advice includes
functions and syntax to avoid, package structure, code complexity, code
formatting, etc.

## Installation

You can install the release version from CRAN

```{r eval = FALSE}
install.packages("goodpractice")
```

and the development version from GitHub

```{r eval = FALSE}
pak::pak("ropensci-review-tools/goodpractice")
```

## Usage

```r
library(goodpractice)
gp("")
```

## Example

```{r, message = FALSE, warning = FALSE}
library(goodpractice)
# use example package contained in the goodpractice package
pkg_path <- system.file("bad1", package = "goodpractice")
g <- gp(pkg_path)
g

# show all available checks
# all_checks()

# run only a specific check
g_url <- gp(pkg_path, checks = "description_url")
g_url

# which checks were carried out?
checks(g_url)

# which checks failed?
failed_checks(g)

# show the first 5 checks carried out and their results
results(g)[1:5,]
```

## Contributing

We welcome any and all contributions to this package.
See [CONTRIBUTING.md](https://docs.ropensci.org/goodpractice/CONTRIBUTING.html) for details.

## License

MIT © 2022 Ascent Digital Services UK Limited

## Contributors






All contributions to this project are gratefully acknowledged using the [`allcontributors` package](https://github.com/ropensci/allcontributors) following the [all-contributors](https://allcontributors.org) specification. Contributions of any kind are welcome!

### Code


gaborcsardi

hfrick

mpadge

owenjonesuob

ddbortoli

KarinaMarks

olivroy

dougmet

fabian-s

noamross

MichaelChirico

fkohrt

anasimmons

andrewl776

HAlexander23

jsta

LiNk-NY

nfultz

russHyde

marberts
### Issue Authors

peterhurford

stillmatic

eribul

richelbilderbeek

nathaneastwood

daroczig

mdozmorov

vdicolab

cboettig

barryrowlingson

HenrikBengtsson

kbenoit

njtierney

maelle

erleholgersen

adfi

maurolepore

jasonserviss

jackwasey

dragosmg

Bisaloo

bfgray3

wlandau

florianm

wibeasley

dpprdan

kwstat

HenningLorenzen-ext-bayer
### Issue Contributors

drisso

HarryJAlexander

gmbecker

daattali

joelnitta

lgallindo

annakrystalli

sda030

mccroweyclinton-EPA

Owner

  • Name: ropensci-review-tools
  • Login: ropensci-review-tools
  • Kind: organization

Tools for automation of software review at rOpenSci

CodeMeta (codemeta.json)

{
  "@context": "https://doi.org/10.5063/schema/codemeta-2.0",
  "@type": "SoftwareSourceCode",
  "identifier": "goodpractice",
  "description": "Give advice about good practices when building R packages. Advice includes functions and syntax to avoid, package structure, code complexity, code formatting, etc.",
  "name": "goodpractice: Advice on R Package Building",
  "relatedLink": [
    "https://docs.ropensci.org/goodpractice/",
    "https://CRAN.R-project.org/package=goodpractice"
  ],
  "codeRepository": "https://github.com/ropensci-review-tools/goodpractice",
  "issueTracker": "https://github.com/ropensci-review-tools/goodpractice/issues",
  "license": "https://spdx.org/licenses/MIT",
  "version": "1.0.5.9000",
  "programmingLanguage": {
    "@type": "ComputerLanguage",
    "name": "R",
    "url": "https://r-project.org"
  },
  "runtimePlatform": "R version 4.4.1 (2024-06-14)",
  "provider": {
    "@id": "https://cran.r-project.org",
    "@type": "Organization",
    "name": "Comprehensive R Archive Network (CRAN)",
    "url": "https://cran.r-project.org"
  },
  "author": [
    {
      "@type": "Person",
      "givenName": "Mark",
      "familyName": "Padgham",
      "email": "mark@ropensci.org",
      "@id": "https://orcid.org/0000-0003-2172-5265"
    },
    {
      "@type": "Person",
      "givenName": "Karina",
      "familyName": "Marks",
      "email": "karina.marks@ascent.io"
    },
    {
      "@type": "Person",
      "givenName": "Daniel",
      "familyName": "de Bortoli"
    },
    {
      "@type": "Person",
      "givenName": "Gabor",
      "familyName": "Csardi",
      "email": "csardi.gabor@gmail.com"
    },
    {
      "@type": "Person",
      "givenName": "Hannah",
      "familyName": "Frick",
      "email": "hannah.frick@gmail.com"
    },
    {
      "@type": "Person",
      "givenName": "Owen",
      "familyName": "Jones",
      "email": "owenjonesuob@gmail.com"
    },
    {
      "@type": "Person",
      "givenName": "Hannah",
      "familyName": "Alexander",
      "email": "halexander@mango-solutions.com"
    }
  ],
  "contributor": [
    {
      "@type": "Person",
      "givenName": "Ana",
      "familyName": "Simmons",
      "email": "ana.simmons@ascent.io"
    },
    {
      "@type": "Person",
      "givenName": "Fabian",
      "familyName": "Scheipl"
    }
  ],
  "copyrightHolder": [
    {
      "@type": "Organization",
      "name": "Ascent Digital Services UK Limited"
    }
  ],
  "maintainer": [
    {
      "@type": "Person",
      "givenName": "Mark",
      "familyName": "Padgham",
      "email": "mark@ropensci.org",
      "@id": "https://orcid.org/0000-0003-2172-5265"
    }
  ],
  "softwareSuggestions": [
    {
      "@type": "SoftwareApplication",
      "identifier": "knitr",
      "name": "knitr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=knitr"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "rmarkdown",
      "name": "rmarkdown",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rmarkdown"
    },
    {
      "@type": "SoftwareApplication",
      "identifier": "testthat",
      "name": "testthat",
      "version": ">= 3.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=testthat"
    }
  ],
  "softwareRequirements": {
    "1": {
      "@type": "SoftwareApplication",
      "identifier": "cli",
      "name": "cli",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=cli"
    },
    "2": {
      "@type": "SoftwareApplication",
      "identifier": "covr",
      "name": "covr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=covr"
    },
    "3": {
      "@type": "SoftwareApplication",
      "identifier": "cyclocomp",
      "name": "cyclocomp",
      "version": ">= 1.1.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=cyclocomp"
    },
    "4": {
      "@type": "SoftwareApplication",
      "identifier": "desc",
      "name": "desc",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=desc"
    },
    "5": {
      "@type": "SoftwareApplication",
      "identifier": "jsonlite",
      "name": "jsonlite",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=jsonlite"
    },
    "6": {
      "@type": "SoftwareApplication",
      "identifier": "lintr",
      "name": "lintr",
      "version": ">= 3.0.0",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=lintr"
    },
    "7": {
      "@type": "SoftwareApplication",
      "identifier": "praise",
      "name": "praise",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=praise"
    },
    "8": {
      "@type": "SoftwareApplication",
      "identifier": "rcmdcheck",
      "name": "rcmdcheck",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rcmdcheck"
    },
    "9": {
      "@type": "SoftwareApplication",
      "identifier": "rstudioapi",
      "name": "rstudioapi",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=rstudioapi"
    },
    "10": {
      "@type": "SoftwareApplication",
      "identifier": "tools",
      "name": "tools"
    },
    "11": {
      "@type": "SoftwareApplication",
      "identifier": "utils",
      "name": "utils"
    },
    "12": {
      "@type": "SoftwareApplication",
      "identifier": "whoami",
      "name": "whoami",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=whoami"
    },
    "13": {
      "@type": "SoftwareApplication",
      "identifier": "withr",
      "name": "withr",
      "provider": {
        "@id": "https://cran.r-project.org",
        "@type": "Organization",
        "name": "Comprehensive R Archive Network (CRAN)",
        "url": "https://cran.r-project.org"
      },
      "sameAs": "https://CRAN.R-project.org/package=withr"
    },
    "SystemRequirements": null
  },
  "fileSize": "151.202KB",
  "releaseNotes": "https://github.com/ropensci-review-tools/goodpractice/blob/master/NEWS.md",
  "readme": "https://github.com/ropensci-review-tools/goodpractice/blob/main/README.md",
  "contIntegration": [
    "https://github.com/ropensci-review-tools/goodpractice/actions",
    "https://app.codecov.io/gh/ropensci-review-tools/goodpractice?branch=main"
  ]
}

GitHub Events

Total
  • Issues event: 19
  • Watch event: 7
  • Delete event: 1
  • Issue comment event: 30
  • Push event: 11
  • Pull request review comment event: 9
  • Pull request event: 6
  • Pull request review event: 12
  • Fork event: 1
  • Create event: 3
Last Year
  • Issues event: 19
  • Watch event: 7
  • Delete event: 1
  • Issue comment event: 30
  • Push event: 11
  • Pull request review comment event: 9
  • Pull request event: 6
  • Pull request review event: 12
  • Fork event: 1
  • Create event: 3

Committers

Last synced: almost 2 years ago

All Time
  • Total Commits: 244
  • Total Committers: 24
  • Avg Commits per committer: 10.167
  • Development Distribution Score (DDS): 0.639
Past Year
  • Commits: 31
  • Committers: 4
  • Avg Commits per committer: 7.75
  • Development Distribution Score (DDS): 0.323
Top Committers
Name Email Commits
Gábor Csárdi c****r@g****m 88
Hannah Frick h****k@m****m 51
Owen Jones o****s@m****m 23
mpadge m****m@e****m 21
owenjonesuob j****4@g****m 12
Daniel de Bortoli d****i@g****m 11
olivroy o****1@h****m 5
Fabian Scheipl f****l@g****m 4
Hannah Frick h****h@r****m 4
KarinaMarks k****a@h****m 4
Daniel de Bortoli d****i@m****m 3
Karina Marks k****s@a****o 3
Noam Ross n****s@g****m 3
Florian Kohrt f****t@a****o 2
Ana Simmons a****s@a****o 1
Ana Simmons a****s@a****o 1
Andrew Little a****e@m****m 1
Hannah Alexander h****r@m****m 1
olivroy 5****y 1
Marcel Ramos L****Y 1
Joseph Stachelek j****a 1
Douglas Ashton d****n@g****m 1
Neal Fultz n****z@g****m 1
Russell Hyde r****e@h****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 55
  • Total pull requests: 33
  • Average time to close issues: about 2 years
  • Average time to close pull requests: about 2 months
  • Total issue authors: 24
  • Total pull request authors: 10
  • Average comments per issue: 2.05
  • Average comments per pull request: 1.18
  • Merged pull requests: 32
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 10
  • Pull requests: 11
  • Average time to close issues: 2 months
  • Average time to close pull requests: 8 days
  • Issue authors: 5
  • Pull request authors: 4
  • Average comments per issue: 1.2
  • Average comments per pull request: 1.36
  • Merged pull requests: 11
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • gaborcsardi (22)
  • richelbilderbeek (5)
  • maelle (5)
  • hfrick (4)
  • MichaelChirico (4)
  • mpadge (3)
  • LiNk-NY (3)
  • noamross (3)
  • eribul (2)
  • njtierney (2)
  • katrinleinweber (2)
  • cboettig (1)
  • kwstat (1)
  • kamapu (1)
  • mdozmorov (1)
Pull Request Authors
  • mpadge (15)
  • hfrick (14)
  • MichaelChirico (4)
  • noamross (3)
  • olivroy (3)
  • LiNk-NY (1)
  • maelle (1)
  • marberts (1)
  • nfultz (1)
  • jsta (1)
  • dougmet (1)
Top Labels
Issue Labels
enhancement (16) bug (3) winning-feature (2)
Pull Request Labels