-
Notifications
You must be signed in to change notification settings - Fork 26
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
[r] Controlled downgrade of TileDB-R to ensure matching TileDB Core #1994
Conversation
This pull request has been linked to Shortcut Story #38681: Add controlled downgrade of TileDB-R (in CI) to ensure matching TileDB Core versions. |
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## main #1994 +/- ##
===========================================
- Coverage 89.07% 75.96% -13.11%
===========================================
Files 34 126 +92
Lines 3578 10049 +6471
Branches 0 161 +161
===========================================
+ Hits 3187 7634 +4447
- Misses 391 2340 +1949
- Partials 0 75 +75
Flags with carried forward coverage won't be shown. Click here to find out more.
|
a33c505
to
ad61711
Compare
apis/r/tools/controlled_downgrade.R
Outdated
|
||
core_from_tiledb <- tiledb::tiledb_version(compact=TRUE) | ||
core_from_soma <- tiledbsoma:::libtiledbsoma_version(compact=TRUE) | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On #1993 I found it helpful to include
cat("core_from_tiledb", as.character(core_from_tiledb), "\n")
cat("core_from_soma", core_from_soma, "\n")
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes -- I developed this in another repo first (to keep things calmer here) and did similar things there.
37beead
to
11b37ac
Compare
Controlled downgrade is effective and in place as a repeatable process. I have had zero problems with this since then in CI, and releases are working well in this regard.
|
I don't have the energy to debate this endlessly but we had reports of failed installations just days ago. What we set up works if and only if the stars align and tiledb-r is not ahead. I maintain what we can do better. |
@eddelbuettel these are all for CI, and CI works. When @nguyenv is done with C++-ification and removing our dependency on TileDB-R (and TileDB-Py), this problem will cease to exist. |
We had reports from users being unable to install. That is not CI. |
Issue and/or context:
The TileDB-R package builds against TileDB Core, and while we can ensure a minimum version
we cannot ensure an exact version. That can lead to cases as right now where TileDB-R 0.23.0 is
at CRAN with a default of TileDB Core 2.19.0, yet TileDB-SOMA is still set up to build with TileDB
Core 2.18.2. This mismatch is undesirable but a little difficult to avoid for example in continuous
integration where R will always go to the newest package version.
As an experiment, @mojaveazure and I have set up two helper repos. The first ensures we can still build
the previous TileDB-R version at r-universe (which would otherwise pick newest versions from
CRAN and/or GitHub). The second deploys these builds in a particular R repository hosted on
GitHun from which we can install. Together, these provide a simple 'time machine' ability to
the previous binary.
To illustrate, by default we end with these packages (when running on Ubuntu 22.04 as for CI)
Whereas once we do a controlled downgrade we get
Changes:
The PR adds a new helper script and invokes it from the r-valgrind action for continuous integration.
Notes for Reviewer:
SC 38681