Build 'Tidyverse'-Style Meta-Packages from Local Package Files
- CRAN checks, method
Method
Checks and health
CRAN runs every current package through
R CMD checkon a set of machines and publishes a result for each one. The health shown on a package page comes from these results alone.- Problems
- Notes alone never count against a package, but a warning, an error or a failure on any platform is a problem. Open CRAN deadlines are a fact of their own, shown as a clock after the mark, so the mark always says what the checks found.
- Checks only
- Health reflects CRAN's check results and nothing else. Even a package with no tests, no coverage or no recent release can have every platform OK.
- Once a day
- Results are collected once a day from files CRAN publishes. Each platform is one machine set-up, named by its R version, operating system, architecture and compiler, such as r-devel-linux-x86_64-fedora-clang.
- Platforms counted
- The 13 in 3 of 13 is the number of platform rows CRAN published for that package on the day of collection. The set of machines changes over time, so the number is not fixed, and a package missing from a platform counts as neither passing nor failing there.
- All OK13 platforms
- CRAN 30-day downloads, method
- 418+24.8% up on the 30 days before, the better direction
- Dependent packages, method
Method
Reverse dependencies
Dependent packages are other packages that list this one under
Depends,ImportsorLinkingToin theirDESCRIPTIONfile. Those fields list the packages a package needs to install, so dependents break if this one is archived or broken.- As declared
- The counts follow the declarations as written, not whether a package uses the other one when it runs.
- Suggests apart
- Packages that list this one only under
Suggestsinstall and run without it, and use it for tests, examples or an optional feature. They are counted as Suggested by, never among the dependents, and a package that also lists it under one of the three fields is a dependent and is not counted again. - Zero
- Zero dependents means no current CRAN package declares a need for this one, though some may suggest it. On 28 Oct 2026, 19,572 of the 25,583 current CRAN packages had no dependent package.
- 0none suggest it
- Test coverage, method
Method
Test coverage
Test coverage is measured by downloading each CRAN package's current source file, installing its dependencies, building it and running its tests under covr.
- Almost half of CRAN has no tests to run
- Only CRAN packages are measured. Many have no percentage, most often because the package has no tests, and that blank is a recorded outcome, not missing data.
- NOT_CRAN
- Tests run with NOT_CRAN=true, so tests that skip themselves on CRAN run here, and the figure can differ from what CRAN's own checks see.
- Current version only
- Only the current version is measured, and a new version on CRAN is measured again. Older rows are kept but never filled in later. This is one package's run.
- Never 0%
- On a package page three states stay apart: measured, no tests, and not measured. Neither of the last two is ever shown as 0%.
- 92%of lines run by tests
- Advisories, method
Method
Security advisories
Advisories come from the R Consortium advisory database, a community record of security problems in R packages, as OSV publishes it.
- The copy
- The record is read once a day. The data is published under the Apache License 2.0 and is credited on the advisories list.
- Box under the name
- Under the package's name, a box names any advisory that affects the current release, with its fix or that there is none.
- Ranges
- Advisories state ranges, such as from 0.9.12 up to but not including 1.8.8. Each range is checked against every version CRAN has published, using the version rules R itself uses, so a release that came out after the advisory was written is still caught by its range.
- Not the package
- The rating is for the library flaw itself, not for how exposed the R package is, and it is never added up into a figure for the package.
- None known
About
Method, About Method Licence figures come from the Licences
License field of each package's DESCRIPTION file, read the way R itself reads it. No licence file is opened.tools::analyze_license() and R's own licence database, as CRAN's checks read it.| is read, so one string can offer two families.
Turns a curated set of package archives (.tar.gz, .zip) into one meta-package in the style of the 'tidyverse', so that a group of interdependent packages can be distributed and installed as a single unit.
Full description
Turns a curated set of package archives (.tar.gz, .zip) into one meta-package in the style of the 'tidyverse', so that a group of interdependent packages can be distributed and installed as a single unit. The generated meta-package records the exact archive versions it was built from and installs its components in dependency order, so that whoever receives it does not have to work out which package to install first. The component archives are copied into the generated meta-package, so it is the only artifact that has to be distributed and no directory has to be agreed on between machines. Resolves dependencies by building a graph with topological ordering and cycle detection, classifies them as local or external, and detects implicit dependencies by scanning source code. Installation needs no repository access unless a component depends on a package that only exists in one, which suits teams working behind institutional firewalls. Generates the complete meta-package scaffold, including installation helpers, vignettes and documentation.
- Maintainer
- Sebastián Lucas
- Licence
- GPL (>= 3)
- Latest release
- 23 Oct 2026
- First release
- 8 Aug 2026
More details
- Releases
- 5
- Needs compilation
- No
- Needs R
- >= 4.1.0
- Config/roxygen2/version
- 8.0.0
- Config/testthat/edition
- 3
- Language
- en
Subjects (1) Method, SubjectsMethod
Subjects and collections
Subjects are the site's own grouping of CRAN packages, found by clustering. Collections are sets of packages that communities declare, such as the tidyverse.
- Subjects
- Subjects are found by clustering the words of current CRAN packages and the packages they use. No one edits them by hand.
- Collections
- Collections are sets that communities declare, through a package that installs the set or an organization on GitHub. The site finds them by rules.
- Who made each
- Subjects are marked Site and collections Community. Subjects, collections and task views are never mixed in one list.
- The day of the data
- Subjects and collections were last worked out on 22 Oct 2026.
Cite
Package
Run in R for the authors' preferred citation:
citation("bigbang")Lucas, S., & Detomasi, R. (2026). bigbang: Build 'Tidyverse'-Style Meta-Packages from Local Package Files (Version 0.6.0) [Computer software]. https://doi.org/10.32614/CRAN.package.bigbang
About
This package has no citation file, so citation() returns this entry built from DESCRIPTION.
The repository also keeps a CITATION.cff.
R Observatory
For a number measured here: a download total, a coverage figure, an archival date.
Balamuta, J. J. (2026). R Observatory: Metrics for bigbang version 0.6.0 [Data set]. HJJB, LLC. Data release v2026-10-28. https://doi.org/10.5281/zenodo.21843040
About
From data release v2026-10-28, which the citation names so these numbers can be found later.
Health
All 13 check platforms pass.
r-devel-linux-x86_64-debian-clangThe unreleased R on Linux, x86_64, debian-clang
OK
- Version checked
- 0.6.0
- Time taken
- 349 s
r-devel-linux-x86_64-debian-gccThe unreleased R on Linux, x86_64, debian-gcc
OK
- Version checked
- 0.6.0
- Time taken
- 246 s
r-devel-linux-x86_64-fedora-clangThe unreleased R on Linux, x86_64, fedora-clang
OK
- Version checked
- 0.6.0
- Time taken
- 244 s
r-devel-linux-x86_64-fedora-gccThe unreleased R on Linux, x86_64, fedora-gcc
OK
- Version checked
- 0.6.0
- Time taken
- 251 s
r-devel-windows-x86_64The unreleased R on Windows, x86_64
OK
- Version checked
- 0.6.0
- Time taken
- 492 s
r-oldrel-macos-arm64The previous release of R on macOS, arm64
OK
- Version checked
- 0.6.0
- Time taken
- 223 s
r-oldrel-macos-x86_64The previous release of R on macOS, x86_64
OK
- Version checked
- 0.6.0
- Time taken
- 630 s
r-oldrel-windows-x86_64The previous release of R on Windows, x86_64
OK
- Version checked
- 0.6.0
- Time taken
- 492 s
r-patched-linux-x86_64The patched release of R on Linux, x86_64
OK
- Version checked
- 0.5.1
- Time taken
- 148 s
r-release-linux-x86_64The current release of R on Linux, x86_64
OK
- Version checked
- 0.5.1
- Time taken
- 148 s
r-release-macos-arm64The current release of R on macOS, arm64
OK
- Version checked
- 0.6.0
- Time taken
- 129 s
r-release-macos-x86_64The current release of R on macOS, x86_64
OK
- Version checked
- 0.6.0
- Time taken
- 704 s
r-release-windows-x86_64The current release of R on Windows, x86_64
OK
- Version checked
- 0.6.0
- Time taken
- 528 s
- 13 OK
Over time
No change since 8 Sep 2026
As a list (3)
| Changed | Worst status | OK | Notes | Warnings | Errors |
|---|---|---|---|---|---|
| 8 Sep 2026 | OK | 13 | 0 | 0 | 0 |
| 7 Sep 2026 | Error | 12 | 0 | 0 | 1 |
| 9 Aug 2026 | OK | 6 | 0 | 0 | 0 |
Since March 2026
Downloads
Method, Downloads Method Download figures count requests logged by each distribution channel. They are not counts of installs or of users, because each channel publishes its own totals and this site reads them.Downloads
- Total downloads in the last 30 days
- 453+15.9% up on the 30 days before, the better directionIt is the sum of 3 channels: CRAN, r2u and autoCRAN.
CRAN rank
7,907 of 26,530
CRAN
418 downloads in the last 30 days
- Rank
- 7,907 of 26,530
- Change
- +24.8% up on the 30 days before, the better direction
It is in the total. Take it out
r2u
5 downloads in the last 30 days
- Rank
- 9,299 of 30,526
- Change
- −78.3% down on the 30 days before, the worse direction
It is in the total. Take it out
autoCRAN
30 downloads in the last 30 days
- Rank
- 1,358 of 29,212
- Change
- −9.1% down on the 30 days before, the worse direction
It is in the total. Take it out
The total is 453 downloads in the last 30 days. It is the sum of 3 channels: CRAN, r2u and autoCRAN.
Over time
Dependencies
Code
Method, Code Method Code metrics come from reading the released source of each package version. The package is never installed, loaded or run.Code metrics
README, vignettes, a NEWS file and the shares read from its help pages. Files kept only in the repository, such as a pkgdown configuration or CI files, are read by the repository scan instead.
.escape_regex_literal
- Kind
- Internal R function
- File
- R/fs-utils.R, line 334
- Lines
- 3
- Complexity
- 1
- Covered by tests
- 100%
Method
Call graph and functions
The function table and the call graph come from reading the package source, and no code is built or run. Each function is one definition, and a call means one function's body names another in the same package.
- Five drawings
- The Code section draws the calls five ways, two about one function and three about the whole package. The Markdown twin gives all five in words.
- Counted
- R functions are top-level assignments of a function in a file at the root of
R/, and right assignment does not count. Compiled functions are definitions undersrc/read by the C, C++, Fortran or Rust grammar. - Plain names
- Calls are recorded when the function called is a plain name, or the right side of :: or :::, matching a function the same package defines. Calls to base R and to other packages are left out.
- Latest CRAN version
- CRAN detail is kept for the latest version only and is written again at each analysis. Older releases keep the whole-network figures but no drawing.
Calls 0
It calls nothing else in this package
Most connected
- Functions
- 344
- Public exports
- 4
- Lines of R code
- 16,444
- Median complexity
- 4
Functions (344)
Size and composition
Lines by kind (37,972)
| Kind | Lines | Share |
|---|---|---|
| R code | 16,444 | 43% |
| Tests | 20,362 | 54% |
| Documentation | 822 | 2% |
| Guides | 344 | 0.9% |
Lines by language
| Language | Lines | Share |
|---|---|---|
| R | 36,776 | 97% |
| Rd | 822 | 2% |
| Vignettes | 344 | 0.9% |
| Other | 30 | 0.1% |
Languages are counted from file extensions.
- Files
- 103
- R functions
- 344
- Object systems
- S3: 3 methods
Complexity
- Median
- 4
- Mean
- 7.79
- Highest
- 147
- Median lines per function
- 17
About complexity
Cyclomatic complexity counts the independent paths through a function: 1 is a straight line, higher is harder to test. R functions only.
Call graph figures
- R functions
- 344
- Calls
- 882
- Unconnected
- 7
- Groups
- 1
Growth (5 releases)
Release changes
Tests
Coverage was measured, but at least one test failed during the run.
- Lines run by tests
- 92.5%
- Expressions run by tests
- 89.6%
- Test cases
- 430
- Exports named in tests
- 100%
Coverage by file (12)
Coverage run
- Lines counted
- 12,508
- Lines the tests ran
- 11,564
- Tests passed
- No
- Measured with
- covr 3.6.5 on R 4.6.1
Test suite
- Has tests
- Yes
- Test frameworks
- testthat, tinytest
- Test cases
- 430
- Lines of tests
- 20,362
- Test lines per line of code
- 1.24
Documentation
- Exports documented
- 100%
- Arguments documented
- 93.5%
- Return value documented
- 100%
- Help pages with examples
- 57.1%
- Examples run in checks
- 75%
Other documentation
- README
- Yes, 4,142 words
- Release notes file
- Yes
- Help pages
- 7
- Lines of documentation
- 822
People
Method, People Method People on the site are the names packages give them in their Author and maintainer identity
DESCRIPTION files: authors from the author list, and the maintainer from the Maintainer field. Spellings of one name become one person only where the rules below allow it, and when in doubt the rules keep people apart.
Repository
Method, figures by host Method Repository signals are the figures read from the source repository a package links to: stars, forks, issues, commits, releases and the time issues take to close. They are read from GitHub, GitLab, Codeberg and Bitbucket.Repository signals
URL and BugReports fields of its DESCRIPTION file. Read-only mirrors, the cran and bioc accounts on GitHub and git.bioconductor.org, are left out.
sebollin / bigbang on github.com
- Stars
- 4+100% up on 30 days ago, the better direction
- Forks
- 0
- Open issues
- 0
- Last commit
- 25 Oct 2026
Activity
- Commits
- 156
- Open pull requests
- 0
- Tagged releases
- 4
- Latest tagged release
- v0.6.0, 24 Oct 2026
- In development
- Default branch at 0.6.0.9000, ahead of CRAN 0.6.0 (checked 2026-10-25)
- Issues closed in
- –
- Pull requests closed in
- 0 days (median)
- Pull requests merged
- 100%
- Created
- 22 Jul 2026
- Licence file reads as
- GPL-3.0
Development practices (13)
| Kind | Found |
|---|---|
| Continuous integration | GitHub Actions, R CMD check workflow The R CMD check workflow runs on Linux, macOS and Windows, and on R-devel |
| Governance and community | Contributing guide |
| Docs source | pkgdown GitHub Pages site last deployed 2026-10-25 The repository has a site deploy workflow pkgdown site last built 2026-10-25 |
| Coverage | Coverage reporting (Codecov) |
| CRAN release process | cran-comments.md, CRAN-SUBMISSION |
| Research and citation | CITATION.cff |
| Lint, format, editor | lintr, Lint workflow, RStudio project |
Method, repository practices Method Beta Each week a scan of the public source repository a package links to looks for the tools a maintainer has set up, and the Repository section lists the findings. Repositories on GitHub and GitLab are scanned.Repository practices
R CMD build reads .Rbuildignore and leaves out files used only in development, such as .github/, .lintr, renv/, a Dockerfile and cran-comments.md, so the released source file holds almost none of them. The repository is the one place these files stay visible.
History
Method, History Method Archived is built from CRAN's archive records, its list of check deadlines and Bioconductor's package records. Every figure is counted to 28 Oct 2026, the day the data was read.Packages leaving
| Version | Released | R |
|---|---|---|
| 0.6.0 current | 23 Oct 2026 | 4.6.1 |
| 0.5.1 | 6 Oct 2026 | 4.6.1 |
| 0.5.0 | 2 Oct 2026 | 4.6.1 |
| 0.4.0 | 19 Aug 2026 | 4.6.1 |
| 0.1.0 | 8 Aug 2026 | 4.6.1 |
Release notes (0.6.0)
Security
- bigbang now reads tar and ZIP archives with its own validating reader, and no longer calls
utils::untar()orutils::unzip(). On R 4.1 to 4.5, a component archive containing a symbolic link, followed by an entry written through that link, could write outside the temporary extraction directory before bigbang rejected the archive, even withdry_run = TRUE. R 4.6.0 blocks this insideuntar(), but earlier releases do not. The new reader: - creates only regular files and directories inside the destination;
- treats Windows junctions and symbolic links as links, so it never extracts into them and its cleanup never deletes through them;
- rejects links, devices, other special entries, and malformed, overlapping or trailing archive data;
- by default rejects names that Windows cannot create, such as
aux.Ror a name containing:or?, names ending in a dot or a space, and names that differ only in case. If every recipient uses Linux or macOS,options(bigbang.archive.portable_names = FALSE)accepts them wherever the file system can store them, which is never on Windows, and warns that the package will not install there. Links, absolute paths,.., names made only of dots and spaces, control characters and invalid UTF-8 are always rejected; - verifies CRC-32 and sizes through zlib;
- stops at configurable limits:
options(bigbang.archive.max_entries, bigbang.archive.max_total_bytes, bigbang.archive.max_metadata_bytes, bigbang.archive.max_path_bytes)(see?scan_bigbang_artifact).
Generation, diagnose_dependencies(), install_local_pkg(),
scan_bigbang_artifact(), and the installers of generated meta-packages all
use the same reader. scan_bigbang_artifact() reports an archive with links
as vulnerable, and a damaged one as an archive error, instead of failing.
Dependencies
- bigbang now requires R >= 4.1.0. Its own code needs nothing newer than R 3.6.0. The imported glue, however, has required R 4.1 since glue 1.8.1, so installing on an older R already failed unless an older glue was installed by hand. CI now checks R 4.1. Generated meta-packages keep their
R (>= 3.5.0)floor, which has been verified on R 3.5.3.
New features
<meta>_deps(plan = TRUE)returns a read-only plan of what<meta>_install()will do. It reports, for each component, the archive and installed versions, the library, the action and the reason, and, for each external dependency, its version constraint and whether it is satisfied. The plan uses the installer's ownupgradedefault,onlyclosure, and rules for libraries and version constraints. It loads no namespaces and installs nothing.<meta>_deps(only = ...)also lists the dependencies of that closure without a plan. Called with no arguments,<meta>_deps()returns what it did before.create_metapackage(governance = TRUE)adds aCONTRIBUTING.md, a code of conduct adapted from the Contributor Covenant 2.1, and a package-inclusion issue template to the generated meta-package. Updates track these files, and the built package excludes them. The default remainsgovernance = FALSE.
Bug fixes
- Name collisions. A meta-package whose name matches one of its components, or another local package the installer can see, is rejected before anything is written, ignoring case. So are two components whose names differ only in case. The generated installer also rejects an archive whose
Package:field changed after generation. - Failure messages. When
R CMD INSTALLfails,install_local_pkg()and generated installers now report the last real error, together with the lines around it, and give the path to the full log. Compiler errors are included, and logs that are not valid UTF-8 are read safely. - External dependencies. Version constraints on external dependencies are checked for each component. With
cran_deps = "install", an unsatisfied dependency is updated from the explicitrepos. Nothing uses the network without an explicit, non-emptyrepos. - Source-only repositories. On Windows and macOS,
cran_deps = "install"installed nothing from a repository that only has source packages, such as an internal repository, and the reason was discarded. If the default attempt leaves a dependency unsatisfied,install_local_pkg()and generated installers now retry withtype = "source", so binaries are still preferred where they exist. When both attempts fail, the result says why. - Result categories. Every component ends in exactly one result category. Dependents of a failed or skipped component are skipped without being built, and a shared dependency is installed only once.
- Installed components. Without
lib, a component installed in any library on.libPaths()counts as installed. With an explicitlib, only that library counts. - Translations. Printed results, installation results and every message emitted by generated meta-packages are translated into Spanish. Tests now fail on any untranslated message, and the English output is unchanged.
- Smaller fixes.
- A meta-package generated with
document = FALSEno longer declares aRoxygenNotefor a roxygen run that never happened. - Replacing a file through a Windows reparse point no longer warns.
- An invalid
lib, such as an empty string,NAor several paths, gives the same classed error ininstall_local_pkg(),<meta>_deps(plan = TRUE)and generated installers. When the installers cannot create the library, they fail with that error too, with nodir.create()warning before it. - 46 obsolete entries were removed from the Spanish catalog.
- The test suite no longer depends on what is installed in the user library.
Performance
- Archives are listed once per call: listing ten 1 MB archives went from 64 to 19 ms.
install_local_pkg()no longer rebuilds shared dependencies.
Documentation
- The README citation section points to
citation("bigbang")and explains the CRAN and Zenodo DOIs. It no longer pastes a BibTeX entry, which had been left at version 0.3.0. - The README now explains that recipients keep a newer installed version by default (
install_upgrade = "newer"), and thatinstall_upgrade = "always"makes every installation match the archives. - The vignettes use
<meta>_reexport_verification()only withreexport = TRUE, and quote the path given toR CMD build. - Smaller fixes:
- the README describes the self-contained meta-package, r-universe binaries and CI accurately;
- the Spanish README gains the sections it lacked;
CONTRIBUTING.mddocuments the test and lint commands.