Skip to contents

Check 🛠 Docs 📚 Code Coverage 📔 GitHub commit activityGitHub contributorsGitHub last commitGitHub pull requestsGitHub repo sizeProject Status: Active – The project has reached a stable, usable state and is being actively developed. Current Version Open Issues GitHub forksGitHub repo stars

Overview

The envsetup package helps you manage R project environments by providing a flexible configuration system that adapts to different deployment stages (development, testing, production) without requiring code changes.

Why Use envsetup?

When working on R projects, you often need to:

  • Point to different data sources across environments

  • Use different output directories

  • Load environment-specific functions

  • Maintain consistent code across environments like dev, qa, and prod

Instead of hardcoding paths or manually changing configurations, envsetup uses YAML configuration files to manage these differences automatically.

Basic Concepts

The envsetup package works with two main components:

  1. PATHS: Manages file system locations (data, output, programs)
  2. AUTOS: Automatically sources R scripts from specified directories

Your First Configuration

Here’s the simplest possible _envsetup.yml configuration:

default:
  paths:
    data: "/path/to/your/data"
    output: "/path/to/your/output"

Quick Start Example

library(envsetup)

# Load your configuration
envsetup_config <- config::get(file = "_envsetup.yml")

# Apply the configuration
rprofile(envsetup_config)

# Now you can use the configured paths
print(data)    # Points to your data directory
print(output)  # Points to your output directory

Installation

Development version

# install.packages("devtools")
devtools::install_github("pharmaverse/envsetup")

What’s Next?

In the following guides, you’ll learn:

  • How to set up basic path configurations

  • Managing multiple environments

  • Advanced path resolution

  • Automatic script sourcing

  • Real-world examples and best practices

Let’s start with basic path configuration in the next section.