Coder Social home page Coder Social logo

psotob91 / awesome-r-pkgtools Goto Github PK

View Code? Open in Web Editor NEW

This project forked from indrajeetpatil/awesome-r-pkgtools

0.0 0.0 0.0 956 KB

A curated list of awesome resources for R package development

Home Page: https://indrajeetpatil.github.io/awesome-r-pkgtools/

License: MIT License

HTML 99.61% R 0.39%

awesome-r-pkgtools's Introduction

Awesome R package development Awesome Track Awesome List

A curated list of awesome tools to assist R ๐Ÿ“ฆ development.

Note before:

  • Not all tools are available on CRAN; some might be available only via GitHub or GitLab.
  • Only tools helpful for package development are included, and not other resources (like books, talks, presentations, etc.).

Contributing

If you wish to suggest any additional tools, please make a PR request or raise an issue here.

Please note that the awesome-r-pkgtools project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.


โš ๏ธโš ๏ธ Note Before โš ๏ธโš ๏ธ

If you are not using the latest release of pandoc, please change only the README.Rmd document.


Swiss army knives ๐Ÿ› 

Tools useful across all stages of package development (some of these are meta-packages and their component packages are also included in respective sections for the sake of completeness).

Package skeletons ๐Ÿ’€

Naming things ๐Ÿงธ

  • {available} (to check if a package name is available to use)

  • {collidr} (to check for namespace collisions)

  • {changer} (to change the name of an existing R package)

Working with package components

  • {rprojroot} (accessing files w.r.t. package root directory)

  • {desc} (manipulating DESCRIPTION files)

  • {withr} (to manage package side effects by safely and temporarily modifying global states)

  • {pkgload} (to simulate the process of installing and loading a package)

  • {pkgbuild} (to find tools needed to build packages)

Package management tools

  • {pkgcache} (to cache โ€˜CRANโ€™-like metadata and packages)

Documentation ๐Ÿ“š

Manual

  • {roxygen2}

  • {Rd2roxygen} (in case you inherit a project where documentation was not written using {roxygen2})

  • {sinew} (generate {roxygen2} skeletons)

  • {roclang} (helpers for diffusing content across function documentation)

  • {Rdpack} (for inserting references, figures, and evaluated examples in Rd docs)

  • {roxygen2md} (using Markdown syntax in package documentation)

  • {rd2list} (converts Rd docs to a human-readable list)

  • roxygen2Comment (Rstudio addin for adding and remove {roxygen2} comment)

Math in manual

Vignettes

Website

Translation

  • {potools} (for translating messages and checking the โ€œhealthโ€ of the messaging corpus)

Lifecycle

  • {lifecycle} (to manage the life cycle of exported functions)

Badges and stickers

Presentation

Book

News

Documentation quality โœ’๏ธ

Package change tracking and versioning

Unit testing ๐Ÿงช

Code analysis ๐Ÿ—‚โฑ

General

Code coverage

  • {covr} (computes code coverage)

  • {covrpage} (provides summary README of code coverage and corresponding tests)

Lint detection

Code complexity

Code similarity

Benchmarking and profiling

Lines of code

Formatting ๐Ÿงฝ

R code

Markdown documents

Dependencies โš–๏ธ

CRAN checks, submission, and status ๐Ÿ“ฌ

Usage ๐Ÿ™ˆ

CI/CD ๐Ÿ“Ÿ

CI/CD: continuous integration and either continuous delivery or continuous deployment

Security/Privacy ๐Ÿ‘ฎ

Build systems

  • {fakemake} (to mock Unix Make build system in case it is unavailable)

Validation frameworks

  • {valtools} (in clinical research and drug development)

Debugging ๐Ÿ”ญ

Input validation ๐Ÿ”ฌ

Package metadata ๐Ÿ–จ

Reverse dependency checks ๐Ÿ“กโšฐ๏ธ

Docker container ๐Ÿ›

Gratitude ๐Ÿ™๐Ÿ’Œ

To thank the contributors or maintainers of packages you rely on.

Integration with other languages ๐Ÿ”—

C++

Python

Rust

.NET Framework

JavaScript/HTML/CSS

Julia

Sundry ๐Ÿ—’

  • {TODOr} (RStudio addin to list things that you need to do or change)

  • {prefixer} (prefix function with their namespace )

  • {gitignore} (to fetch gitignore templates)

  • {touchstone} (benchmarking pull requests)

  • {precommit} (pre-commit hooks)

  • {DIZutils} (helpers for packages dealing with database connections)

awesome-r-pkgtools's People

Contributors

indrajeetpatil avatar dpprdan avatar etiennebacher avatar johncoene avatar vincentguyader avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.