Skip to content

renv::restore with pak errors when using a custom git package #1974

Closed
@LeeMendelowitz

Description

@LeeMendelowitz

When using pak with renv 1.0.7, I'm getting in error when trying to renv::restore() using a custom git repo. I'm able to renv::install the package with pak, it's just the restore that fails with an error.

Here's an example of how I installed from a custom git repo (where I replaced my actual url with a dummy url). The install with pak worked fine, and update the renv.lock:

renv::install('git::https://gitlab.example.net/path/example.git')

# Or could use a local repo:
# renv::install("~/projects/example")

renv::snapshot()

The renv.lock has:

    "example": {
      "Package": "example",
      "Version": "1.0.0",
      "Source": "git",
      "RemoteType": "git",
      "RemoteUrl": "https://gitlab.example.net/path/example.git",
      "RemotePkgRef": "git::https://gitlab.example.net/path/example.git",
      "RemoteRef": "HEAD",
      "RemoteSha": "xxx",
      "Requirements": [
        "DBI",
        "R",
        "tibble"
      ],
      "Hash": "xxx"
    },

To test the renv::restore(), I rm -rf renv/library. But a call to renv::restore() with this lock file will fail with:

# Installing packages --------------------------------------------------------
- Installing pak ...                            OK [linked from cache]
Successfully installed 1 package in 13 milliseconds.
✔ Loading metadata database ... done
Error:
! error in pak subprocess
Caused by error:
! Could not solve package dependencies:
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: Can't find package called [email protected].
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
* [email protected]: dependency conflict
Type .Last.error to see the more details.
Traceback (most recent calls last):
6: renv::restore()
5: renv_pak_restore(lockfile = lockfile, packages = packages, exclude = exclude,
       project = project)
4: pak$pkg_install(remotes)
3: remote(function(...) get("pkg_install_make_plan", asNamespace("pak"))(...),
       list(pkg = pkg, lib = lib, upgrade = upgrade, ask = ask,
           start = start, dependencies = dependencies, loaded = loaded_packages(lib)))
2: err$throw(res$error)
1: base::stop(cond)

The same error occurs if I try installing a local git repo (i.e. renv::install("~/projects/example").

SessionInfo

> sessionInfo()
R version 4.3.2 (2023-10-31)
Platform: aarch64-apple-darwin20 (64-bit)
Running under: macOS Monterey 12.7.1

Matrix products: default
BLAS:   /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRblas.0.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/4.3-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.11.0

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

time zone: America/Chicago
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base

loaded via a namespace (and not attached):
[1] compiler_4.3.2 tools_4.3.2    renv_1.0.7     pak_0.8.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions