CRAN release: 2023-07-18
Many system requirements improvements:
- New functions:
sysreqs_check_installed(): check if all required system packages are installed,
sysreqs_fix_installed(): install missing system packages,
sysreqs_db_list(): list system requirements database,
SystemRrequirementsfield(s) to database,
sysreqs_db_update(): update system requirements database,
sysreqs_install_plan(): look up system requirements for a package and its dependencies,
sysreqs_is_supported(): check if pkgdepends supports system requirements on your platform,
sysreqs_list_system_packages(): list installed system packages,
sysreqs_platforms(): list supported platforms.
- The output of
$show_solution()now includes system requirements.
- pkgdepends now looks up system requirements asynchronously, during dependency resolution.
- pkgdepends now does not reinstall system requirements by default, if they are already installed. (You can force a reinstall/upgrade with the
- New functions:
gitlab::package source to install packages from GitLab (#315).
pkgdepends now correctly parses multiple
git::packages at once (#318).
@*releasereference for the latest release.
git::package sources now support version 1 of the git protocol. E.g. the Bioconductor git repositories now work:
platformsconfig parameter now works correctly with
deps::package sources (https://github.com/r-lib/pak/issues/522).
include_linkingtoconfig parameter to always include
LinkingTopackages in the solution, even for binaries (#485).
pkg_name_check()now does not include Acromine results, because the web site was unstable.
CRAN release: 2023-04-19
pkgdepends now support git repositories as package references. E.g.
pkgdepends now supports versioned CRAN packages, e.g.
firstname.lastname@example.org always install dplyr 1.1.1. Note that only CRAN packages are supported, Bioconductor packages are not (yet).
pkgdepends now has an alternative system requirements lookup implementation. It supports Fedora and Debian systems as well, in addition to Debian, Ubuntu, SUSE and RedHat derivatives. You can switch to this implementation by setting the
R_PKG_SYSREQS2environment variable to
pkgdepends now does a better job looking up dependencies for hand-selected dependency types. E.g.
dependencies = "LinkingTo".
pkgdepends now removes
?ignore-d packages from dependencies, and uses the correct version comparison for
pkgdepends now does not fail for circular soft dependencies (#306).
pkgdepends now uses locally built CRAN binaries from the cache.
CRAN release: 2022-12-17
pkgdepends has much improved and more informative error messages now. This work is not yet finished, so if you find an unclear error message, please open an issue. Thank you!
The solver is now more robust for non-canonical input (e.g.
Better installation output. Standard output and error are now collected together (https://github.com/r-lib/pkgdepends/commit/0669f0f8c).
The solver is now doing a better job when multiple versions of the same package are present in the same repository (https://github.com/r-lib/actions/issues/559).
Explicit package names in local and URL package sources, as in
package=url::...are now parsed correctly in dependencies.
pkgdepends is now more robust to
Archsfields missing from the CRAN metadata for packages with compiled code (https://github.com/r-lib/pak/issues/448).
url::packages now always work correctly, even if the digest package is not installed (https://github.com/r-lib/pak/issues/433).
CRAN release: 2022-09-08
?ignoreparameter works correctly now.
dependency resolution now does not fail if a package is not found.
pkgdepends can now install
url::remotes from GitHub.
pkgdepends now does not fail when the package of a
.tar.gzGitHub snapshot is in a subdirectory, or in a subdirectory of a subdirectory.
pkgdepends now errors early if it cannot deduce the name of the package from a
Solver failures now include details in some cases where previously they did not.
pkgdepends can now update packages in Docker containers where the old version was installed in the different Docker later (https://github.com/r-lib/pak/issues/251)
pkgdepends errors are now user friendlier and better formatted.
CRAN release: 2022-04-08
- The dependency solver now uses better heuristics and does not (effectively) freeze if multiple repositories have multiple versions of the same packages (e.g. RSPM and CRAN) (#277).
CRAN release: 2022-02-16
?ignore-before-rparameter to ignore optional dependencies that need a newer R version (#243).
?ignoreparameter to ignore an optional dependency.
Allow specifying downstream package parameters with the
$update()operation now works better for
any::refs, and we always install the version we planned for.
System requirement installation is now more robust and works for Unix shell expressions (#347).
Make system dependency installation more robust (https://github.com/r-lib/pak/issues/347).
CRAN-like resolution is more robust now if a repository is missing the usual metadata.
The lock file is pretty JSON now.
pkgdepends now does not return tibbles, but simple data frames. They are still printed concisely as long as the pillar package is loaded.
pkgdepends now handles all version requirement types properly: ‘<’, ‘<=’,
CRAN release: 2021-11-29
pkgdepends now has Much better platform support, including arm64 packages on macOS, and single-arch and multi-arch binary packages on Windows.
Better configuration via environment variables and options, see
Many improvements for lock files, i.e. the
System requirements support. This is currently active on Linux, if the
CIenvironment variable is set to
true. You can set the
PKG_SYSREQSenvironment variable to
trueto turn it on in other situations. See
any::reference type can be used to install a package from any source. See
?pkg_refsfor more about this.
CRAN release: 2021-06-30
- remotes can now update packages installed by pak. In the past this sometimes did not work (#301).
CRAN release: 2021-05-16