Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proper RSPM support #186

Closed
6 tasks done
gaborcsardi opened this issue Jul 31, 2020 · 1 comment
Closed
6 tasks done

Proper RSPM support #186

gaborcsardi opened this issue Jul 31, 2020 · 1 comment
Labels
feature a feature request or enhancement

Comments

@gaborcsardi
Copy link
Member

gaborcsardi commented Jul 31, 2020

  • Detect if a repo is RSPM. Once there is a response header for this, it'll be easy, until then we can do a GET to the /status API endpoint, then we'll also know the supported platforms.
  • Detect if the current platform is supported by RSPM. Supported platforms are listed at https://packagemanager.rstudio.com/__api__/status
  • Properly detect that RSPM packages are binaries. (For now we can detect that they should be binaries, but unfortunately they aren't always. As soon as the PACKAGES* files have the information about binaries, we can do this properly.)
  • Detect if a downloaded package is a binary or not, from the the x-package-type header of the package download.
  • Opt in to use RSPM automatically, via an env var or option. Pretty easy already with repo_add().
  • We could also use the Linux specific repo metadata, e.g. https://packagemanager.rstudio.com/cran/latest/bin/linux/4.0-xenial/contrib/4.0/PACKAGES only lists the binary packages that are available for the 4.0-xenial platform.
@gaborcsardi
Copy link
Member Author

Maybe there'll be improvements in the future, but with r-lib/pkgcache#85 we can close this now.

netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Jun 18, 2023
# pkgcache 2.1.1

* `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 2.1.0

* 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).
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this issue Jun 18, 2023
# pak 0.5.1

* No user visible changes.

# pak 0.5.0

* The `meta_*()` functions now consider the `platforms`, `cran_mirror` and
  `r_versions` config entries, see `?"pak-config"`.

* 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.
  (r-lib/pkgcache#47 and r-lib/pkgdepends#186).

* New `system_r_platform()` and `system_r_platform_data()` functions to query
  the current platform.

* pak now support git repositories as package references. E.g.
  `git::https://github.com/r-lib/pak.git`.

* pak now supports versioned CRAN packages, e.g. `dplyr@1.1.1` will
  always install dplyr 1.1.1. Note that only CRAN packages are supported,
  Bioconductor packages are not (yet).

* pak 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_SYSREQS2` environment variable to `true`.

* pak now does a better job looking up dependencies for
  hand-selected dependency types. E.g. `dependencies = "LinkingTo"`.

* pak now removes `?ignore`-d packages from dependencies, and
  uses the correct version comparison for `?ignore-before.r`
  (r-lib/actions#708).

* pak now does not fail for circular soft dependencies (#306).

* pak now reports dependency solver failures better in some cases
  (#305, r-lib/pak#474).

* pak now uses locally built CRAN binaries from the cache. Use the
  `?nocache` parameter to opt out from this, or
  `cache_delete(package = ...)` to remove a package from the cache.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature a feature request or enhancement
Projects
None yet
Development

No branches or pull requests

1 participant