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

Cannot load datasets in BioC 3.19 (HTTP 403 error) #23

Closed
PeteHaitch opened this issue May 1, 2024 · 9 comments · Fixed by ArtifactDB/gypsum-R#6
Closed

Cannot load datasets in BioC 3.19 (HTTP 403 error) #23

PeteHaitch opened this issue May 1, 2024 · 9 comments · Fixed by ArtifactDB/gypsum-R#6

Comments

@PeteHaitch
Copy link

PeteHaitch commented May 1, 2024

Not sure if this is a temporary thing and/or related to the in-progress release of BioC 3.19:

suppressPackageStartupMessages(library(celldex))
ImmGenData()
#> Error: SignatureDoesNotMatch (HTTP 403). The request signature we calculated does not match the signature you provided. Check your secret access key and signing method.
MouseRNAseqData()
#> Error: SignatureDoesNotMatch (HTTP 403). The request signature we calculated does not match the signature you provided. Check your secret access key and signing method.
HumanPrimaryCellAtlasData()
#> Error: SignatureDoesNotMatch (HTTP 403). The request signature we calculated does not match the signature you provided. Check your secret access key and signing method.

Created on 2024-05-01 with reprex v2.1.0

Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.4.0 (2024-04-24)
#>  os       macOS Sonoma 14.4.1
#>  system   aarch64, darwin20
#>  ui       X11
#>  language (EN)
#>  collate  en_US.UTF-8
#>  ctype    en_US.UTF-8
#>  tz       Australia/Melbourne
#>  date     2024-05-01
#>  pandoc   3.1.1 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package              * version   date (UTC) lib source
#>  abind                  1.4-5     2016-07-21 [1] CRAN (R 4.4.0)
#>  alabaster.base         1.3.23    2024-03-13 [1] Bioconductor 3.19 (R 4.4.0)
#>  alabaster.matrix       1.3.13    2024-03-01 [1] Bioconductor 3.19 (R 4.4.0)
#>  alabaster.ranges       1.3.3     2024-02-27 [1] Bioconductor 3.19 (R 4.4.0)
#>  alabaster.schemas      1.3.1     2023-12-04 [1] Bioconductor 3.19 (R 4.4.0)
#>  alabaster.se           1.3.4     2024-02-23 [1] Bioconductor 3.19 (R 4.4.0)
#>  AnnotationDbi          1.65.2    2023-11-03 [1] Bioconductor
#>  AnnotationHub          3.11.5    2024-04-19 [1] Bioconductor 3.19 (R 4.4.0)
#>  Biobase              * 2.63.1    2024-04-01 [1] Bioconductor 3.19 (R 4.4.0)
#>  BiocFileCache          2.11.2    2024-03-27 [1] Bioconductor 3.19 (R 4.4.0)
#>  BiocGenerics         * 0.49.1    2023-11-01 [1] Bioconductor
#>  BiocManager            1.30.22   2023-08-08 [1] CRAN (R 4.4.0)
#>  BiocVersion            3.19.1    2023-10-26 [1] Bioconductor
#>  Biostrings             2.71.6    2024-04-26 [1] Bioconductor 3.19 (R 4.4.0)
#>  bit                    4.0.5     2022-11-15 [1] CRAN (R 4.4.0)
#>  bit64                  4.0.5     2020-08-30 [1] CRAN (R 4.4.0)
#>  bitops                 1.0-7     2021-04-24 [1] CRAN (R 4.4.0)
#>  blob                   1.2.4     2023-03-17 [1] CRAN (R 4.4.0)
#>  cachem                 1.0.8     2023-05-01 [1] CRAN (R 4.4.0)
#>  celldex              * 1.13.2    2024-03-05 [1] Bioconductor 3.19 (R 4.4.0)
#>  cli                    3.6.2     2023-12-11 [1] CRAN (R 4.4.0)
#>  crayon                 1.5.2     2022-09-29 [1] CRAN (R 4.4.0)
#>  curl                   5.2.1     2024-03-01 [1] CRAN (R 4.4.0)
#>  DBI                    1.2.2     2024-02-16 [1] CRAN (R 4.4.0)
#>  dbplyr                 2.5.0     2024-03-19 [1] CRAN (R 4.4.0)
#>  DelayedArray           0.29.9    2024-03-01 [1] Bioconductor 3.19 (R 4.4.0)
#>  DelayedMatrixStats     1.25.4    2024-04-26 [1] Bioconductor 3.19 (R 4.4.0)
#>  digest                 0.6.35    2024-03-11 [1] CRAN (R 4.4.0)
#>  dplyr                  1.1.4     2023-11-17 [1] CRAN (R 4.4.0)
#>  evaluate               0.23      2023-11-01 [1] CRAN (R 4.4.0)
#>  ExperimentHub          2.11.3    2024-04-17 [1] Bioconductor 3.19 (R 4.4.0)
#>  fansi                  1.0.6     2023-12-08 [1] CRAN (R 4.4.0)
#>  fastmap                1.1.1     2023-02-24 [1] CRAN (R 4.4.0)
#>  filelock               1.0.3     2023-12-11 [1] CRAN (R 4.4.0)
#>  fs                     1.6.4     2024-04-25 [1] CRAN (R 4.4.0)
#>  generics               0.1.3     2022-07-05 [1] CRAN (R 4.4.0)
#>  GenomeInfoDb         * 1.39.14   2024-04-17 [1] Bioconductor 3.19 (R 4.4.0)
#>  GenomeInfoDbData       1.2.12    2024-03-28 [1] Bioconductor
#>  GenomicRanges        * 1.55.4    2024-03-18 [1] Bioconductor 3.19 (R 4.4.0)
#>  glue                   1.7.0     2024-01-09 [1] CRAN (R 4.4.0)
#>  gypsum                 0.99.19   2024-04-26 [1] Bioconductor 3.19 (R 4.4.0)
#>  HDF5Array              1.31.6    2024-02-28 [1] Bioconductor 3.19 (R 4.4.0)
#>  htmltools              0.5.8.1   2024-04-04 [1] CRAN (R 4.4.0)
#>  httr                   1.4.7     2023-08-15 [1] CRAN (R 4.4.0)
#>  httr2                  1.0.1     2024-04-01 [1] CRAN (R 4.4.0)
#>  IRanges              * 2.37.1    2024-01-19 [1] Bioconductor 3.19 (R 4.4.0)
#>  jsonlite               1.8.8     2023-12-04 [1] CRAN (R 4.4.0)
#>  KEGGREST               1.43.1    2024-04-26 [1] Bioconductor 3.19 (R 4.4.0)
#>  knitr                  1.46      2024-04-06 [1] CRAN (R 4.4.0)
#>  lattice                0.22-6    2024-03-20 [1] CRAN (R 4.4.0)
#>  lifecycle              1.0.4     2023-11-07 [1] CRAN (R 4.4.0)
#>  magrittr               2.0.3     2022-03-30 [1] CRAN (R 4.4.0)
#>  Matrix                 1.7-0     2024-03-22 [1] CRAN (R 4.4.0)
#>  MatrixGenerics       * 1.15.1    2024-04-19 [1] Bioconductor 3.19 (R 4.4.0)
#>  matrixStats          * 1.3.0     2024-04-11 [1] CRAN (R 4.4.0)
#>  memoise                2.0.1     2021-11-26 [1] CRAN (R 4.4.0)
#>  paws.common            0.7.2     2024-04-09 [1] CRAN (R 4.4.0)
#>  paws.storage           0.5.0     2024-01-09 [1] CRAN (R 4.4.0)
#>  pillar                 1.9.0     2023-03-22 [1] CRAN (R 4.4.0)
#>  pkgconfig              2.0.3     2019-09-22 [1] CRAN (R 4.4.0)
#>  png                    0.1-8     2022-11-29 [1] CRAN (R 4.4.0)
#>  R6                     2.5.1     2021-08-19 [1] CRAN (R 4.4.0)
#>  rappdirs               0.3.3     2021-01-31 [1] CRAN (R 4.4.0)
#>  Rcpp                   1.0.12    2024-01-09 [1] CRAN (R 4.4.0)
#>  RCurl                  1.98-1.14 2024-01-09 [1] CRAN (R 4.4.0)
#>  reprex                 2.1.0     2024-01-11 [1] CRAN (R 4.4.0)
#>  rhdf5                  2.47.7    2024-04-17 [1] Bioconductor 3.19 (R 4.4.0)
#>  rhdf5filters           1.15.5    2024-04-17 [1] Bioconductor 3.19 (R 4.4.0)
#>  Rhdf5lib               1.25.3    2024-04-04 [1] Bioconductor 3.19 (R 4.4.0)
#>  rlang                  1.1.3     2024-01-10 [1] CRAN (R 4.4.0)
#>  rmarkdown              2.26      2024-03-05 [1] CRAN (R 4.4.0)
#>  RSQLite                2.3.6     2024-03-31 [1] CRAN (R 4.4.0)
#>  rstudioapi             0.16.0    2024-03-24 [1] CRAN (R 4.4.0)
#>  S4Arrays               1.3.7     2024-04-17 [1] Bioconductor 3.19 (R 4.4.0)
#>  S4Vectors            * 0.41.7    2024-04-26 [1] Bioconductor 3.19 (R 4.4.0)
#>  sessioninfo            1.2.2     2021-12-06 [1] CRAN (R 4.4.0)
#>  SparseArray            1.3.7     2024-04-28 [1] Bioconductor 3.19 (R 4.4.0)
#>  sparseMatrixStats      1.15.1    2024-04-17 [1] Bioconductor 3.19 (R 4.4.0)
#>  SummarizedExperiment * 1.33.3    2024-01-23 [1] Bioconductor 3.19 (R 4.4.0)
#>  tibble                 3.2.1     2023-03-20 [1] CRAN (R 4.4.0)
#>  tidyselect             1.2.1     2024-03-11 [1] CRAN (R 4.4.0)
#>  UCSC.utils             0.99.7    2024-04-17 [1] Bioconductor 3.19 (R 4.4.0)
#>  utf8                   1.2.4     2023-10-22 [1] CRAN (R 4.4.0)
#>  vctrs                  0.6.5     2023-12-01 [1] CRAN (R 4.4.0)
#>  withr                  3.0.0     2024-01-16 [1] CRAN (R 4.4.0)
#>  xfun                   0.43      2024-03-25 [1] CRAN (R 4.4.0)
#>  xml2                   1.3.6     2023-12-04 [1] CRAN (R 4.4.0)
#>  XVector                0.43.1    2024-01-12 [1] Bioconductor 3.19 (R 4.4.0)
#>  yaml                   2.3.8     2023-12-11 [1] CRAN (R 4.4.0)
#>  zlibbioc               1.49.3    2024-03-13 [1] Bioconductor 3.19 (R 4.4.0)
#> 
#>  [1] /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────
@LTLA
Copy link
Member

LTLA commented May 1, 2024

Hm. I don't have any problems, even when forcibly re-downloading, e.g., with:

se <- fetchReference("immgen", "2024-02-26", realize.assays = TRUE, overwrite=TRUE)

@PeteHaitch
Copy link
Author

Hmm, it's happening for me locally on home network and when run on a WEHI server.
Also for scRNAseq resources:

scRNAseq::GrunHSCData()
Error: SignatureDoesNotMatch (HTTP 403). The request signature we calculated does not match the signature you provided. Check your secret access key and signing method. 

@LTLA
Copy link
Member

LTLA commented May 1, 2024

Just tried at work, doesn't happen to me on either Mac or Linux. Dunno what's going on.

You'll have to do some debugging on your end. The relevant function is gypsum::saveVersion. I'm going to guess that the error occurs inside gypsum::listFiles(), probably in the list_objects_v2 call.

@PeteHaitch
Copy link
Author

PeteHaitch commented May 1, 2024

I'll see if I can get someone else to reproduce it.
The traceback does show it involves the list_object_v2() call:

#> traceback()
10: stop(error)
9: handler$fn(request)
8: run(request, retry)
7: retry(request)
6: send_request(request)
5: s$list_objects_v2(config$bucket, Prefix = actual.prefix, ContinuationToken = token)
4: listFiles(project, asset, version, config = config)
3: saveVersion(package, name, version, cache = cache, overwrite = overwrite)
2: fetchReference("immgen", "2024-02-26", realize.assays = TRUE)
1: ImmGenData()

at which point:

#> config$bucket
[1] "gypsum-prod"
#> actual.prefix
[1] "celldex/immgen/2024-02-26/"
#> token
NULL

@LTLA
Copy link
Member

LTLA commented May 2, 2024

Maybe paws.storage is prioritizing AWS credentials from elsewhere, instead of using that ones supplied by publicS3Config(). This could be diagnosed by running the following:

config0 <- gypsum::publicS3Config()
s <- gypsum:::create_s3(config0)
debug(s$list_objects_v2)
listing <- s$list_objects_v2(config$bucket, Prefix = actual.prefix)

Run down until config is defined inside list_objects_v2, and then have a look at str(config$credentials$creds) and see if they match up with config0.

@PeteHaitch
Copy link
Author

Not sure I've understood what you're asking for.
But this is what I have and the elements roughly in common between config and config0 seem to match:

# Replicating what happens what I run celldex::ImmGenData()
config <- gypsum::publicS3Config(cache = gypsum:::cacheDirectory())
s <- gypsum:::create_s3(config)
actual.prefix <- "celldex/immgen/2024-02-26/"
token <- NULL
listing <- s$list_objects_v2(config$bucket, Prefix = actual.prefix, 
                             ContinuationToken = token)

# https://github.com/LTLA/celldex/issues/23#issuecomment-2089328586
config0 <- gypsum::publicS3Config()
s <- gypsum:::create_s3(config0)
debug(s$list_objects_v2)
listing <- s$list_objects_v2(config$bucket, Prefix = actual.prefix)

debugging in: s$list_objects_v2(config$bucket, Prefix = actual.prefix)
debug: {
    op <- new_operation(name = "ListObjectsV2", http_method = "GET", 
        http_path = "/{Bucket}?list-type=2", paginator = list(input_token = "ContinuationToken", 
            limit_key = "MaxKeys", output_token = "NextContinuationToken", 
            result_key = list("Contents", "CommonPrefixes")))
    input <- .s3$list_objects_v2_input(Bucket = Bucket, Delimiter = Delimiter, 
        EncodingType = EncodingType, MaxKeys = MaxKeys, Prefix = Prefix, 
        ContinuationToken = ContinuationToken, FetchOwner = FetchOwner, 
        StartAfter = StartAfter, RequestPayer = RequestPayer, 
        ExpectedBucketOwner = ExpectedBucketOwner, OptionalObjectAttributes = OptionalObjectAttributes)
    output <- .s3$list_objects_v2_output()
    config <- get_config()
    svc <- .s3$service(config)
    request <- new_request(svc, op, input, output)
    response <- send_request(request)
    return(response)
}
Browse[1]> 
debug: op <- new_operation(name = "ListObjectsV2", http_method = "GET", 
    http_path = "/{Bucket}?list-type=2", paginator = list(input_token = "ContinuationToken", 
        limit_key = "MaxKeys", output_token = "NextContinuationToken", 
        result_key = list("Contents", "CommonPrefixes")))
Browse[1]> 
debug: input <- .s3$list_objects_v2_input(Bucket = Bucket, Delimiter = Delimiter, 
    EncodingType = EncodingType, MaxKeys = MaxKeys, Prefix = Prefix, 
    ContinuationToken = ContinuationToken, FetchOwner = FetchOwner, 
    StartAfter = StartAfter, RequestPayer = RequestPayer, ExpectedBucketOwner = ExpectedBucketOwner, 
    OptionalObjectAttributes = OptionalObjectAttributes)
Browse[1]> 
debug: output <- .s3$list_objects_v2_output()
Browse[1]> 
debug: config <- get_config()
Browse[1]> 
debug: svc <- .s3$service(config)

Browse[1]> names(config$credentials$creds)
[1] "access_key_id"     "secret_access_key" "session_token"     "access_token"      "expiration"        "provider_name"    
Browse[1]> names(config0)
[1] "endpoint" "bucket"   "key"      "secret" 
Browse[1]> identical(as.character(config$credentials$creds$access_key_id), config0$key)
[1] TRUE
Browse[1]> identical(as.character(config$credentials$creds$secret_access_key), config0$secret)
[1] TRUE

I can't find any other AWS credentials on any of the 2 laptops and 1 server where I'm having problems with this.

@LTLA
Copy link
Member

LTLA commented May 7, 2024

Well, I dunno what's going on with the S3 API. So I just modified gypsum to download files and such via HTTP instead. Try installing the latest master at https://github.com/ArtifactDB/gypsum-R and it should fix the problem.

@LTLA
Copy link
Member

LTLA commented May 7, 2024

FWIW my new suspicion is that auto is not resolving correctly. Perhaps try

config <- gypsum::publicS3Config()

s <- paws.storage::s3(
    endpoint=config$endpoint,
    region="us-east-1", # swapped with "auto"
    credentials=list(
        creds=list(
            access_key_id=config$key,
            secret_access_key=config$secret
        )
    )
)

s$list_objects_v2(config$bucket, Delimiter="/")

With and without "auto" in the region, and see if it changes anything.

@PeteHaitch
Copy link
Author

PeteHaitch commented May 8, 2024

No difference apart from the obvious in specifying the region:

config <- gypsum::publicS3Config()

s1 <- paws.storage::s3(
  endpoint=config$endpoint,
  region="us-east-1", # swapped with "auto"
  credentials=list(
    creds=list(
      access_key_id=config$key,
      secret_access_key=config$secret
    )
  )
)

s1$list_objects_v2(config$bucket, Delimiter="/")
#> $IsTruncated
#> [1] FALSE
#> 
#> $Contents
#> list()
#> 
#> $Name
#> [1] "gypsum-prod"
#> 
#> $Prefix
#> character(0)
#> 
#> $Delimiter
#> [1] "/"
#> 
#> $MaxKeys
#> [1] 1000
#> 
#> $CommonPrefixes
#> $CommonPrefixes[[1]]
#> $CommonPrefixes[[1]]$Prefix
#> [1] "..logs/"
#> 
#> 
#> $CommonPrefixes[[2]]
#> $CommonPrefixes[[2]]$Prefix
#> [1] "celldex/"
#> 
#> 
#> $CommonPrefixes[[3]]
#> $CommonPrefixes[[3]]$Prefix
#> [1] "scRNAseq/"
#> 
#> 
#> $CommonPrefixes[[4]]
#> $CommonPrefixes[[4]]$Prefix
#> [1] "test-R-perms/"
#> 
#> 
#> $CommonPrefixes[[5]]
#> $CommonPrefixes[[5]]$Prefix
#> [1] "test-R-quota/"
#> 
#> 
#> $CommonPrefixes[[6]]
#> $CommonPrefixes[[6]]$Prefix
#> [1] "test-R/"
#> 
#> 
#> 
#> $EncodingType
#> character(0)
#> 
#> $KeyCount
#> [1] 6
#> 
#> $ContinuationToken
#> character(0)
#> 
#> $NextContinuationToken
#> character(0)
#> 
#> $StartAfter
#> character(0)
#> 
#> $RequestCharged
#> character(0)


s2 <- paws.storage::s3(
  endpoint=config$endpoint,
  # region="us-east-1", # swapped with "auto"
  region="auto", # swapped with "auto"
  credentials=list(
    creds=list(
      access_key_id=config$key,
      secret_access_key=config$secret
    )
  )
)

s2$list_objects_v2(config$bucket, Delimiter="/")
#> $IsTruncated
#> [1] FALSE
#> 
#> $Contents
#> list()
#> 
#> $Name
#> [1] "gypsum-prod"
#> 
#> $Prefix
#> character(0)
#> 
#> $Delimiter
#> [1] "/"
#> 
#> $MaxKeys
#> [1] 1000
#> 
#> $CommonPrefixes
#> $CommonPrefixes[[1]]
#> $CommonPrefixes[[1]]$Prefix
#> [1] "..logs/"
#> 
#> 
#> $CommonPrefixes[[2]]
#> $CommonPrefixes[[2]]$Prefix
#> [1] "celldex/"
#> 
#> 
#> $CommonPrefixes[[3]]
#> $CommonPrefixes[[3]]$Prefix
#> [1] "scRNAseq/"
#> 
#> 
#> $CommonPrefixes[[4]]
#> $CommonPrefixes[[4]]$Prefix
#> [1] "test-R-perms/"
#> 
#> 
#> $CommonPrefixes[[5]]
#> $CommonPrefixes[[5]]$Prefix
#> [1] "test-R-quota/"
#> 
#> 
#> $CommonPrefixes[[6]]
#> $CommonPrefixes[[6]]$Prefix
#> [1] "test-R/"
#> 
#> 
#> 
#> $EncodingType
#> character(0)
#> 
#> $KeyCount
#> [1] 6
#> 
#> $ContinuationToken
#> character(0)
#> 
#> $NextContinuationToken
#> character(0)
#> 
#> $StartAfter
#> character(0)
#> 
#> $RequestCharged
#> character(0)

all.equal(s1, s2)
#> [1] "Component \".internal\": Component \"config\": Component \"region\": 1 string mismatch"
Session info
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.4.0 (2024-04-24)
#>  os       macOS Sonoma 14.4.1
#>  system   aarch64, darwin20
#>  ui       X11
#>  language (EN)
#>  collate  en_US.UTF-8
#>  ctype    en_US.UTF-8
#>  tz       Australia/Melbourne
#>  date     2024-05-08
#>  pandoc   3.1.11 @ /Applications/RStudio.app/Contents/Resources/app/quarto/bin/tools/aarch64/ (via rmarkdown)
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package      * version date (UTC) lib source
#>  cli            3.6.2   2023-12-11 [1] CRAN (R 4.4.0)
#>  crayon         1.5.2   2022-09-29 [1] CRAN (R 4.4.0)
#>  curl           5.2.1   2024-03-01 [1] CRAN (R 4.4.0)
#>  digest         0.6.35  2024-03-11 [1] CRAN (R 4.4.0)
#>  evaluate       0.23    2023-11-01 [1] CRAN (R 4.4.0)
#>  fastmap        1.1.1   2023-02-24 [1] CRAN (R 4.4.0)
#>  filelock       1.0.3   2023-12-11 [1] CRAN (R 4.4.0)
#>  fs             1.6.4   2024-04-25 [1] CRAN (R 4.4.0)
#>  glue           1.7.0   2024-01-09 [1] CRAN (R 4.4.0)
#>  gypsum         1.0.0   2024-04-30 [1] Bioconductor 3.19 (R 4.4.0)
#>  htmltools      0.5.8.1 2024-04-04 [1] CRAN (R 4.4.0)
#>  httr           1.4.7   2023-08-15 [1] CRAN (R 4.4.0)
#>  httr2          1.0.1   2024-04-01 [1] CRAN (R 4.4.0)
#>  jsonlite       1.8.8   2023-12-04 [1] CRAN (R 4.4.0)
#>  knitr          1.46    2024-04-06 [1] CRAN (R 4.4.0)
#>  lifecycle      1.0.4   2023-11-07 [1] CRAN (R 4.4.0)
#>  magrittr       2.0.3   2022-03-30 [1] CRAN (R 4.4.0)
#>  paws.common    0.7.2   2024-04-09 [1] CRAN (R 4.4.0)
#>  paws.storage   0.5.0   2024-01-09 [1] CRAN (R 4.4.0)
#>  R6             2.5.1   2021-08-19 [1] CRAN (R 4.4.0)
#>  rappdirs       0.3.3   2021-01-31 [1] CRAN (R 4.4.0)
#>  Rcpp           1.0.12  2024-01-09 [1] CRAN (R 4.4.0)
#>  reprex         2.1.0   2024-01-11 [1] CRAN (R 4.4.0)
#>  rlang          1.1.3   2024-01-10 [1] CRAN (R 4.4.0)
#>  rmarkdown      2.26    2024-03-05 [1] CRAN (R 4.4.0)
#>  rstudioapi     0.16.0  2024-03-24 [1] CRAN (R 4.4.0)
#>  sessioninfo    1.2.2   2021-12-06 [1] CRAN (R 4.4.0)
#>  withr          3.0.0   2024-01-16 [1] CRAN (R 4.4.0)
#>  xfun           0.43    2024-03-25 [1] CRAN (R 4.4.0)
#>  xml2           1.3.6   2023-12-04 [1] CRAN (R 4.4.0)
#>  yaml           2.3.8   2023-12-11 [1] CRAN (R 4.4.0)
#> 
#>  [1] /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library
#> 
#> ──────────────────────────────────────────────────────────────────────────────

But using current master at https://github.com/ArtifactDB/gypsum-R does work!
Thank you for fixing this for me.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants