[R-pkg-team] Bug#1039510: mvtnorm breaks r-cran-pammtools autopkgtest: missing Breaks and/or versioned (test) Depends?

Dirk Eddelbuettel edd at debian.org
Mon Jun 26 21:21:22 BST 2023


Hi Paul,

I really appreciate the diligence and detail you put into this.

But I would like to offer a simple shortcut.  I am also CCing debian-r again
as this has come up time and time again, is guaranteed to come up again for
as long as combine autopkgtests with letting packages go stake.


Point 0: Trust CRAN.

  CRAN *never* lets a package onto their repo in their (complete) reverse
  depends checks reveal anything.

  Ever.  (Unless a coordinated update is made.)

  E.g. I just sent a patch to uwot (aka r-cran-uwot) because my RcppAnnoy
  package (aka r-cran-rcppannoy) updated upstream annoy, introduces a C++
  namespace in the header and breaks downstream compilation. So I altered
  uwot accordingly (last week), waited a few days for the maintainer to
  update it (big-ish package, he had other pending changes), it got onto CRAN
  today so I likely send RcppAnnoy tomorrow.

  CRAN very strongly believes in 'everything works at @HEAD' so if everything
  is current, everything is generally installable at all times.  This is
  unparalleled in open source. No other repo gives such guarantees. I have
  worked with them as both package maintainer (for Debian) and upstream for
  twenty years.  The trust is earned.


Point 1: So check CRAN for the newly updated package

  See
    https://cloud.r-project.org/web/packages/mvtnorm/index.html
  and esp the results aggregation
    https://cloud.r-project.org/web/checks/check_results_mvtnorm.html
  which is *pristine*.

  So the smoke starts to come from our corners.


Point 2: So check CRAN for borked package

  See
    https://cloud.r-project.org/web/packages/pammtools/index.html
  and note how it was update in March and is at 0.5.91

  Whereas we are at 0.5.8.


So I think that is not a bug in mvtnorm aka r-cran-mvtnorm.

You could of course ask me to add versioning info to r-cran-mvtnorm but as I
strongly suspect that the issue goes away once pammtools aka r-cran-pammtools
updates, I think that that would be the wrong way to go.


Sorry for the long email but there **value** in CRAN. We would be foolish to
ignore it.

Cheers, Dirk
 



On 26 June 2023 at 21:53, Paul Gevers wrote:
| Source: mvtnorm, r-cran-pammtools
| Control: found -1 mvtnorm/1.2-2-1
| Control: found -1 r-cran-pammtools/0.5.8-1
| Severity: serious
| Tags: sid bookworm
| User: debian-ci at lists.debian.org
| Usertags: breaks needs-update
| 
| Dear maintainer(s),
| 
| With a recent upload of mvtnorm the autopkgtest of r-cran-pammtools 
| fails in testing when that autopkgtest is run with the binary packages 
| of mvtnorm from unstable. It passes when run with only packages from 
| testing. In tabular form:
| 
|                         pass            fail
| mvtnorm                from testing    1.2-2-1
| r-cran-pammtools       from testing    0.5.8-1
| versioned deps [0]     from testing    from unstable
| all others             from testing    from testing
| 
| I note that with both versions from unstable the test also passes, which 
| hints at either a missing *versioned* test dependency in 
| r-cran-pammtools (if it *only* breaks the test), or missing versioned 
| Breaks in mvtnorm *and* a missing versioned Depends in r-cran-pammtools 
| if r-cran-pammtools is really broken with the wrong version of mvtnorm.
| 
| I copied some of the output at the bottom of this report.
| 
| Currently this regression is blocking both the migration of mvtnorm to 
| testing [1] and the migration of r-cran-pammtools to testing [2]. Due to 
| the nature of this issue, I filed this bug report against both packages. 
| Can you please investigate the situation and reassign the bug to the 
| right package?
| 
| More information about this bug and the reason for filing it can be found on
| https://wiki.debian.org/ContinuousIntegration/RegressionEmailInformation
| 
| Paul
| 
| [0] You can see what packages were added from the second line of the log 
| file quoted below. The migration software adds source package from 
| unstable to the list if they are needed to install packages from 
| mvtnorm/1.2-2-1. I.e. due to versioned dependencies or breaks/conflicts.
| [1] https://qa.debian.org/excuses.php?package=mvtnorm
| [2] https://qa.debian.org/excuses.php?package=r-cran-pammtools
| 
| https://ci.debian.net/data/autopkgtest/testing/amd64/r/r-cran-pammtools/34886689/log.gz
| 
|   46s BEGIN TEST testthat.R
|   46s  46s R version 4.3.1 (2023-06-16) -- "Beagle Scouts"
|   46s Copyright (C) 2023 The R Foundation for Statistical Computing
|   46s Platform: x86_64-pc-linux-gnu (64-bit)
|   46s  46s R is free software and comes with ABSOLUTELY NO WARRANTY.
|   46s You are welcome to redistribute it under certain conditions.
|   46s Type 'license()' or 'licence()' for distribution details.
|   46s  46s R is a collaborative project with many contributors.
|   46s Type 'contributors()' for more information and
|   46s 'citation()' on how to cite R or R packages in publications.
|   46s  46s Type 'demo()' for some demos, 'help()' for on-line help, or
|   46s 'help.start()' for an HTML browser interface to help.
|   46s Type 'q()' to quit R.
|   46s  46s > Sys.setenv("R_TESTS" = "") # see 
| https://github.com/hadley/testthat/issues/86
|   46s > library(testthat)
|   46s > library(checkmate)
|   46s > library(dplyr)
|   47s  47s Attaching package: ‘dplyr’
|   47s  47s The following object is masked from ‘package:testthat’:
|   47s  47s     matches
|   47s  47s The following objects are masked from ‘package:stats’:
|   47s  47s     filter, lag
|   47s  47s The following objects are masked from ‘package:base’:
|   47s  47s     intersect, setdiff, setequal, union
|   47s  47s > library(purrr)
|   47s  47s Attaching package: ‘purrr’
|   47s  47s The following object is masked from ‘package:testthat’:
|   47s  47s     is_null
|   47s  47s > library(tidyr)
|   47s  47s Attaching package: ‘tidyr’
|   47s  47s The following object is masked from ‘package:testthat’:
|   47s  47s     matches
|   47s  47s > # library(pammtools)
|   47s >  47s > test_check("pammtools")
|   47s Loading required package: pammtools
|   48s  48s Attaching package: ‘pammtools’
|   48s  48s The following object is masked from ‘package:stats’:
|   48s  48s     filter
|   48s  59s [ FAIL 2 | WARN 8 | SKIP 0 | PASS 341 ]
|   59s  59s ══ Failed tests 
| ════════════════════════════════════════════════════════════════
|   59s ── Error ('test-cumulative-effect.R:29'): LL helpers and as_ped 
| produce equivalent LL windows ──
|   59s Error in `vectbl_assign(x[[j]], i, recycled_value[[j]])`: DLL 
| requires the use of native symbols
|   59s Backtrace:
|   59s      ▆
|   59s   1. ├─pammtools::sim_pexp(...) at test-cumulative-effect.R:29:2
|   59s   2. │ ├─base::suppressMessages(ped <- ped %>% 
| left_join(reduce(df2, full_join)))
|   59s   3. │ │ └─base::withCallingHandlers(...)
|   59s   4. │ └─ped %>% left_join(reduce(df2, full_join))
|   59s   5. ├─dplyr::left_join(., reduce(df2, full_join))
|   59s   6. ├─pammtools:::left_join.ped(., reduce(df2, full_join))
|   59s   7. │ └─pammtools:::ped_classes(y)
|   59s   8. │   └─class(ped) %in% ...
|   59s   9. └─purrr::reduce(df2, full_join)
|   59s  10.   └─purrr:::reduce_impl(.x, .f, ..., .init = .init, .dir = .dir)
|   59s  11.     ├─dplyr (local) fn(out, elt, ...)
|   59s  12.     └─dplyr:::full_join.data.frame(out, elt, ...)
|   59s  13.       └─dplyr:::join_mutate(...)
|   59s  14.         ├─base::`[<-`(`*tmp*`, new_rows, names(y_key), value 
| = `<tibble[,2]>`)
|   59s  15.         └─tibble:::`[<-.tbl_df`(`*tmp*`, new_rows, 
| names(y_key), value = `<tibble[,2]>`)
|   59s  16.           └─tibble:::tbl_subassign(x, i, j, value, i_arg, 
| j_arg, substitute(value))
|   59s  17.             └─tibble:::tbl_subassign_row(xj, i, value, i_arg, 
| value_arg)
|   59s  18.               ├─base::withCallingHandlers(...)
|   59s  19.               └─tibble:::vectbl_assign(x[[j]], i, 
| recycled_value[[j]])
|   59s ── Error ('test-simple-transform.R:50'): Transformation of regular 
| survival data works ──
|   59s Error in `vectbl_assign(x[[j]], i, recycled_value[[j]])`: DLL 
| requires the use of native symbols
|   59s Backtrace:
|   59s     ▆
|   59s  1. ├─base::`[<-`(`*tmp*`, 6, "days", value = `<dbl>`) at 
| test-simple-transform.R:50:2
|   59s  2. └─tibble:::`[<-.tbl_df`(`*tmp*`, 6, "days", value = `<dbl>`) 
| at test-simple-transform.R:50:2
|   59s  3.   └─tibble:::tbl_subassign(x, i, j, value, i_arg, j_arg, 
| substitute(value))
|   59s  4.     └─tibble:::tbl_subassign_row(xj, i, value, i_arg, value_arg)
|   59s  5.       ├─base::withCallingHandlers(...)
|   59s  6.       └─tibble:::vectbl_assign(x[[j]], i, recycled_value[[j]])
|   59s  59s [ FAIL 2 | WARN 8 | SKIP 0 | PASS 341 ]
|   59s Error: Test failures
|   59s Execution halted
|   60s autopkgtest [14:19:07]: test run-unit-test
| 
| x[DELETED ATTACHMENT OpenPGP_signature, application/pgp-signature]

-- 
dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org



More information about the R-pkg-team mailing list