The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

Title: R Repository Data
Version: 0.1.4
Description: Retrieve metadata about packages from repositories to explore package dependencies, links between help pages, aliases, package availability on a given date, and other repository dependent outcome. This metadata can be used to help package maintainers and users to navigate changes on dependencies and with reproducibility.
License: GPL (≥ 3)
URL: https://github.com/llrs/repo.data, https://llrs.github.io/repo.data/
BugReports: https://github.com/llrs/repo.data/issues
Depends: R (≥ 4.5)
Imports: methods, tools, utils
Suggests: igraph (≥ 2.1), knitr (≥ 1.49), markdown (≥ 1.13), rversions (≥ 2.1), spelling (≥ 2.3)
VignetteBuilder: knitr
Encoding: UTF-8
Language: en-US
LazyData: true
RoxygenNote: 7.3.2
NeedsCompilation: no
Packaged: 2025-09-09 22:54:37 UTC; lluis
Author: Lluís Revilla Sancho ORCID iD [aut, cre, cph]
Maintainer: Lluís Revilla Sancho <lluis.revilla@gmail.com>
Repository: CRAN
Date/Publication: 2025-09-15 07:20:02 UTC

repo.data: R Repository Data

Description

Retrieve metadata about packages from repositories to explore package dependencies, links between help pages, aliases, package availability on a given date, and other repository dependent outcome. This metadata can be used to help package maintainers and users to navigate changes on dependencies and with reproducibility.

Author(s)

Maintainer: Lluís Revilla Sancho lluis.revilla@gmail.com (ORCID) [copyright holder]

See Also

Useful links:


Create a matrix of alias

Description

Joins the matrices of each file

Usage

alias2df(x)

Arguments

x

A raw alias output as given by CRAN (and Bioconductor).

Value

A matrix with Package, Source (The name of the file), and the Target (or Alias)


Base R's alias

Description

Retrieve alias available on R.

Usage

base_alias(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with three columns: Package, Source and Target.

See Also

The raw source of the data is: base_aliases_db().

Other alias: cran_alias()

Examples

ba <- base_alias()
head(ba)

Help pages with cliques

Description

Some help pages have links to and from but they are closed networks.

Usage

base_help_cliques()

Details

Requires igraph

Value

Return a data.frame of help pages not connected to the network of help pages.

See Also

Other functions related to BASE help pages: base_help_pages_not_linked(), base_help_pages_wo_links()

Examples



base_help_cliques()



Help pages without links

Description

Help pages without links to other help pages. This makes harder to navigate to related help pages.

Usage

base_help_pages_not_linked()

Value

A data.frame with two columns: Package and Source

See Also

Other functions related to BASE help pages: base_help_cliques(), base_help_pages_wo_links()

Examples

bhnl <- base_help_pages_not_linked()
head(bhnl)

Description

Help pages without links from other help pages. This makes harder to find them.

Usage

base_help_pages_wo_links()

Value

A data.frame with two columns: Package and Source

See Also

Other functions related to BASE help pages: base_help_cliques(), base_help_pages_not_linked()

Examples

bhwl <- base_help_pages_wo_links()
head(bhwl)

Description

Retrieve links on R documentation files.

Usage

base_links(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with the links on R's files. It has 4 columns: Package, Anchor, Target and Source.

See Also

The raw source of the data is: base_rdxrefs_db().

Other links from R: base_pages_links(), base_pkges_links(), base_targets_links()

Examples

bl <- base_links()
head(bl)

Description

Explore the relationship between base R packages and other help pages. If the target help page is ambiguous it is omitted.

Usage

base_pages_links(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with 6 columns: from_pkg, from_Rd, to_pkg, to_Rd, n (Number of links).

See Also

Other links from R: base_links(), base_pkges_links(), base_targets_links()

Examples


bpl <- base_pages_links()
head(bpl)


Description

Explore the relationship between base R packages and other packages. If the target package is ambiguous it is omitted.

Usage

base_pkges_links(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with 6 columns: from_pkg, to_pkg, n (Number of links).

See Also

Other links from R: base_links(), base_pages_links(), base_targets_links()

Examples


bpkl <- base_pkges_links()
head(bpkl)


Description

Explore the relationship between base R packages and other help pages by the target they use.

Usage

base_targets_links(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with 6 columns: from_pkg, from_Rd, to_pkg, to_target, to_Rd, n (Number of links).

See Also

Other links from R: base_links(), base_pages_links(), base_pkges_links()

Examples


btl <- base_targets_links()
head(btl)


Bioconductor packages using CRAN archived packages

Description

Checks on the 4 Bioconductor repositories which packages depend on a archived package.

Usage

bioc_cran_archived(which = "strong")

Arguments

which

a character vector listing the types of dependencies, a subset of c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances"). Character string "all" is shorthand for that vector, character string "most" for the same vector without "Enhances", character string "strong" (default) for the first three elements of that vector.

Value

A data.frame with the name of the Bioconductor packages depending on archived packages (on Archived column) and the number of missing packages (n).

See Also

For CRAN's data source: tools::CRAN_package_db()

Examples

bca <- bioc_cran_archived()
head(bca)

Clean cache

Description

Clean cache to download repository data again.

Usage

clean_cache()

Details

Cleans the package's environment used for caching the data.

Value

Returns NULL.

Examples

clean_cache()


Look at the CRAN actions db

Description

CRAN tracks movements of packages and the actions used (for example to report the number of manual actions taken by the volunteers).

Usage

cran_actions(packages = NULL, silent = FALSE)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with Date, Time, User, Action, Package and Version columns.


CRAN's alias

Description

Retrieve alias available on CRAN.

Usage

cran_alias(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with three columns: Package, Source and Target.

See Also

The raw source of the data is: CRAN_aliases_db().

Other alias: base_alias()

Other meta info from CRAN: cran_archive(), cran_comments(), cran_history(), cran_links()

Examples

ca <- cran_alias("BWStest")
head(ca)

Retrieve CRAN archive

Description

Retrieve the archive and the current database.

Usage

cran_archive(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Details

Some packages would get an NA in Version, if package_version() were to be used with strict = FALSE. Packages might have been on CRAN but could have been removed and won't show up. Depending on the data requested and packages currently on CRAN, you might get a warning regarding a package being both archived and current.

Value

A data.frame with 6 columns: Package, Date (of publication), Version, User, size and status (archived or current). It is sorted by package name and date.

See Also

The raw source of the data is: CRAN_archive_db(), CRAN_current_db(). For some dates and comments about archiving packages: cran_comments().

Other meta info from CRAN: cran_alias(), cran_comments(), cran_history(), cran_links()

Examples


ap <- available.packages()
a_package <- rownames(ap)[startsWith(rownames(ap), "A")][2]
ca <- cran_archive(a_package)
head(ca)


CRAN comments

Description

CRAN volunteers document since ~2009 why they archive packages. This function retrieves the data and prepares it for analysis, classifying the actions taken by the team per package and date.

Usage

cran_comments(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Details

The comments are slightly edited: multiple comments for the same action are joined together so that they can be displayed on a single line. Actions are inferred from 7 keywords: archived, orphaned, removed, renamed, replaced, unarchived, unorphaned.

Value

A data.frame with four columns: package, comment, date and action.

Note

There can be room for improvement: some comments describe two actions, please let me know if you think this can be improved. Other actions can be described on multiple comments/lines or out of order. Compare with the original file in case of doubts.

References

Original file: https://cran.r-project.org/src/contrib/PACKAGES.in

See Also

Other meta info from CRAN: cran_alias(), cran_archive(), cran_history(), cran_links()

Examples


cc <- cran_comments()
head(cc)


Estimate CRAN's date of packages

Description

Check which CRAN dates are possible for a given packages and versions.

Usage

cran_date(versions)

cran_session(session = sessionInfo())

Arguments

versions

A data.frame with the packages names and versions

session

Session information.

Value

Last installation date from CRAN.

See Also

Other utilities: cran_doom(), cran_snapshot(), duplicated_alias(), package_date(), package_repos(), repos_dependencies(), update_dependencies()

Examples

# ip <- installed.packages()
ip <- data.frame(Package = c("A3", "AER"), Version = c("1.0.0", "1.2-15"))
cran_date(ip)
cran_session()

Calculate time till packages are archived

Description

Given the deadlines by the CRAN volunteers packages can be archived which can trigger some other packages to be archived. This code calculates how much time the chain reaction will go on if maintainer don't fix/update the packages.

Usage

cran_doom(which = "strong", bioc = FALSE)

Arguments

which

a character vector listing the types of dependencies, a subset of c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances"). Character string "all" is shorthand for that vector, character string "most" for the same vector without "Enhances", character string "strong" (default) for the first three elements of that vector.

bioc

Logical value if Bioconductor packages should be provided, (Requires internet connection).

Details

Packages on Suggested: field should

Value

A list with multiple elements:

References

Original code from: https://github.com/schochastics/cran-doomsday/blob/main/index.qmd

See Also

The raw source of the data is: tools::CRAN_package_db()

Other utilities: cran_date(), cran_snapshot(), duplicated_alias(), package_date(), package_repos(), repos_dependencies(), update_dependencies()

Examples


cd <- cran_doom()
head(cd$details)


Help pages with cliques

Description

Some help pages have links to other pages and they might be linked from others but they are closed network: there is no link that leads to different help pages.

Usage

cran_help_cliques(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Details

Requires igraph

Value

Return a data.frame of help pages not connected to the network of help pages. Or NULL if nothing are found.

See Also

Other functions related to CRAN help pages: cran_help_pages_not_linked(), cran_help_pages_wo_links()

Examples


chc <- cran_help_cliques("BaseSet")
head(chc)


Description

On WRE section "2.5 Cross-references" explains that packages shouldn't link to help pages outside the dependency.

Usage

cran_help_pages_links_wo_deps(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame of help pages and links.

References

https://cran.r-project.org/doc/manuals/r-devel/R-exts.html#Cross_002dreferences

Examples

evmix <- cran_help_pages_links_wo_deps("evmix")

Help pages without links

Description

Help pages without links to other help pages. This makes harder to navigate to related help pages.

Usage

cran_help_pages_not_linked(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with two columns: Package and Source

See Also

Other functions related to CRAN help pages: cran_help_cliques(), cran_help_pages_wo_links()

Examples

ap <- available.packages()
a_package <- rownames(ap)[startsWith(rownames(ap), "A")][1]
chnl <- cran_help_pages_not_linked(a_package)
head(chnl)

Description

Help pages without links from other help pages. This makes harder to find them.

Usage

cran_help_pages_wo_links(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with two columns: Package and Source

See Also

Other functions related to CRAN help pages: cran_help_cliques(), cran_help_pages_not_linked()

Examples

ap <- available.packages()
a_package <- rownames(ap)[startsWith(rownames(ap), "a")][1]
chwl <- cran_help_pages_wo_links(a_package)
head(chwl)

Check package history on CRAN

Description

It uses available information to provide the most accurate information of CRAN at any given time.

Usage

cran_history(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Details

Several sources are used: CRAN's database to check packages files and versions, CRAN's volunteers actions for when packages are archived or removed and CRAN's comments to fill in the gaps.

Value

A data.frame with the information to recreate CRAN at any point before today.

See Also

cran_archive(), cran_actions(), cran_comments().

Other meta info from CRAN: cran_alias(), cran_archive(), cran_comments(), cran_links()

Examples

cran_history

Description

Retrieve links on CRAN packages' R documentation files.

Usage

cran_links(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with the links on CRAN's packages. It has 4 columns: Package, Anchor, Target and Source.

See Also

The raw source of the data is: CRAN_rdxrefs_db().

Other links from CRAN: cran_pages_links(), cran_pkges_links(), cran_targets_links()

Other meta info from CRAN: cran_alias(), cran_archive(), cran_comments(), cran_history()

Examples

cl <- cran_links("CytoSimplex")
head(cl)

Tidy information about maintainers

Description

Make more accessible information about maintainers. Extracts and makes comparable some dates. It also provides the user name used and cleans the names of the maintainer of extra quotes.

Usage

cran_maintainers()

Details

User is what the machine building the package reported. This might indicate some collaboration, repackaging or simply nothing as it can be hidden/modified. The name, email and user might help identify similar named people (or confuse between maintainers)

Value

A data.frame with one row per package and 11 columns. The package name, Maintainer field, user maintainer manual date, packaged date, published date, name of maintainer used, email used, direction and domain.

See Also

The raw source of the data is: CRAN_authors_db()

Examples

maintainers <- cran_maintainers()
head(maintainers)

Description

Explore the relationship between CRAN packages and other help pages. If the target help page is ambiguous it is omitted.

Usage

cran_pages_links(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with 6 columns: from_pkg, from_Rd, to_pkg, to_Rd, n (Number of links).

See Also

Other links from CRAN: cran_links(), cran_pkges_links(), cran_targets_links()

Examples

cpl <- cran_pages_links("Matrix")
head(cpl)

Description

Explore the relationship between CRAN packages and other packages. If the target package is ambiguous it is omitted.

Usage

cran_pkges_links(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with 6 columns: from_pkg, to_pkg, n (Number of links).

See Also

Other links from CRAN: cran_links(), cran_pages_links(), cran_targets_links()

Examples


cpkl <- cran_pkges_links()
head(cpkl)


Check CRAN package state on any given date

Description

Given the available information which packages were on CRAN on a given date?

Usage

cran_snapshot(date)

Arguments

date

The date you want to check.

Value

The data.frame with the packages and versions at a given date.

Note

Due to missing of CRAN comments some packages are not annotated when were they archived and more packages than present might be returned for any given date.

See Also

Other utilities: cran_date(), cran_doom(), duplicated_alias(), package_date(), package_repos(), repos_dependencies(), update_dependencies()

Examples


cs <- cran_snapshot(Sys.Date() -2 )
head(cs)


Description

Explore the relationship between CRAN packages and other help pages by the target they use.

Usage

cran_targets_links(packages = NULL)

Arguments

packages

A vector with packages or NULL for all packages.

Value

A data.frame with 6 columns: from_pkg, from_Rd, to_pkg, to_target, to_Rd, n (Number of links).

See Also

Other links from CRAN: cran_links(), cran_pages_links(), cran_pkges_links()

Examples

ctl <- cran_targets_links("BaseSet")
head(ctl)

Report duplicated alias

Description

Report duplicated alias

Usage

duplicated_alias(alias)

Arguments

alias

The output of cran_alias() or base_alias()

Value

A sorted data.frame with the Target, Package and Source of the duplicate alias.

See Also

Other utilities: cran_date(), cran_doom(), cran_snapshot(), package_date(), package_repos(), repos_dependencies(), update_dependencies()

Examples

# Checking the overlap between to seemingly unrelated packages:
alias <- cran_alias(c("fect", "gsynth"))
dup_alias <- duplicated_alias(alias)
head(dup_alias)

Base R OS specific alias

Description

Data from the R source code of OS specific man help pages. This is to complement tools::base_aliases_db() which only provides links for Unix.

Usage

os_alias

Format

os_alias

A matrix with 33 rows and 5 columns:

Package

Package name

os

OS system where this applies

file

Name of the Rd file.

Source

Path to the file.

Target

Name of the Target


Find earliest date of compatibility

Description

Search the DESCRIPTION file for the release dates of dependencies and return the earliest date according to CRAN's archive. This is the date at which the package could be installed.

Usage

package_date(packages = ".", which = "strong")

Arguments

packages

Path to the package folder and/or name of packages published.

which

a character vector listing the types of dependencies, a subset of c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances"). Character string "all" is shorthand for that vector, character string "most" for the same vector without "Enhances", character string "strong" (default) for the first three elements of that vector.

Details

Currently this function assumes that packages only use ">=" and not other operators. This might change on the future if other operators are more used.

Value

A vector with the datetimes of the published package (or current date if not published) and the datetime when the requirements were met.

See Also

Other utilities: cran_date(), cran_doom(), cran_snapshot(), duplicated_alias(), package_repos(), repos_dependencies(), update_dependencies()

Examples

package_date("ABACUS")
package_date("paramtest")
package_date("Seurat") # Dependencies on packages not on CRAN
package_date("afmToolkit") # Dependency was removed from CRAN

Package dates

Description

Same as package_date but using CRAN's actions instead of public archive.

Usage

package_date_actions(packages = ".", which = "strong")

Arguments

packages

Name of the package on CRAN. It accepts also local path to packages source directories but then the function works as if the package is not released yet.

which

a character vector listing the types of dependencies, a subset of c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances"). Character string "all" is shorthand for that vector, character string "most" for the same vector without "Enhances", character string "strong" (default) for the first three elements of that vector.

Details

This provides information about when a package was removed or archived for a more accurate estimation.


Find current installations

Description

Despite the description minimal requirements find which versions are required due to dependencies.

Usage

package_dependencies(packages = ".", which = "strong")

Arguments

packages

Path to a file with a DESCRIPTION file or package's names from a repository.

which

a character vector listing the types of dependencies, a subset of c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances"). Character string "all" is shorthand for that vector, character string "most" for the same vector without "Enhances", character string "strong" (default) for the first three elements of that vector.

Value

A data.frame with the name, version required, if only one package requires it it also show the name of the package.

Note

It keeps the base packages too even if just knowing the R version required would be enough.

Examples

pd <- package_dependencies("ggeasy")
head(pd)

Package dependencies to repositories

Description

Explore the relationships between packages and repositories available.

Usage

package_repos(packages = NULL, repos = getOption("repos"), which = "all")

Arguments

packages

a character vector of package names.

repos

Repositories and their names are taken from getOptions("repos").

which

a character vector listing the types of dependencies, a subset of c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances"). Character string "all" is shorthand for that vector, character string "most" for the same vector without "Enhances", character string "strong" (default) for the first three elements of that vector.

Value

A data.frame with one line per package and at least one column per repository. It also has a column for Other repositories (Additional_repositories, or missing repositories), and the total number of dependencies and total number of repositories used.

See Also

Other utilities: cran_date(), cran_doom(), cran_snapshot(), duplicated_alias(), package_date(), repos_dependencies(), update_dependencies()

Examples

pr <- package_repos("experDesign")
head(pr)

Tidy dependencies

Description

Extract the packages dependencies, name of the dependency, operator and version for each type and package of current repositories (getOptions("repos")).

Usage

repos_dependencies(packages = NULL, which = "all")

Arguments

packages

a character vector of package names.

which

a character vector listing the types of dependencies, a subset of c("Depends", "Imports", "LinkingTo", "Suggests", "Enhances"). Character string "all" is shorthand for that vector, character string "most" for the same vector without "Enhances", character string "strong" (default) for the first three elements of that vector.

Value

A data.frame with 5 columns: the name of the dependency, the operator (op), the version it depends the type of dependency and the package.

See Also

Other utilities: cran_date(), cran_doom(), cran_snapshot(), duplicated_alias(), package_date(), package_repos(), update_dependencies()

Examples

rd <- repos_dependencies("BaseSet")
head(rd)

Resolve links

Description

Converts Anchors and targets so that it can be easily understood. See WRE for extensive explanations

Usage

split_anchor(links, count = TRUE)

Arguments

links

A data.frame with Package, Source, Anchor and Target.

count

A logical value if links should be counted.

Details

There are 4 different types of links:

Value

A data.frame with Package, Source, to_pkg, to_target, n (number of times it happens)

See Also

targets2files()


Resolves missing targets

Description

Resolves links that require to know available alias so solve them.

Usage

targets2files(links, alias)

Arguments

links

The output of split_anchor().

alias

The output of alias2df() as data.frame.

Value

A data.frame with to_pkg, to_target, from_pkg, from_Rd, n, to_Rd.


Upgradable versions

Description

Helper function to detect which package have a required version on the dependencies that could be upgraded.

Usage

update_dependencies(packages)

Arguments

packages

A character vector of packages names.

Details

Increasing this version requirements won't affect users as they already should have these versions installed as required by other dependencies.

Value

The data.frame filtered with some relevant rows

See Also

package_dependencies()

Other utilities: cran_date(), cran_doom(), cran_snapshot(), duplicated_alias(), package_date(), package_repos(), repos_dependencies()

Examples

update_dependencies("arrow")

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.