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
|
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:
Report bugs at https://github.com/llrs/repo.data/issues
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 |
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)
Help pages not linked from base R
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)
Base R's links
Description
Retrieve links on R documentation files.
Usage
base_links(packages = NULL)
Arguments
packages |
A vector with packages or |
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)
Links between help pages by page
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 |
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)
Links between help pages by package
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 |
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)
Links between help pages by target
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 |
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
|
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 |
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 |
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 |
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 |
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
|
bioc |
Logical value if Bioconductor packages should be provided, (Requires internet connection). |
Details
Packages on Suggested: field should
Value
A list with multiple elements:
time_till_last: Time till last package is affected.
last_archived: the date of the last package that would be affected.
npackages: Numeric vector with the number of packages used.
details: A data.frame with information for each individual package: Name, date affected, affected directly, repository, times it is affected (by archival causing issues.)
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 |
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)
Links without dependencies
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 |
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 |
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)
Help pages not linked
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 |
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 |
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
CRAN's links
Description
Retrieve links on CRAN packages' R documentation files.
Usage
cran_links(packages = NULL)
Arguments
packages |
A vector with packages or |
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)
Links between help pages by page
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 |
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)
Links between help pages by package
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 |
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)
Links between help pages by target
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 |
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 |
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
|
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
|
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
|
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 |
which |
a character vector listing the types of
dependencies, a subset of
|
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
|
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:
-
{Target}
-
[=Target]{name}
-
[package]{Target}
-
[package:target]{name}
The first two can be to any package and led to disambiguation pages, the last two are fully resolved (package and alias)
Value
A data.frame with Package, Source, to_pkg, to_target, n (number of times it happens)
See Also
Resolves missing targets
Description
Resolves links that require to know available alias so solve them.
Usage
targets2files(links, alias)
Arguments
links |
The output of |
alias |
The output of |
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
Other utilities:
cran_date()
,
cran_doom()
,
cran_snapshot()
,
duplicated_alias()
,
package_date()
,
package_repos()
,
repos_dependencies()
Examples
update_dependencies("arrow")