The metadata cache now does not use source URLs for packages in Archive
on Posit Package Manager repositories. This URLs may serve a different
package, even a source package when the main URL for the same package
serves a binary package. The alternative URLs are not needed on PPM,
anyway, because PPM is in a consistent state w.r.t. metadata and
package files (https://github.com/r-lib/pak/issues/623).
parse_packages()
now does not throw a warning for empty PACKAGES*
files (#107).
repo_set()
and the ppm_*()
functions, e.g. ppm_snapshots()
, now
work again after the PPM API changes (#110, #115).
New pkg.current_platform
option and PKG_CURRENT_PLATFORM
environment
variable to override the detected platform.
In repo_add()
and repo_resolve()
the MRAN@
prefix is now deprecated
and resolves to PPM, because MRAN will be retired soon. See more at
https://posit.co/blog/migrating-from-mran-to-posit-package-manager/.
The metadata cache now has SystemRequirements
information for Bioconductor
packages.
parse_installed()
now has a packages
argument, to list only a subset
of all packages.
parse_packages()
can now parse PACKAGES
files with trailing
whitespace (#93).
The Bioconductor repositories now include the 'books' repository, available since Bioconductor 3.12.
pkgcache now supports binary packages on x86_64 macOS and R 4.3.0 and later (#89).
Better Posit Package Manager (PPM) support. New ppm_has_binaries()
,
ppm_r_versions()
, ppm_repo_url()
, ppm_snapshots()
and ppm_platforms()
functions to help interacting with PPM. See the new 'pkgcache and Posit
Package Manager on Linux' article at https://r-lib.github.io/pkgcache.
(#47 and r-lib/pkgdepends#186).
The built
and sysreqs
columns of the metadata case are always
character vectors now, and not logicals, as it used to be in some
edges cases in the past.
The deps
column of the metadata cache is not a tibble any more,
but a data frame with a tbl
class, as it should be.
cran_archive_*()
functions now only download the metadata if it is newer
than what you have currently.
cran_archive_cleanup()
now does not ignore the force
argument.
The sources
column in the metadata cache now has the correct URL for
packages in the CRAN archive (https://github.com/r-lib/pak/issues/425).
pkgcache error messages are better now.
pkgcache now does not compress the metadata cache files, which makes loading the metadata cache faster.
No user visible changes.
Starting from version 2.0.0 pkgcache returns data frames instead
of tibbles. While data frames and tibbles are very similar, they are
not completely compatible. To convert the output of pkgcache to tibbles
call the as_tibble()
function on them.
pkgcache loads the pillar package at startup, if available, and uses it to improve the printing of pkgcache data frames.
parse_packages()
now automatically determines the type of the PACKAGES*
file, instead of relying on file extensions.
pkgcache can now call back again to a PACKAGES
file if PACKAGES.gz
is
not available. (This fixes a regression in pkgcache 1.3.0.)
pkgcache now uses HTTP 1.1 on Linux as well, because of crashes with HTTP/2.
pkgcache now supports file:///
, repositories, i.e. repositories on
the local file system.
pkgcache now works better on M1 macs.
current_r_platform()
does a much better job now. In particular, on
Linux it includes the name and release of the distribution.
The new current_r_platform_data()
function returns the platform information
as a data frame, instead of a single string.
Metadata is now more accurate for Windows packages that are typically not multi-arch any more on R 4.2.0 (current R-devel).
pkgcache has its own DCF metadata parser now, which is much faster, and
it parses all fields of PACAKGES*
and DESCRIPTION
files.
New parse_installed()
function to get the metadata of all installed
packages in a library. It uses the new DCF parser, so it is quite fast.
meta_cache_list()
and related functions now correctly set the
rversion
column of source R packages to "*"
.
pkgcache now uses HTTP 1.1 on macOS, to work around a possible slowdown issue with libcurl for HTTP/2.
pkgcache now uses our extra metadata (file sizes, system requirements,
etc.) for RStudio Package Manager (RSPM) repositories as well, as long
as they are named RSPM
in getOption("repos")
.
tools::R_user_dir()
cache location. To clean up your old
cache call pkgcache:::cleanup_old_cache_dir()
.No user visible changes.
New repo_add()
, repo_get()
, repo_resolve()
and with_repo()
functions to query and manipulate repositories.
meta_cache_*()
functions now handle getOption("repos")
changes
correctly.
Failed metadata downloads now do not trigger metadata updates (#52).
New bioc_release_version()
, bioc_devel_version()
, bioc_repos()
helper functions to deal with Bioconductor repositories.
Metadata cache functions, e.g. meta_cache_deps()
etc. now allow
specifying the dependency types in all lowercase (#54).
package_cache
now does not fail if the web server does not send an
Etag
header when downloading packages.
package_cache
has now much relaxed HTTP timeouts, and handles
downloading many packages (slowly) much better.
The package download progress bar can now be suppressed by setting
the pkg.show_progress
option to FALSE
.
New repo_status()
function to query the status and response time
of CRAN-like repositories.
New bioc_version()
and bioc_version_map()
functions to query
Bioconductor repositories.
pkgcache now does not fail if some repositories do not provide some package types.
New current_r_platform()
, default_cran_mirror()
and
default_platforms()
functions.
pkgcache now works for R 4.0.x macOS binaries.
HTTP timeouts are now much better, and by default they are defined in terms of download speed, instead of total download time (#29).
pkgcache now tries to download metadata from the PACKAGES
file, if it
cannot find PACKAGES.gz
(@timmsm, #27).
pkgcache is now less verbose when updating or loading metadata.
Fix handling of Bioconductor versions and repositories, see README for the details.
Now different versions of pkgcache, that potentially have different metadata format, can share the same metadata cache directory.
Fix concurrency issues when the async API is used multiple times in the same event loop.
Make package compatible with tibble >= 2.0.0.
Add meta_cache_summary()
and a summary()
method for
cranlike_metadata_cache
. Return information about a metadata cache
instance.