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

hictk: add v2.0.1 and bump deps #26078

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions recipes/hictk/all/conandata.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
sources:
"2.0.1":
url: "https://github.com/paulsengroup/hictk/archive/refs/tags/v2.0.1.tar.gz"
sha256: "bd12f87f6f33ea91f898d6b660e8dcca9f97b0aaf27719e867ab643cd705fced"
"1.0.0":
url: "https://github.com/paulsengroup/hictk/archive/refs/tags/v1.0.0.tar.gz"
sha256: "e337f52658a257eb6265e211dd3cef6b73db40bdc5b5a6433b47ce4faa6006fb"
Expand Down
20 changes: 13 additions & 7 deletions recipes/hictk/all/conanfile.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,18 +51,18 @@ def config_options(self):

def requirements(self):
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In paulsengroup/hictk@v1.0.0...v2.0.1#diff-2def7ae0f4 I see that a few new dependencies were added - are they missing here on pourpose?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct, they are left out on purpose :).

The reason is that the hictk repo hosts code for the C++ library (which is what is currently packaged by Conan) and a CLI application (and tests of course).
The dependencies omitted here are required by either the CLI application or the tests.

I have this command that I use to check I have not forgot to add some deps:

user@dev:/tmp$ find src/libhictk -type f -name "CMakeLists.txt" -exec  grep 'find_package' {} + | cut -f 2 -d : | sort -u

  find_package(Arrow REQUIRED QUIET)
find_package(bshoshany-thread-pool REQUIRED)
find_package(concurrentqueue REQUIRED)
  find_package(Eigen3 QUIET REQUIRED)
  find_package(Eigen3 REQUIRED QUIET)
find_package(FastFloat REQUIRED)
find_package(FMT REQUIRED)
find_package(HDF5 REQUIRED QUIET COMPONENTS C)
find_package(HighFive REQUIRED)
find_package(libdeflate REQUIRED)
find_package(phmap REQUIRED)
find_package(readerwriterqueue REQUIRED)
find_package(span-lite REQUIRED)
find_package(spdlog REQUIRED)
find_package(spdlog REQUIRED QUIET)
find_package(zstd REQUIRED)

if self.options.get_safe("with_arrow"):
self.requires("arrow/16.1.0")
self.requires("arrow/18.1.0")
self.requires("bshoshany-thread-pool/4.1.0")
self.requires("fast_float/6.1.1")
self.requires("fast_float/7.0.0")
if self.options.with_eigen:
self.requires("eigen/3.4.0")
self.requires("fmt/10.2.1")
self.requires("fmt/11.0.2")
self.requires("hdf5/1.14.3")
self.requires("highfive/2.9.0")
self.requires("libdeflate/1.20")
self.requires("parallel-hashmap/1.3.12") # Note: v1.3.12 is more recent than v1.37
self.requires("highfive/2.10.0")
self.requires("libdeflate/1.22")
self.requires("parallel-hashmap/1.4.0") # Note: v1.4.0 is more recent than v1.37
self.requires("span-lite/0.11.0")
self.requires("spdlog/1.14.1")
self.requires("spdlog/1.15.0")
self.requires("zstd/[>=1.5 <1.6]")

if Version(self.version) == "0.0.3":
Expand All @@ -85,6 +85,11 @@ def validate(self):
f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support."
)

if self.info.options.get_safe("with_arrow"):
AbrilRBS marked this conversation as resolved.
Show resolved Hide resolved
arrow = self.dependencies["arrow"]
if not arrow.options.compute:
raise ConanInvalidConfiguration(f"{self.ref} requires the dependency option arrow/*:compute=True")

def build_requirements(self):
self.tool_requires("cmake/[>=3.25 <4]")

Expand All @@ -98,6 +103,7 @@ def generate(self):
tc.variables["HICTK_BUILD_TOOLS"] = "OFF"
tc.variables["HICTK_ENABLE_GIT_VERSION_TRACKING"] = "OFF"
tc.variables["HICTK_ENABLE_TESTING"] = "OFF"
tc.variables["HICTK_ENABLE_FUZZY_TESTING"] = "OFF"
tc.variables["HICTK_WITH_ARROW"] = self.options.get_safe("with_arrow", False)
tc.variables["HICTK_WITH_EIGEN"] = self.options.with_eigen
tc.generate()
Expand Down
7 changes: 7 additions & 0 deletions recipes/hictk/all/test_package/test_package.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

#include "hictk/file.hpp"

#if __has_include("hictk/transformers/to_dataframe.hpp")
#include "hictk/transformers/to_dataframe.hpp" // test hictk/*:with_arrow
#endif

#if __has_include("hictk/transformers/to_dense_matrix.hpp")
#include "hictk/transformers/to_dense_matrix.hpp" // test hictk/*:with_eigen
#endif

int main(int argc, char** argv) {
try {
Expand Down
2 changes: 2 additions & 0 deletions recipes/hictk/config.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
versions:
"2.0.1":
folder: all
"1.0.0":
folder: all
"0.0.12":
Expand Down