# tidyverse/tidyverse architecture

> Architecture diagram of the GitHub repository tidyverse/tidyverse, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-09). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/tidyverse/tidyverse
- Repository: https://github.com/tidyverse/tidyverse

## Overview

tidyverse is a small R package that provides a convenient entry point to the core tidyverse: a user loads the package, which attaches the core packages and reports masking conflicts. Users can also inspect conflicts after loading other packages and check for outdated packages. The README documents these behaviors, but no source excerpts were provided, so the edges below cite the README rather than asserting implementation details beyond those documented. The README also describes additional packages installed with tidyverse; their installation mechanics are not shown.

Main entry points: [`R/attach.R`](https://github.com/tidyverse/tidyverse/blob/main/R/attach.R) (Attach tidyverse), [`R/conflicts.R`](https://github.com/tidyverse/tidyverse/blob/main/R/conflicts.R) (Conflict report), [`R/update.R`](https://github.com/tidyverse/tidyverse/blob/main/R/update.R) (Update check)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Package entry"]
  node_attach["Attach tidyverse<br/>[attach.R]"]
  node_core["Core packages"]
  node_additional["Additional packages"]
end

subgraph group_diagnostics["Package diagnostics"]
  node_conflicts["Conflict report<br/>[conflicts.R]"]
  node_update["Update check<br/>[update.R]"]
end

node_user(("R user"))

node_user -->|"loads"| node_attach
node_attach -->|"attaches"| node_core
node_attach -->|"reports conflicts"| node_conflicts
node_user -->|"checks conflicts"| node_conflicts
node_user -->|"checks updates"| node_update
node_user -->|"installs with package"| node_additional

click node_attach "https://github.com/tidyverse/tidyverse/blob/main/R/attach.R"
click node_conflicts "https://github.com/tidyverse/tidyverse/blob/main/R/conflicts.R"
click node_update "https://github.com/tidyverse/tidyverse/blob/main/R/update.R"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_attach,node_core,node_additional,node_user toneBlue
class node_conflicts,node_update toneAmber
```

## Components

### Package entry

- [Attach tidyverse](https://github.com/tidyverse/tidyverse/blob/main/R/attach.R): `R/attach.R`
- **Core packages**
- **Additional packages**

### Package diagnostics

- [Conflict report](https://github.com/tidyverse/tidyverse/blob/main/R/conflicts.R): `R/conflicts.R`
- [Update check](https://github.com/tidyverse/tidyverse/blob/main/R/update.R): `R/update.R`

### Other components

- **R user**

## Connections

- R user → Attach tidyverse: loads (evidence: `README.md`)
- Attach tidyverse → Core packages: attaches (evidence: `README.md`)
- Attach tidyverse → Conflict report: reports conflicts (evidence: `README.md`)
- R user → Conflict report: checks conflicts (evidence: `README.md`)
- R user → Update check: checks updates (evidence: `README.md`)
- R user → Additional packages: installs with package (evidence: `README.md`)
