Skip to content

Repository files navigation

pkgmkr

R-CMD-check pkgdown Lifecycle: experimental r-universe

pkgmkr simplifies the process of creating R packages by providing a single, straightforward function.

It is designed to be user-friendly and to handle various package configurations, including optional Git integration, license selection, and more.

Features

  • Easy-to-use function for package creation
  • Optional Git repository initialization
  • Customizable package metadata
  • License selection (MIT or GPL-3)
  • README and pkgdown site generation
  • Configuration file support (YAML/JSON)
  • Comprehensive input validation and error handling

Installation

Install pkgmkr from r-universe:

install.packages(
  "pkgmkr",
  repos = c(
    "https://sdhutchins.r-universe.dev",
    "https://cloud.r-project.org"
  )
)

Usage

Basic Example

Create a new R package with essential features:

library(pkgmkr)

# Create a simple package
mk_pkg(
  path = "mypackage",
  author = "Jane Doe",
  email = "jane.doe@example.com",
  git = FALSE,
  readme_md = TRUE,
  check_pkg_name = TRUE,
  license = "MIT",
  pkgdown = FALSE
)

Full Example with Git and GitHub

Create a package with Git repository and GitHub integration:

library(pkgmkr)

mk_pkg(
  path = "~/projects/myawesomepackage",
  author = "John Smith",
  email = "john.smith@example.com",
  git = TRUE,
  git_username = "johnsmith",
  git_email = "john.smith@example.com",
  readme_md = TRUE,
  check_pkg_name = TRUE,
  license = "GPL-3",
  pkgdown = TRUE
)

Using a Configuration File

You can also create packages from a YAML or JSON configuration file:

library(pkgmkr)

# Create a configuration file
config <- list(
  pkg_name = "mypackage",
  first_name = "Jane",
  last_name = "Doe",
  email = "jane.doe@example.com",
  readme_md = TRUE,
  git = FALSE,
  check_pkg_name = TRUE,
  license = "MIT",
  pkgdown = FALSE
)

# Write the configuration
write_config("my_package_config.yml", config)

# Create package from configuration
mk_pkg_from_config("my_package_config.yml", file_type = "yaml")

Parameters

  • path: Path where the package will be created (can be just a package name or full path) [required]
  • author: Full name of the package author (e.g., "Jane Doe") [required]
  • email: Email address of the author [optional] - if not provided, DESCRIPTION will not include maintainer email
  • git: Logical; whether to initialize a Git repository (default: TRUE)
  • git_username: Git username for repository configuration
  • git_email: Git email for repository configuration
  • readme_md: Logical; whether to create a README.md file (default: TRUE)
  • check_pkg_name: Logical; whether to check package name availability on CRAN (default: TRUE)
  • license: License type - either "MIT" or "GPL-3" (default: "MIT")
  • pkgdown: Logical; whether to set up and build pkgdown documentation site (default: TRUE)

Input Validation

pkgmkr includes comprehensive input validation to help you avoid common mistakes:

  • Package names must start with a letter and contain only letters, numbers, and dots
  • Email addresses must be properly formatted
  • Author names must include at least a first and last name
  • The package directory must not already exist
  • License must be either "MIT" or "GPL-3"

All validation errors provide clear, helpful messages to guide you in fixing the issue.

Contributing

Contributions are welcome! Please read CONTRIBUTING.md for guidelines on how to contribute to this project.

About

Create an R package with one simple function.

Topics

Resources

Contributing

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages