openpharma / staged.dependencies

R package to implement development stages for package development
https://openpharma.github.io/staged.dependencies/
MIT License
12 stars 3 forks source link

Error: No root directory found in... for tlg-catalog #189

Closed m7pr closed 1 year ago

m7pr commented 1 year ago
staged.dependencies::dependency_table(
+   project = "insightsengineering/teal@https://github.com",
+   project_type = "repo@host",
+   ref = "refactor",
+   verbose = 1
+ ) |> staged.dependencies::install_deps()
fetch https://github.com/insightsengineering/teal.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal_e38093f352c184cf676b1dd47551848c
   - checkout branch origin/refactor in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal_e38093f352c184cf676b1dd47551848c
fetch https://github.com/insightsengineering/teal.widgets.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.widgets_8f92a3d7b00ae5fadadf0ffc4492c7f2
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.widgets_8f92a3d7b00ae5fadadf0ffc4492c7f2
fetch https://github.com/insightsengineering/teal.code.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.code_f5c7ee90093dd244b11b1acde2d5098a
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.code_f5c7ee90093dd244b11b1acde2d5098a
fetch https://github.com/insightsengineering/teal.data.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.data_39f26acbb991125a81ff5392c742cf86
   - checkout branch origin/refactor in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.data_39f26acbb991125a81ff5392c742cf86
fetch https://github.com/insightsengineering/teal.slice.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.slice_69fabf5d920c35ab0e950fac1a49b372
   - checkout branch origin/refactor in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.slice_69fabf5d920c35ab0e950fac1a49b372
fetch https://github.com/insightsengineering/teal.transform.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.transform_7dbb21e492260b8f5bd20354278faa2c
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.transform_7dbb21e492260b8f5bd20354278faa2c
fetch https://github.com/insightsengineering/teal.logger.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.logger_db3be93ac2413ef16521b0cf8fe202ad
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.logger_db3be93ac2413ef16521b0cf8fe202ad
fetch https://github.com/insightsengineering/teal.reporter.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.reporter_2c5a990a10b0c9b8f7bccf13bd04db2a
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.reporter_2c5a990a10b0c9b8f7bccf13bd04db2a
fetch https://github.com/insightsengineering/teal.modules.general.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.general_6683cd12f2051b8649bc34a3a5b86bd1
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.general_6683cd12f2051b8649bc34a3a5b86bd1
fetch https://github.com/insightsengineering/teal.modules.clinical.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.clinical_7480b81982f393c223354b432013836e
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.clinical_7480b81982f393c223354b432013836e
fetch https://github.com/insightsengineering/teal.osprey.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.osprey_9d88421efa7fd7b6fcece04c431bbe47
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.osprey_9d88421efa7fd7b6fcece04c431bbe47
fetch https://github.com/insightsengineering/teal.goshawk.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.goshawk_23d2065f4fbd2bc73b043ff69b62027b
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.goshawk_23d2065f4fbd2bc73b043ff69b62027b
fetch https://github.com/insightsengineering/teal.modules.hermes.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.hermes_15b1e307810ca8699d3fc80b887a2add
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.hermes_15b1e307810ca8699d3fc80b887a2add
fetch https://github.com/insightsengineering/teal.modules.helios.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.helios_737600447efe0473ee9d8c8ca851127e
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.modules.helios_737600447efe0473ee9d8c8ca851127e
fetch https://github.com/insightsengineering/rtables.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_rtables_f0f6291eb2b1f6976bb05ff26dfa212d
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_rtables_f0f6291eb2b1f6976bb05ff26dfa212d
fetch https://github.com/insightsengineering/nestcolor.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_nestcolor_2b763bd91b720d7414fc50e163378834
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_nestcolor_2b763bd91b720d7414fc50e163378834
fetch https://github.com/insightsengineering/tern.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_tern_05d8cd0d757a67b0d1c893284424007a
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_tern_05d8cd0d757a67b0d1c893284424007a
fetch https://github.com/insightsengineering/tern.mmrm.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.mmrm_ee1a7fba6deed5dd13ca0466e1c4e968
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.mmrm_ee1a7fba6deed5dd13ca0466e1c4e968
fetch https://github.com/insightsengineering/tern.gee.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.gee_3aaa7fadfce37dee6734b561dcbf376c
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.gee_3aaa7fadfce37dee6734b561dcbf376c
fetch https://github.com/insightsengineering/formatters.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_formatters_2af660375fccd6c369329f665710ecae
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_formatters_2af660375fccd6c369329f665710ecae
fetch https://github.com/insightsengineering/osprey.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_osprey_fd4956fcddf407f7776ca93a88340830
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_osprey_fd4956fcddf407f7776ca93a88340830
fetch https://github.com/insightsengineering/goshawk.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_goshawk_ca859ec43e2cee0eae1bf7222663c98c
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_goshawk_ca859ec43e2cee0eae1bf7222663c98c
fetch https://github.com/insightsengineering/hermes.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_hermes_c774027dbd79477ddd2093c770a88021
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_hermes_c774027dbd79477ddd2093c770a88021
fetch https://github.com/insightsengineering/helios.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_helios_c91bbb464713b07f1dabf18f8e84df07
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_helios_c91bbb464713b07f1dabf18f8e84df07
fetch https://github.com/insightsengineering/tern.rbmi.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.rbmi_6a1fe99ca79df0966c0be53c96d0d6af
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_tern.rbmi_6a1fe99ca79df0966c0be53c96d0d6af
fetch https://github.com/insightsengineering/chevron.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_chevron_22a6dec8d97d5eb2c4cca8dbf1a885ed
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_chevron_22a6dec8d97d5eb2c4cca8dbf1a885ed
fetch https://github.com/insightsengineering/citril.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_citril_09d841be8f86395466af1f649ab829c1
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_citril_09d841be8f86395466af1f649ab829c1
fetch https://github.com/insightsengineering/scda.test.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_scda.test_763fd6f0f55f5186da061770106c1612
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_scda.test_763fd6f0f55f5186da061770106c1612
fetch https://github.com/insightsengineering/biomarker-catalog.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_biomarker-catalog_810ab5cb0ce7a100ecea7d78ad128f7d
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_biomarker-catalog_810ab5cb0ce7a100ecea7d78ad128f7d
fetch https://github.com/insightsengineering/tlg-catalog.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_tlg-catalog_6e297f1cdf8b224b494b4fe1f057d5d1
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_tlg-catalog_6e297f1cdf8b224b494b4fe1f057d5d1
fetch https://github.com/insightsengineering/rlistings.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_rlistings_7c08b1222c8163799de3c79a683ecc9c
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_rlistings_7c08b1222c8163799de3c79a683ecc9c
fetch https://github.com/insightsengineering/dunlin.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_dunlin_d44ceb0895e904c328ebcf615ac92a01
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_dunlin_d44ceb0895e904c328ebcf615ac92a01
fetch https://github.com/insightsengineering/citril.metadata.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_citril.metadata_91ec0619df7d65c3d5efded934264505
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_citril.metadata_91ec0619df7d65c3d5efded934264505
fetch https://github.com/insightsengineering/scda.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_scda_6ea836b807b2d80ac7feb032e00c8aa2
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_scda_6ea836b807b2d80ac7feb032e00c8aa2
fetch https://github.com/insightsengineering/scda.2022.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_scda.2022_fae81d8a1331fd1546c933c074ca8409
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_scda.2022_fae81d8a1331fd1546c933c074ca8409
fetch https://github.com/insightsengineering/teal.devel.git in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.devel_df57b5f07d223d3cfb704fc28e033b08
   - checkout branch origin/main in directory C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_teal.devel_df57b5f07d223d3cfb704fc28e033b08
Error: No root directory found in C:/Users/kosinsm4/Documents/.staged.dependencies/packages_cache/insightsengineering_tlg-catalog_6e297f1cdf8b224b494b4fe1f057d5d1 or its parent directories. Root criterion: contains a file "DESCRIPTION" with contents matching "^Package: "
Melkiades commented 1 year ago

@pawelru do you know something about this?

m7pr commented 1 year ago

I was trying to investigate it, and it looks like tlg-catalog is a repository that has a package inside a subdir. And it looks like staged.dependencies is looking for DESCRIPTION in the root of the repository, and not in the subdir. I did try to rerun it a couple of times and at some point it did run with a successful run, without this error, but I'm not sure what was the cause

pawelru commented 1 year ago

@pawelru do you know something about this?

Nope. New discovery to me.

I looked in the log and it relates to the already dead repo teal.devel. Maybe that's the thing?

m7pr commented 1 year ago

No it's not related to teal.devel. teal.devel is required by biomarker-catalog https://github.com/insightsengineering/biomarker-catalog/blob/main/staged_dependencies.yaml#L17 I run the same function it in a couple of other repositories with different parameters settings/specification and it was always other package that was last at the fetch phase, but always the same issue with tlg-catalog besides one run when it was positive

m7pr commented 1 year ago

I think remotes/devtools call something like rprojroot::is_r_package$testfun('.') on tlg-catalog repository and returns FALSE

rprojroot::is_r_package
Root criterion: contains a file "DESCRIPTION" with contents matching "^Package: "

becuase it should be run in tlg-catalog/package subdir and not in tlg-catalog directory.

pawelru commented 1 year ago

If it relates to tlg-catalog and you have a reprex then I will be able to help. That was recently changed my me. In such case you have to have a following syntax:

  repo: insightsengineering/tlg-catalog
  host: https://github.com
  subdir: package
m7pr commented 1 year ago

Yeah. I saw that in tern https://github.com/insightsengineering/tern/commit/1492a4593bded7d44f3b40c73726936b62f262cb and it looks like it is causing some issues on my end

m7pr commented 1 year ago

@pawelru I think the code from this issue is the reprex

staged.dependencies::dependency_table(
   project = "insightsengineering/teal@https://github.com",
   project_type = "repo@host",
   ref = "refactor",
   verbose = 1
 ) |> staged.dependencies::install_deps()
Melkiades commented 1 year ago

It is weird bc the only dependencies in instightsengineering have this highlighted: https://github.com/search?q=org%3Ainsightsengineering+insightsengineering%2Ftlg-catalog&type=code (i.e. it seems like only tern has this dep.... but what about rlistings? I am puzzled)

Created an issue: https://github.com/insightsengineering/rlistings/issues/148 feel free to close it if highlighting this direct dep is deemed unnecessary

m7pr commented 1 year ago

Why would you like to add tlg-catalog package to rlistings package? tlg-catalog package is not listed in DESCRIPTION of rlistings so I guess it is not used at all by rlistings

Melkiades commented 1 year ago

Why would you like to add tlg-catalog package to rlistings package? tlg-catalog package is not listed in DESCRIPTION of rlistings so I guess it is not used at all by rlistings

there are downstream dependencies to be added. Besides that we are missing these for tlg-catalog (@m7pr check scda.test to see an analog situation), I think the source of the problem is that somehow the subdir directive is missing when the dep tree is retrieved indirectly. So we have two solutions: either we propagate the subdir internally in staged.deps methods or we add the downstream dependencies that are currently missing (I would do both). What do you think @pawelru?

pawelru commented 1 year ago

I have just re-run snippet and it all worked well without error. Can you please clear the cache (staged.dependencies::clear_cache()) and try again?

r$> packageVersion("staged.dependencies")
[1] ‘0.3.1.9001’
m7pr commented 1 year ago

Ok, now I get you. So it's rlistings listed in tlg-catalog/package/staged.dependencies.yml but tlg-catalog is not listed in rlistings/staged.dependencies.yml.

To clean this up, I reckon we move forward with https://github.com/insightsengineering/nestdevs-tasks/issues/34

m7pr commented 1 year ago

Thanks for the hint with staged.dependencies::clear_cache() @pawelru . Just run it, after cache clearing and i get the same. I'm so confused.

Session Info ```r > sessionInfo() R version 4.3.0 (2023-04-21 ucrt) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 10 x64 (build 19044) Matrix products: default locale: [1] LC_COLLATE=English_Europe.utf8 LC_CTYPE=English_Europe.utf8 LC_MONETARY=English_Europe.utf8 [4] LC_NUMERIC=C LC_TIME=English_Europe.utf8 time zone: Europe/Berlin tzcode source: internal attached base packages: [1] stats graphics grDevices utils datasets methods base loaded via a namespace (and not attached): [1] utf8_1.2.3 generics_0.1.3 tidyr_1.3.0 renv_1.0.0 [5] stringi_1.7.12 digest_0.6.31 magrittr_2.0.3 staged.dependencies_0.2.8 [9] pkgload_1.3.2.1 fastmap_1.1.1 rprojroot_2.0.3 jsonlite_1.8.4 [13] processx_3.8.2 sessioninfo_1.2.2 pkgbuild_1.4.0 backports_1.4.1 [17] rcmdcheck_1.4.0 urlchecker_1.0.1 ps_1.7.5 promises_1.2.0.1 [21] httr_1.4.6 purrr_1.0.1 fansi_1.0.4 cli_3.6.1 [25] shiny_1.7.4.1 rlang_1.1.1 crayon_1.5.2 visNetwork_2.1.2 [29] ellipsis_0.3.2 withr_2.5.0 remotes_2.4.2 cachem_1.0.8 [33] yaml_2.3.7 devtools_2.4.5 tools_4.3.0 memoise_2.0.1 [37] checkmate_2.2.0 dplyr_1.1.2 httpuv_1.6.11 curl_5.0.0 [41] vctrs_0.6.2 R6_2.5.1 mime_0.12 lifecycle_1.0.3 [45] git2r_0.32.0 stringr_1.5.0 fs_1.6.2 htmlwidgets_1.6.2 [49] xopen_1.0.0 usethis_2.2.2 miniUI_0.1.1.1 desc_1.4.2 [53] pkgconfig_2.0.3 callr_3.7.3 pillar_1.9.0 later_1.3.1 [57] glue_1.6.2 profvis_0.3.8 Rcpp_1.0.10 tibble_3.2.1 [61] tidyselect_1.2.0 rstudioapi_0.15.0 xtable_1.8-4 htmltools_0.5.5 [65] compiler_4.3.0 prettyunits_1.1.1 ```
pawelru commented 1 year ago

Me too... I cannot reproduce what you got. I am afraid that you would have to debug it yourself. Some hints from my side:

This is the line of code that generates the error: https://github.com/openpharma/staged.dependencies/blob/fb124997306b35d44a0225bb4b400bf7258c4c75/R/utils.R#L240-L242

It's a one-liner function used only in one place: https://github.com/openpharma/staged.dependencies/blob/fb124997306b35d44a0225bb4b400bf7258c4c75/R/dependencies.R#L121-L122

m7pr commented 1 year ago

Thanks for pointing this out. I will debug more as I already tried various things, thanks : D

m7pr commented 1 year ago

Ugh, I think I have outdated staged.dependencies version, which is 0.2.8 which does not have the subdir support introduced in 0.2.8.900 https://github.com/openpharma/staged.dependencies/commit/db7a13c26570f475c02bfd1898ca36152364fc4a When I was debugging with devtools::load_all(".") it loaded the state of the staged.dependencies package in version 0.3.1.9001 which had the subdir support and I could not reproduce the issue (and probably this is the only time that the staged.dependencies::install_deps worked for me).

So I guess I will reinstall, and this will hopefully solve the issue. So stupid :)

> library(staged.dependencies)
> packageVersion('staged.dependencies')
[1] ‘0.2.8’
> devtools::load_all(".")
ℹ Loading staged.dependencies
Warning message:
package ‘testthat’ was built under R version 4.3.1 
> packageVersion('staged.dependencies')
[1] ‘0.3.1.9001’
m7pr commented 1 year ago

Yes, update to 0.3.1.9001 obviously fixed the issue