metrumresearchgroup / pkgr

R package installation and management - reimagined.
https://metrumresearchgroup.github.io/pkgr/docs
39 stars 4 forks source link

`Depends` ignored when installing from tarball or DESCRIPTION #416

Open kyleam opened 6 months ago

kyleam commented 6 months ago

Take a package foo with this DESCRIPTION:

Package: foo
Version: 1.0.0
Depends:
    R6
Imports:
    withr

Depends detected for CRAN-like repo

If I put that in a CRAN-like repo (in this case just a local one), the package in Depends, R6, is installed as expected.

Version: 1
Packages:
- foo
Repos:
- local: ./repo
- MPN: https://mpn.metworx.com/snapshots/stable/2023-12-05
Cache: pkgcache-repo
Library: lib-repo
$ ls -1 lib-repo/
R6
foo
withr

Depends not detected for Tarballs

If I instead use Tarballs to point to the source tarball for foo, the pkgr install fails with "ERROR: dependency ‘R6’ is not available for package ‘foo’".

Version: 1
Tarballs:
- foo_1.0.0.tar.gz
Repos:
- MPN: https://mpn.metworx.com/snapshots/stable/2023-12-05
Cache: pkgcache-tar
Library: lib-tar
time="2024-02-29T16:42:48-05:00" level=info msg="R Version 4.1.3"
time="2024-02-29T16:42:48-05:00" level=info msg="Package Library will be created" path=lib-tar
time="2024-02-29T16:42:48-05:00" level=info msg="Default package installation type:  source"
time="2024-02-29T16:42:48-05:00" level=info msg="0:1298 (binary:source) packages available in for MPN from https://mpn.metworx.com/snapshots/stable/2023-12-05"
time="2024-02-29T16:42:48-05:00" level=info msg="Package installation cache directory:  pkgcache-tar"
time="2024-02-29T16:42:48-05:00" level=info msg="Database cache directory:  /data/home/kylem/.cache/pkgr/r_packagedb_caches"
time="2024-02-29T16:42:48-05:00" level=info msg="package installation status" installed=0 not_from_pkgr=0 outdated=0 total_packages_required=2
time="2024-02-29T16:42:48-05:00" level=info msg="package installation sources" MPN=1 tarballs=1
time="2024-02-29T16:42:48-05:00" level=info msg="package installation plan" to_install=2 to_update=0
time="2024-02-29T16:42:48-05:00" level=info msg="Library path to install packages: lib-tar\n"
time="2024-02-29T16:42:48-05:00" level=info msg="resolution time 14.72378ms"
time="2024-02-29T16:42:48-05:00" level=info msg="update argument passed. staging packages for update..."
time="2024-02-29T16:42:48-05:00" level=info msg="downloading required packages within directory " dir=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-tar
time="2024-02-29T16:42:48-05:00" level=info msg="downloading package" package=withr
time="2024-02-29T16:42:48-05:00" level=info msg="all packages downloaded" duration=21.956136ms
time="2024-02-29T16:42:48-05:00" level=info msg="starting initial install"
time="2024-02-29T16:42:51-05:00" level=info msg="Successfully Installed." package=withr remaining=1 repo=MPN version=2.5.0
time="2024-02-29T16:42:51-05:00" level=info msg="starting individual tarball install"
time="2024-02-29T16:42:51-05:00" level=error msg="cmd output" exit_code=1 output="ERROR: dependency ‘R6’ is not available for package ‘foo’\n* removing ‘/data/home/kylem/scratch/pkgr-dep-testing/lib-tar/foo’\n" package=foo stderr="ERROR: dependency ‘R6’ is not available for package ‘foo’\n* removing ‘/data/home/kylem/scratch/pkgr-dep-testing/lib-tar/foo’\n" stdout=
time="2024-02-29T16:42:51-05:00" level=error msg="error installing package" error="exit status 1" install_type=tarball installed_from=pkgcache-tar/a8516ee48f236c72/foo pkg=foo remaining=0 source=foo_1.0.0.tar.gz
time="2024-02-29T16:42:51-05:00" level=info msg="total package install time" duration=2.627162426s
time="2024-02-29T16:42:51-05:00" level=info msg="duration:2.627945394s"

Depends not detected for Descriptions

And if I point to foo's DESCRIPTION, R6 is not installed.

Version: 1
Descriptions:
- foo/DESCRIPTION
Repos:
- MPN: https://mpn.metworx.com/snapshots/stable/2023-12-05
Cache: pkgcache-desc
Library: lib-desc
$ ls -1 lib-desc/
withr

The above is with the pkgr v3.1.1.

The attached tarball has the setup code for these cases (invoke make to run them all).

pkgr-depends-test.tar.gz

dpastoor commented 6 months ago

Oh interesting - that is weird :-o IIRC john carlo implemented the tarball functionality, though seth might have been slightly involved as he was getting into go a little, though I think he did the direct DESCRIPTION file feature. I thought both used the exact same desc parsing as coming from a database.

There might be some more breadcrumbs doing --loglevel=debug to dump where it falls off in the chain.

Also - if you get into the dependency resolution code... I'm sorry 🤪 I think that was some of my first go code I ever wrote for a serious project and it was .... very naive. If you need to discuss what the heck is going on with some of how it solves the layers and does the install loop I'd be happy to discuss, the data structures are weird because I originally had a completely different approach that didn't work so I changed the logic and the datastructures kinda just stuck around.

dpastoor commented 6 months ago

john carlo might have noticed this back a couple years ago: https://github.com/metrumresearchgroup/pkgr/issues/376

kyleam commented 6 months ago

@dpastoor Thanks for the comment.

Yeah, it's odd. I suppose it probably flew under the radar for a while due to the combination of 1) R's Depends being discouraged/rarely used and 2) pkgr's Tarballs and (to a less extent) Descriptions being less heavily used than Packages.

When I noted this bug on the internal issue that prompted this, @seth127 wondered if it was related to gh-376. The second comment there (" took a shortcut with Tarball dependencies by simply adding them to the list of user-defined packages in the CFG file") makes me think that packages in Depends were probably left out of that shortcut (but I haven't looked into the underlying code at all, so that's a wild guess).

There might be some more breadcrumbs doing --loglevel=debug to dump where it falls off in the chain.

Good point. The debug output for each scenario is below (haven't done a close comparison yet).

repo ``` time="2024-03-01T14:27:13-05:00" level=info msg="R Version 4.1.3" time="2024-03-01T14:27:13-05:00" level=debug msg="OS Platform x86_64-pc-linux-gnu" time="2024-03-01T14:27:13-05:00" level=info msg="Package Library will be created" path=lib-repo time="2024-03-01T14:27:13-05:00" level=debug msg="packages database - type: source, url: ./repo/src/contrib/PACKAGES\n" time="2024-03-01T14:27:13-05:00" level=debug msg="potential packages" num_pkgs=1 url=./repo/src/contrib/PACKAGES time="2024-03-01T14:27:13-05:00" level=info msg="Default package installation type: source" time="2024-03-01T14:27:13-05:00" level=info msg="0:1 (binary:source) packages available in for local from ./repo" time="2024-03-01T14:27:13-05:00" level=info msg="0:1298 (binary:source) packages available in for MPN from https://mpn.metworx.com/snapshots/stable/2023-12-05" time="2024-03-01T14:27:13-05:00" level=debug msg="package cache directory set by user" dir=pkgcache-repo time="2024-03-01T14:27:13-05:00" level=info msg="Package installation cache directory: pkgcache-repo" time="2024-03-01T14:27:13-05:00" level=info msg="Database cache directory: /data/home/kylem/.cache/pkgr/r_packagedb_caches" time="2024-03-01T14:27:13-05:00" level=debug msg="package repository set" pkg=foo relationship=user_defined repo=local type=source version=1.0.0 time="2024-03-01T14:27:13-05:00" level=debug msg="package repository set" pkg=R6 relationship=dependency repo=MPN type=source version=2.5.1 time="2024-03-01T14:27:13-05:00" level=debug msg="package repository set" pkg=withr relationship=dependency repo=MPN type=source version=2.5.0 time="2024-03-01T14:27:13-05:00" level=info msg="package installation status" installed=0 not_from_pkgr=0 outdated=0 total_packages_required=3 time="2024-03-01T14:27:13-05:00" level=info msg="package installation sources" MPN=2 local=1 tarballs=0 time="2024-03-01T14:27:13-05:00" level=info msg="package installation plan" to_install=3 to_update=0 time="2024-03-01T14:27:13-05:00" level=info msg="Library path to install packages: lib-repo\n" time="2024-03-01T14:27:13-05:00" level=info msg="resolution time 13.296656ms" time="2024-03-01T14:27:13-05:00" level=info msg="update argument passed. staging packages for update..." time="2024-03-01T14:27:13-05:00" level=debug msg="package cache directory set by user" dir=pkgcache-repo time="2024-03-01T14:27:13-05:00" level=info msg="downloading required packages within directory " dir=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-repo time="2024-03-01T14:27:13-05:00" level=info msg="downloading package" package=foo time="2024-03-01T14:27:13-05:00" level=debug msg="download successful" dltime="87.387µs" package=foo size="0.00 MB" time="2024-03-01T14:27:13-05:00" level=info msg="downloading package" package=R6 time="2024-03-01T14:27:13-05:00" level=info msg="downloading package" package=withr time="2024-03-01T14:27:13-05:00" level=debug msg="download successful" dltime=25.258556ms package=R6 size="0.06 MB" time="2024-03-01T14:27:13-05:00" level=debug msg="download successful" dltime=27.155278ms package=withr size="0.10 MB" time="2024-03-01T14:27:13-05:00" level=info msg="all packages downloaded" duration=27.449988ms time="2024-03-01T14:27:13-05:00" level=info msg="starting initial install" time="2024-03-01T14:27:13-05:00" level=debug msg="installing tarball" args="{false false false false false false true true true true false false false /tmp/JBOQOXKHGABJ}" tbp=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-repo/MPN-ce7c8736ab85/src/R6_2.5.1.tar.gz time="2024-03-01T14:27:13-05:00" level=debug msg="installing tarball" args="{false false false false false false true true true true false false false /tmp/KETCHXJGYBGM}" tbp=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-repo/MPN-ce7c8736ab85/src/withr_2.5.0.tar.gz time="2024-03-01T14:27:15-05:00" level=debug msg="cmd output" exitCode=0 output="* installing *source* package ‘R6’ ...\n** package ‘R6’ successfully unpacked and MD5 sums checked\n** using staged installation\n** R\n** tests\n** byte-compile and prepare package for lazy loading\n** help\n*** installing help indices\n*** copying figures\n** building package indices\n** testing if installed package can be loaded from temporary location\n** testing if installed package can be loaded from final location\n** testing if installed package keeps a record of temporary installation path\n* creating tarball\npackaged installation of ‘R6’ as ‘R6_2.5.1_R_x86_64-pc-linux-gnu.tar.gz’\n* DONE (R6)\n" package=R6 time="2024-03-01T14:27:16-05:00" level=debug msg="cmd output" exitCode=0 output="* installing *binary* package ‘R6’ ...\n* DONE (R6)\n" package=R6 time="2024-03-01T14:27:16-05:00" level=debug msg="package install request completed" WID=1 duration=2.282937894s package=R6 time="2024-03-01T14:27:16-05:00" level=debug msg=R6 binary=/tmp/JBOQOXKHGABJ/R6_2.5.1_R_x86_64-pc-linux-gnu.tar.gz src=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-repo/MPN-ce7c8736ab85/src/R6_2.5.1.tar.gz time="2024-03-01T14:27:16-05:00" level=info msg="Successfully Installed." package=R6 remaining=2 repo=MPN version=2.5.1 time="2024-03-01T14:27:16-05:00" level=debug msg="cmd output" exitCode=0 output="* installing *source* package ‘withr’ ...\n** package ‘withr’ successfully unpacked and MD5 sums checked\n** using staged installation\n** R\n** inst\n** tests\n** byte-compile and prepare package for lazy loading\n** help\n*** installing help indices\n*** copying figures\n** building package indices\n** installing vignettes\n** testing if installed package can be loaded from temporary location\n** testing if installed package can be loaded from final location\n** testing if installed package keeps a record of temporary installation path\n* creating tarball\npackaged installation of ‘withr’ as ‘withr_2.5.0_R_x86_64-pc-linux-gnu.tar.gz’\n* DONE (withr)\n" package=withr time="2024-03-01T14:27:16-05:00" level=debug msg="cmd output" exitCode=0 output="* installing *binary* package ‘withr’ ...\n* DONE (withr)\n" package=withr time="2024-03-01T14:27:16-05:00" level=debug msg="package install request completed" WID=2 duration=2.773454804s package=withr time="2024-03-01T14:27:16-05:00" level=debug msg=withr binary=/tmp/KETCHXJGYBGM/withr_2.5.0_R_x86_64-pc-linux-gnu.tar.gz src=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-repo/MPN-ce7c8736ab85/src/withr_2.5.0.tar.gz time="2024-03-01T14:27:16-05:00" level=info msg="Successfully Installed." package=withr remaining=1 repo=MPN version=2.5.0 time="2024-03-01T14:27:16-05:00" level=debug msg="installing tarball" args="{false false false false false false true true true true false false false /tmp/GDBMHEFNEDYS}" tbp=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-repo/local-bc2a9b5726fc/src/foo_1.0.0.tar.gz time="2024-03-01T14:27:17-05:00" level=debug msg="cmd output" exitCode=0 output="* installing *source* package ‘foo’ ...\n** using staged installation\n** help\nNo man pages found in package ‘foo’ \n*** installing help indices\n** building package indices\n** testing if installed package can be loaded from temporary location\n** testing if installed package can be loaded from final location\n** testing if installed package keeps a record of temporary installation path\n* creating tarball\npackaged installation of ‘foo’ as ‘foo_1.0.0_R_x86_64-pc-linux-gnu.tar.gz’\n* DONE (foo)\n" package=foo time="2024-03-01T14:27:17-05:00" level=debug msg="cmd output" exitCode=0 output="* installing *binary* package ‘foo’ ...\n* DONE (foo)\n" package=foo time="2024-03-01T14:27:17-05:00" level=debug msg="package install request completed" WID=3 duration=1.19632506s package=foo time="2024-03-01T14:27:17-05:00" level=debug msg=foo binary=/tmp/GDBMHEFNEDYS/foo_1.0.0_R_x86_64-pc-linux-gnu.tar.gz src=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-repo/local-bc2a9b5726fc/src/foo_1.0.0.tar.gz time="2024-03-01T14:27:17-05:00" level=info msg="Successfully Installed." package=foo remaining=0 repo=local version=1.0.0 time="2024-03-01T14:27:17-05:00" level=debug msg="user package install time" duration=3.970667794s time="2024-03-01T14:27:17-05:00" level=info msg="starting individual tarball install" time="2024-03-01T14:27:17-05:00" level=info msg="total package install time" duration=4.031045184s time="2024-03-01T14:27:17-05:00" level=debug msg="No update-packages to restore." time="2024-03-01T14:27:17-05:00" level=debug msg="No update-packages to restore." time="2024-03-01T14:27:17-05:00" level=info msg="duration:4.03106408s" ```
tar ``` time="2024-03-01T14:27:17-05:00" level=info msg="R Version 4.1.3" time="2024-03-01T14:27:17-05:00" level=debug msg="OS Platform x86_64-pc-linux-gnu" time="2024-03-01T14:27:17-05:00" level=info msg="Package Library will be created" path=lib-tar time="2024-03-01T14:27:17-05:00" level=info msg="Default package installation type: source" time="2024-03-01T14:27:17-05:00" level=info msg="0:1298 (binary:source) packages available in for MPN from https://mpn.metworx.com/snapshots/stable/2023-12-05" time="2024-03-01T14:27:17-05:00" level=debug msg="package cache directory set by user" dir=pkgcache-tar time="2024-03-01T14:27:17-05:00" level=info msg="Package installation cache directory: pkgcache-tar" time="2024-03-01T14:27:17-05:00" level=info msg="Database cache directory: /data/home/kylem/.cache/pkgr/r_packagedb_caches" time="2024-03-01T14:27:17-05:00" level=debug msg="package cache directory set by user" dir=pkgcache-tar time="2024-03-01T14:27:17-05:00" level=debug msg="package repository set" pkg=withr relationship=user_defined repo=MPN type=source version=2.5.0 time="2024-03-01T14:27:17-05:00" level=debug msg="additional installation set" install_from=pkgcache-tar/c27f10cc351728c5/foo method=tarball origin=foo_1.0.0.tar.gz pkg=foo time="2024-03-01T14:27:17-05:00" level=info msg="package installation status" installed=0 not_from_pkgr=0 outdated=0 total_packages_required=2 time="2024-03-01T14:27:17-05:00" level=info msg="package installation sources" MPN=1 tarballs=1 time="2024-03-01T14:27:17-05:00" level=info msg="package installation plan" to_install=2 to_update=0 time="2024-03-01T14:27:17-05:00" level=info msg="Library path to install packages: lib-tar\n" time="2024-03-01T14:27:17-05:00" level=info msg="resolution time 15.239996ms" time="2024-03-01T14:27:17-05:00" level=info msg="update argument passed. staging packages for update..." time="2024-03-01T14:27:17-05:00" level=debug msg="package cache directory set by user" dir=pkgcache-tar time="2024-03-01T14:27:17-05:00" level=info msg="downloading required packages within directory " dir=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-tar time="2024-03-01T14:27:17-05:00" level=info msg="downloading package" package=withr time="2024-03-01T14:27:17-05:00" level=debug msg="download successful" dltime=23.788555ms package=withr size="0.10 MB" time="2024-03-01T14:27:17-05:00" level=info msg="all packages downloaded" duration=23.913637ms time="2024-03-01T14:27:17-05:00" level=info msg="starting initial install" time="2024-03-01T14:27:17-05:00" level=debug msg="installing tarball" args="{false false false false false false true true true true false false false /tmp/RIQMDLELJGUE}" tbp=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-tar/MPN-ce7c8736ab85/src/withr_2.5.0.tar.gz time="2024-03-01T14:27:19-05:00" level=debug msg="cmd output" exitCode=0 output="* installing *source* package ‘withr’ ...\n** package ‘withr’ successfully unpacked and MD5 sums checked\n** using staged installation\n** R\n** inst\n** tests\n** byte-compile and prepare package for lazy loading\n** help\n*** installing help indices\n*** copying figures\n** building package indices\n** installing vignettes\n** testing if installed package can be loaded from temporary location\n** testing if installed package can be loaded from final location\n** testing if installed package keeps a record of temporary installation path\n* creating tarball\npackaged installation of ‘withr’ as ‘withr_2.5.0_R_x86_64-pc-linux-gnu.tar.gz’\n* DONE (withr)\n" package=withr time="2024-03-01T14:27:20-05:00" level=debug msg="cmd output" exitCode=0 output="* installing *binary* package ‘withr’ ...\n* DONE (withr)\n" package=withr time="2024-03-01T14:27:20-05:00" level=debug msg="package install request completed" WID=2 duration=2.291623406s package=withr time="2024-03-01T14:27:20-05:00" level=debug msg=withr binary=/tmp/RIQMDLELJGUE/withr_2.5.0_R_x86_64-pc-linux-gnu.tar.gz src=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-tar/MPN-ce7c8736ab85/src/withr_2.5.0.tar.gz time="2024-03-01T14:27:20-05:00" level=info msg="Successfully Installed." package=withr remaining=1 repo=MPN version=2.5.0 time="2024-03-01T14:27:20-05:00" level=debug msg="user package install time" duration=2.292233705s time="2024-03-01T14:27:20-05:00" level=info msg="starting individual tarball install" time="2024-03-01T14:27:20-05:00" level=debug msg="installing tarball" package=foo pkg_source=pkgcache-tar/c27f10cc351728c5/foo time="2024-03-01T14:27:20-05:00" level=debug msg="package cache directory set by user" dir=pkgcache-tar time="2024-03-01T14:27:20-05:00" level=error msg="cmd output" exit_code=1 output="ERROR: dependency ‘R6’ is not available for package ‘foo’\n* removing ‘/data/home/kylem/scratch/pkgr-dep-testing/lib-tar/foo’\n" package=foo stderr="ERROR: dependency ‘R6’ is not available for package ‘foo’\n* removing ‘/data/home/kylem/scratch/pkgr-dep-testing/lib-tar/foo’\n" stdout= time="2024-03-01T14:27:20-05:00" level=error msg="error installing package" error="exit status 1" install_type=tarball installed_from=pkgcache-tar/c27f10cc351728c5/foo output="ERROR: dependency ‘R6’ is not available for package ‘foo’\n* removing ‘/data/home/kylem/scratch/pkgr-dep-testing/lib-tar/foo’\n" pkg=foo remaining=0 source=foo_1.0.0.tar.gz time="2024-03-01T14:27:20-05:00" level=info msg="total package install time" duration=2.590685911s time="2024-03-01T14:27:20-05:00" level=debug msg="No update-packages to restore." time="2024-03-01T14:27:20-05:00" level=debug msg="No update-packages to restore." time="2024-03-01T14:27:20-05:00" level=info msg="duration:2.591519419s" ```
desc ``` time="2024-03-01T14:27:11-05:00" level=info msg="R Version 4.1.3" time="2024-03-01T14:27:11-05:00" level=debug msg="OS Platform x86_64-pc-linux-gnu" time="2024-03-01T14:27:11-05:00" level=info msg="Package Library will be created" path=lib-desc time="2024-03-01T14:27:11-05:00" level=info msg="Default package installation type: source" time="2024-03-01T14:27:11-05:00" level=info msg="0:1298 (binary:source) packages available in for MPN from https://mpn.metworx.com/snapshots/stable/2023-12-05" time="2024-03-01T14:27:11-05:00" level=debug msg="package cache directory set by user" dir=pkgcache-desc time="2024-03-01T14:27:11-05:00" level=info msg="Package installation cache directory: pkgcache-desc" time="2024-03-01T14:27:11-05:00" level=info msg="Database cache directory: /data/home/kylem/.cache/pkgr/r_packagedb_caches" time="2024-03-01T14:27:11-05:00" level=debug msg="package repository set" pkg=withr relationship=user_defined repo=MPN type=source version=2.5.0 time="2024-03-01T14:27:11-05:00" level=info msg="package installation status" installed=0 not_from_pkgr=0 outdated=0 total_packages_required=1 time="2024-03-01T14:27:11-05:00" level=info msg="package installation sources" MPN=1 tarballs=0 time="2024-03-01T14:27:11-05:00" level=info msg="package installation plan" to_install=1 to_update=0 time="2024-03-01T14:27:11-05:00" level=info msg="Library path to install packages: lib-desc\n" time="2024-03-01T14:27:11-05:00" level=info msg="resolution time 13.79451ms" time="2024-03-01T14:27:11-05:00" level=info msg="update argument passed. staging packages for update..." time="2024-03-01T14:27:11-05:00" level=debug msg="package cache directory set by user" dir=pkgcache-desc time="2024-03-01T14:27:11-05:00" level=info msg="downloading required packages within directory " dir=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-desc time="2024-03-01T14:27:11-05:00" level=info msg="downloading package" package=withr time="2024-03-01T14:27:11-05:00" level=debug msg="download successful" dltime=27.362098ms package=withr size="0.10 MB" time="2024-03-01T14:27:11-05:00" level=info msg="all packages downloaded" duration=27.508782ms time="2024-03-01T14:27:11-05:00" level=info msg="starting initial install" time="2024-03-01T14:27:11-05:00" level=debug msg="installing tarball" args="{false false false false false false true true true true false false false /tmp/GTJXNTQDNFRT}" tbp=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-desc/MPN-ce7c8736ab85/src/withr_2.5.0.tar.gz time="2024-03-01T14:27:13-05:00" level=debug msg="cmd output" exitCode=0 output="* installing *source* package ‘withr’ ...\n** package ‘withr’ successfully unpacked and MD5 sums checked\n** using staged installation\n** R\n** inst\n** tests\n** byte-compile and prepare package for lazy loading\n** help\n*** installing help indices\n*** copying figures\n** building package indices\n** installing vignettes\n** testing if installed package can be loaded from temporary location\n** testing if installed package can be loaded from final location\n** testing if installed package keeps a record of temporary installation path\n* creating tarball\npackaged installation of ‘withr’ as ‘withr_2.5.0_R_x86_64-pc-linux-gnu.tar.gz’\n* DONE (withr)\n" package=withr time="2024-03-01T14:27:13-05:00" level=debug msg="cmd output" exitCode=0 output="* installing *binary* package ‘withr’ ...\n* DONE (withr)\n" package=withr time="2024-03-01T14:27:13-05:00" level=debug msg="package install request completed" WID=1 duration=2.337223236s package=withr time="2024-03-01T14:27:13-05:00" level=debug msg=withr binary=/tmp/GTJXNTQDNFRT/withr_2.5.0_R_x86_64-pc-linux-gnu.tar.gz src=/data/home/kylem/scratch/pkgr-dep-testing/pkgcache-desc/MPN-ce7c8736ab85/src/withr_2.5.0.tar.gz time="2024-03-01T14:27:13-05:00" level=info msg="Successfully Installed." package=withr remaining=0 repo=MPN version=2.5.0 time="2024-03-01T14:27:13-05:00" level=debug msg="user package install time" duration=2.338065502s time="2024-03-01T14:27:13-05:00" level=info msg="starting individual tarball install" time="2024-03-01T14:27:13-05:00" level=info msg="total package install time" duration=2.398822398s time="2024-03-01T14:27:13-05:00" level=debug msg="No update-packages to restore." time="2024-03-01T14:27:13-05:00" level=debug msg="No update-packages to restore." time="2024-03-01T14:27:13-05:00" level=info msg="duration:2.398838993s" ```

If you need to discuss what the heck is going on with some of how it solves the layers and does the install loop I'd be happy to discuss

Thanks. I'm not sure when I'll get around to looking into this, but I may take you up on that if I get too turned around.

kyleam commented 6 months ago

john carlo might have noticed this back a couple years ago: #376

Ha, messages crossed

Dreznel commented 6 months ago

It's been a while since I've dug into this codebase, but I think #376 is unrelated--that bug is just about how dependencies are labeled in certain situations.

To Kyle's point, I think the most likely explanation is just that we didn't account for the "Depends" keyword in certain situations.