TileDB-Inc / tiledbsoma-feedstock

A conda-smithy repository for tiledbsoma.
BSD 3-Clause "New" or "Revised" License
3 stars 4 forks source link

Bump somacore to 1.0.20 for nightly feedstock builds #205

Closed jdblischak closed 1 month ago

jdblischak commented 2 months ago

Closes #204

xref: https://github.com/TileDB-Inc/tiledbsoma-feedstock/issues/204#issuecomment-2380870438

This is a temporary workaround to accommodate the new somacore APIs introduced in https://github.com/single-cell-data/TileDB-SOMA/pull/3078.

While we could obviously imagine a more complex setup that extracts the current version of somacore from setup.py, I instead decided to keep this simple since this is the first time we've run into this particular problem (or at least the first in my recent memory). If new somacore APIs in the dev version start causing more frequent failures in the nightly feedstock builds, then we can revisit this to make it more robust.

Tested locally:

$ bash .github/scripts/nightly/update-recipe.sh
++ date +%Y%m%d
+ the_date=20240930
+ sed -i 's/{% set version = "\(.*\)" %}/{% set version = "\1.dev20240930" %}/' recipe/meta.yaml
+ sed -i 's/url: https:\/\/github.com\/single-cell-data\/TileDB-SOMA\/archive\/{{ version }}.tar.gz/git_url: https:\/\/github.com\/single-cell-data\/TileDB-SOMA.git/' recipe/meta.yaml
+ sed -i 's/sha256: .\+/git_rev: main\n  git_depth: -1/' recipe/meta.yaml
+ sed -i 's/somacore ==.\+/somacore ==1.0.18/' recipe/meta.yaml
+ git --no-pager diff recipe/meta.yaml
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 959f311..134583a 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -1,5 +1,5 @@
 {% set name = "tiledbsoma" %}
-{% set version = "1.14.2" %}
+{% set version = "1.14.2.dev20240930" %}
 {% set sha256 = "b459976562fdea0c5a2ae03843b44e82e0a1d1f0721f3452d19ba49ad8d62231" %}
 # This is the SHA256 of
 #   TileDB-SOMA-i.j.k.tar.gz
@@ -17,8 +17,9 @@ package:

 # Post-tag real thing:
 source:
-  url: https://github.com/single-cell-data/TileDB-SOMA/archive/{{ version }}.tar.gz
-  sha256: {{ sha256 }}
+  git_url: https://github.com/single-cell-data/TileDB-SOMA.git
+  git_rev: main
+  git_depth: -1

 # Pre-tag canary "will Conda be green if we release":
 #source:
@@ -104,7 +105,7 @@ outputs:
         - numba          # [py<=37]
         - attrs >=22.2
         # Keep this in sync with TileDB-SOMA's somacore version requirement.
-        - somacore ==1.0.17
+        - somacore ==1.0.18
         - scanpy >=1.9.2
     test:
       imports:
jdblischak commented 2 months ago

Ugh. More conda solver errors. Same thing happened on my fork after syncing main this morning. The conda solver errors are sparse, but given that the only passing build is the one that pins old versions, it's almost certainly due to one of the various in-progress conda-forge migrations.

jdblischak commented 2 months ago

Restarted the failed builds šŸ¤ž

johnkerl commented 2 months ago

@jdblischak there's a 1.0.19 already -- my apologies for not letting you know ... I'll put up the somacore-feedstock PR ...

johnkerl commented 2 months ago

@jdblischak https://github.com/TileDB-Inc/somacore-feedstock/pull/20

jdblischak commented 2 months ago

I restarted the osx-64 build again. I don't understand why it is the only one with a solver error. I confirmed that the last successful osx-64 nightly from Thursday 9/27 installed pyarrow 17, which is the latest version, and already has all the latest migrations.

jdblischak commented 2 months ago

Looks like now r-tiledbsoma has the solver error. But it too installs r-arrow/libarrow 17, so this shouldn't be a problem.

johnkerl commented 2 months ago

@jdblischak is this b/c https://anaconda.org/conda-forge/r-tiledb/files only has 0.30.0?

jdblischak commented 2 months ago

is this b/c https://anaconda.org/conda-forge/r-tiledb/files only has 0.30.0?

I don't think so. r-tiledb 0.30.0 satisfies the current requirements

https://github.com/TileDB-Inc/tiledbsoma-feedstock/blob/310f182f2d4b02d26bd2c3649cc63c42975a2f2a/recipe/meta.yaml#L181

jdblischak commented 1 month ago

I specifically tested the ability of the Python builds to solve by disabling the R builds on my fork. The py3/py310/py311 builds all solved on osx-64.

https://github.com/jdblischak/tiledbsoma-feedstock/tree/nightly-troubleshoot https://dev.azure.com/jdblischak/feedstock-builds/_build/results?buildId=975&view=results

So the current solver error is limited to the specific case of r-tiledbsoma on osx-64 šŸ¤·

jdblischak commented 1 month ago

Updated for current somacore requirement of 1.0.20 (https://github.com/single-cell-data/TileDB-SOMA/pull/3120)

Also curious to see if osx-64 conda solver error has been resolved by time

jdblischak commented 1 month ago

@johnkerl I fixed the osx-64 build! I did it by pinning libtiledb to 2.26.1 during the libtiledbsoma build. This allows r-tiledbsoma to be built against 2.26.1. But then at runtime it can be installed with 2.26.2 (I confirmed this via the recipe test). We can remove this workaround when we migrate to 2.27.

Let's merge so that we can fix the nightly builds and also prepare for 1.14.3

johnkerl commented 1 month ago

@jdblischak 1.14.3 is R-only and I don't see a need for Conda feedstock ... cc @mojaveazure

mojaveazure commented 1 month ago

I agree with @johnkerl; 1.14.3 does not need a Conda release. It's already up on R-universe which is all we need for the purposes of 1.14.3

jdblischak commented 1 month ago

@johnkerl @mojaveazure sounds good to me. I'm glad I didn't ask about 1.14.3 first, since seeing that release finally inspired the workaround I just merged šŸ˜„

jdblischak commented 1 month ago

Confirmed that nightly feedstock builds are once again passing

https://github.com/TileDB-Inc/tiledbsoma-feedstock/commit/b3fd6779ec797492691edfe69ddd00e787b31998 https://dev.azure.com/TileDB-Inc/CI/_build/results?buildId=40977&view=results