Skip to content

Commit 7e59661

Browse files
dudoslavihnorton
andauthored
Bump up tiledb version to 2.21.1 (#291)
* Bump up tiledb version to 2.21.1 * Fix releases.csv download in packaging build * Fix test failure due to exact float comparison --------- Co-authored-by: Isaiah Norton <[email protected]>
1 parent 365a008 commit 7e59661

File tree

5 files changed

+180
-65
lines changed

5 files changed

+180
-65
lines changed

apis/python/requirements-py.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
numpy==1.24.3
22
tiledb-cloud==0.10.24
3-
tiledb==0.26.0
3+
tiledb==0.27.0
44
scikit-learn==1.3.2

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ classifiers = [
1919

2020
dependencies = [
2121
"tiledb-cloud>=0.11",
22-
"tiledb>=0.26.0",
22+
"tiledb>=0.27.0",
2323
"typing-extensions", # for tiledb-cloud indirect, x-ref https://github.com/TileDB-Inc/TileDB-Cloud-Py/pull/428
2424
"scikit-learn",
2525
]
Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
#
2+
# FindTileDB_EP.cmake
3+
#
4+
#
5+
# The MIT License
6+
#
7+
# Copyright (c) 2023 TileDB, Inc.
8+
#
9+
# Permission is hereby granted, free of charge, to any person obtaining a copy
10+
# of this software and associated documentation files (the "Software"), to deal
11+
# in the Software without restriction, including without limitation the rights
12+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
13+
# copies of the Software, and to permit persons to whom the Software is
14+
# furnished to do so, subject to the following conditions:
15+
#
16+
# The above copyright notice and this permission notice shall be included in
17+
# all copies or substantial portions of the Software.
18+
#
19+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
20+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
21+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
22+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
23+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
24+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
25+
# THE SOFTWARE.
26+
27+
include(FetchContent)
28+
29+
function(fetch_tiledb_release_list VERSION EXPECTED_HASH)
30+
# Local constants
31+
set(UPSTREAM_URL "https://github.com/TileDB-Inc/TileDB/releases/download")
32+
33+
if(NOT VERSION)
34+
set(VERSION latest)
35+
endif()
36+
37+
if(${EXPECTED_HASH})
38+
file(DOWNLOAD
39+
${UPSTREAM_URL}/${VERSION}/releases.csv
40+
${CMAKE_CURRENT_BINARY_DIR}/releases.csv
41+
SHOW_PROGRESS
42+
EXPECTED_HASH ${EXPECTED_HASH}
43+
)
44+
else()
45+
message(WARNING "Downloading release list without SHA checksum!")
46+
file(DOWNLOAD
47+
${UPSTREAM_URL}/${VERSION}/releases.csv
48+
${CMAKE_CURRENT_BINARY_DIR}/releases.csv
49+
SHOW_PROGRESS
50+
)
51+
endif()
52+
53+
file(STRINGS
54+
${CMAKE_CURRENT_BINARY_DIR}/releases.csv
55+
RELLIST
56+
)
57+
58+
# Remove csv table headers
59+
list(POP_FRONT RELLIST)
60+
61+
foreach(LINE ${RELLIST})
62+
string(REPLACE "," ";" LINE ${LINE})
63+
list(LENGTH LINE LENGTH)
64+
65+
list(GET LINE 0 PLATFORM)
66+
list(GET LINE 1 URL)
67+
list(GET LINE 2 SHA)
68+
69+
set(RELEASE_VAR TILEDB_${PLATFORM})
70+
set(URL_${RELEASE_VAR} ${URL} PARENT_SCOPE)
71+
set(HASH_${RELEASE_VAR} ${SHA} PARENT_SCOPE)
72+
endforeach()
73+
endfunction()
74+
75+
function(detect_artifact_name OUT_VAR)
76+
if (WIN32) # Windows
77+
SET(${OUT_VAR} TILEDB_WINDOWS-X86_64 PARENT_SCOPE)
78+
elseif(APPLE) # OSX
79+
if (DEFINED CMAKE_OSX_ARCHITECTURES)
80+
set(ACTUAL_TARGET ${CMAKE_OSX_ARCHITECTURES})
81+
else()
82+
set(ACTUAL_TARGET ${CMAKE_SYSTEM_PROCESSOR})
83+
endif()
84+
85+
86+
if (ACTUAL_TARGET MATCHES "(x86_64)|(AMD64|amd64)|(^i.86$)")
87+
SET(${OUT_VAR} TILEDB_MACOS-X86_64 PARENT_SCOPE)
88+
elseif (ACTUAL_TARGET STREQUAL arm64 OR ACTUAL_TARGET MATCHES "^aarch64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
89+
SET(${OUT_VAR} TILEDB_MACOS-ARM64 PARENT_SCOPE)
90+
endif()
91+
else() # Linux
92+
SET(${OUT_VAR} TILEDB_LINUX-X86_64 PARENT_SCOPE)
93+
endif()
94+
endfunction()
95+
96+
function(fetch_prebuilt_tiledb)
97+
# Arguments
98+
set(options RELLIST_HASH)
99+
set(oneValueArgs VERSION ARTIFACT_NAME)
100+
set(multiValueArgs)
101+
cmake_parse_arguments(
102+
FETCH_PREBUILT_TILEDB
103+
"${options}"
104+
"${oneValueArgs}"
105+
"${multiValueArgs}"
106+
${ARGN}
107+
)
108+
109+
fetch_tiledb_release_list(${FETCH_PREBUILT_TILEDB_VERSION} ${FETCH_PREBUILT_TILEDB_RELLIST_HASH})
110+
111+
if(NOT FETCH_PREBUILT_TILEDB_ARTIFACT_NAME)
112+
detect_artifact_name(FETCH_PREBUILT_TILEDB_ARTIFACT_NAME)
113+
endif()
114+
115+
string(STRIP ${HASH_${FETCH_PREBUILT_TILEDB_ARTIFACT_NAME}} HASH_${FETCH_PREBUILT_TILEDB_ARTIFACT_NAME})
116+
ExternalProject_Add(ep_tiledb
117+
PREFIX "externals"
118+
URL ${URL_${FETCH_PREBUILT_TILEDB_ARTIFACT_NAME}}
119+
URL_HASH SHA256=${HASH_${FETCH_PREBUILT_TILEDB_ARTIFACT_NAME}}
120+
CONFIGURE_COMMAND ""
121+
BUILD_COMMAND ""
122+
UPDATE_COMMAND ""
123+
PATCH_COMMAND ""
124+
TEST_COMMAND ""
125+
INSTALL_COMMAND
126+
${CMAKE_COMMAND} -E copy_directory ${EP_BASE}/src/ep_tiledb ${EP_INSTALL_PREFIX}
127+
LOG_DOWNLOAD TRUE
128+
LOG_CONFIGURE FALSE
129+
LOG_BUILD FALSE
130+
LOG_INSTALL FALSE
131+
)
132+
endfunction()
133+
134+
function(fetch_source_tiledb)
135+
# Arguments
136+
set(options RELLIST_HASH)
137+
set(oneValueArgs VERSION ARTIFACT_NAME)
138+
set(multiValueArgs)
139+
cmake_parse_arguments(
140+
FETCH_PREBUILT_TILEDB
141+
"${options}"
142+
"${oneValueArgs}"
143+
"${multiValueArgs}"
144+
${ARGN}
145+
)
146+
147+
fetch_tiledb_release_list(${FETCH_PREBUILT_TILEDB_VERSION} ${FETCH_PREBUILT_TILEDB_RELLIST_HASH})
148+
149+
string(STRIP ${HASH_TILEDB_source} HASH_TILEDB_source)
150+
ExternalProject_Add(ep_tiledb
151+
PREFIX "externals"
152+
URL ${URL_TILEDB_source}
153+
URL_HASH SHA256=${HASH_TILEDB_source}
154+
DOWNLOAD_NAME "tiledb.tar.gz"
155+
CMAKE_ARGS
156+
-DCMAKE_INSTALL_PREFIX=${EP_INSTALL_PREFIX}
157+
-DCMAKE_PREFIX_PATH=${EP_INSTALL_PREFIX}
158+
-DTILEDB_S3=${TILEDB_S3}
159+
-DTILEDB_SKIP_S3AWSSDK_DIR_LENGTH_CHECK=ON # for windows build
160+
-DTILEDB_VERBOSE=ON
161+
-DTILEDB_SERIALIZATION=ON
162+
-DTILEDB_TESTS=OFF
163+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
164+
-DTILEDB_WERROR=OFF #avoid the pointer p use after free issue...
165+
UPDATE_COMMAND ""
166+
INSTALL_COMMAND
167+
${CMAKE_COMMAND} --build . --target install-tiledb
168+
LOG_DOWNLOAD TRUE
169+
LOG_CONFIGURE TRUE
170+
LOG_BUILD TRUE
171+
LOG_INSTALL TRUE
172+
)
173+
endfunction()

src/cmake/Modules/FindTileDB_EP.cmake

Lines changed: 4 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -49,71 +49,13 @@ else()
4949
message(STATUS "TileDB will be built WITHOUT S3 support")
5050
endif()
5151

52+
include(DownloadPrebuiltTileDB)
53+
5254
# Try to download prebuilt artifacts unless the user specifies to build from source
5355
if(DOWNLOAD_TILEDB_PREBUILT)
54-
if (WIN32) # Windows
55-
SET(DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.20.0/tiledb-windows-x86_64-2.20.0-40552aa.zip")
56-
SET(DOWNLOAD_SHA1 "cb7df1c80c7034d2d8d16cea5114fdca7306e87d")
57-
elseif(APPLE) # OSX
58-
if (DEFINED CMAKE_OSX_ARCHITECTURES)
59-
set(ACTUAL_TARGET ${CMAKE_OSX_ARCHITECTURES})
60-
else()
61-
set(ACTUAL_TARGET ${CMAKE_SYSTEM_PROCESSOR})
62-
endif()
63-
64-
65-
if (ACTUAL_TARGET MATCHES "(x86_64)|(AMD64|amd64)|(^i.86$)")
66-
SET(DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.20.0/tiledb-macos-x86_64-2.20.0-40552aa.tar.gz")
67-
SET(DOWNLOAD_SHA1 "83af0a52e6756129472073393c28ec15d6265e0c")
68-
elseif (ACTUAL_TARGET STREQUAL arm64 OR ACTUAL_TARGET MATCHES "^aarch64" OR CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
69-
SET(DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.20.0/tiledb-macos-arm64-2.20.0-40552aa.tar.gz")
70-
SET(DOWNLOAD_SHA1 "78ea78b0d7ffe4edb5bc6f98a8b620cc6f7d0e85")
71-
endif()
72-
else() # Linux
73-
SET(DOWNLOAD_URL "https://github.com/TileDB-Inc/TileDB/releases/download/2.20.0/tiledb-linux-x86_64-2.20.0-40552aa.tar.gz")
74-
SET(DOWNLOAD_SHA1 "9104da8d6979c3b96e63b9e28fd41a403d412079")
75-
endif()
76-
77-
ExternalProject_Add(ep_tiledb
78-
PREFIX "externals"
79-
URL ${DOWNLOAD_URL}
80-
URL_HASH SHA1=${DOWNLOAD_SHA1}
81-
CONFIGURE_COMMAND ""
82-
BUILD_COMMAND ""
83-
UPDATE_COMMAND ""
84-
PATCH_COMMAND ""
85-
TEST_COMMAND ""
86-
INSTALL_COMMAND
87-
${CMAKE_COMMAND} -E copy_directory ${EP_BASE}/src/ep_tiledb ${EP_INSTALL_PREFIX}
88-
LOG_DOWNLOAD TRUE
89-
LOG_CONFIGURE FALSE
90-
LOG_BUILD FALSE
91-
LOG_INSTALL FALSE
92-
)
56+
fetch_prebuilt_tiledb(VERSION 2.21.1)
9357
else() # Build from source
94-
ExternalProject_Add(ep_tiledb
95-
PREFIX "externals"
96-
URL "https://github.com/TileDB-Inc/TileDB/archive/refs/tags/2.20.0.zip"
97-
URL_HASH SHA1=78324232ed00bbb32a83699f561b7b5c10814d20
98-
DOWNLOAD_NAME "tiledb.zip"
99-
CMAKE_ARGS
100-
-DCMAKE_INSTALL_PREFIX=${EP_INSTALL_PREFIX}
101-
-DCMAKE_PREFIX_PATH=${EP_INSTALL_PREFIX}
102-
-DTILEDB_S3=${TILEDB_S3}
103-
-DTILEDB_SKIP_S3AWSSDK_DIR_LENGTH_CHECK=ON # for windows build
104-
-DTILEDB_VERBOSE=ON
105-
-DTILEDB_SERIALIZATION=ON
106-
-DTILEDB_TESTS=OFF
107-
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
108-
-DTILEDB_WERROR=OFF #avoid the pointer p use after free issue...
109-
UPDATE_COMMAND ""
110-
INSTALL_COMMAND
111-
${CMAKE_COMMAND} --build . --target install-tiledb
112-
LOG_DOWNLOAD TRUE
113-
LOG_CONFIGURE TRUE
114-
LOG_BUILD TRUE
115-
LOG_INSTALL TRUE
116-
)
58+
fetch_source_tiledb(VERSION 2.21.1)
11759
endif()
11860

11961
list(APPEND FORWARD_EP_CMAKE_ARGS -DEP_TILEDB_BUILT=TRUE)

src/include/test/unit_api_ivf_flat_index.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ TEST_CASE(
282282
CHECK(nt == nv);
283283
auto recall = ((double)intersections_a) / ((double)nt * k_nn);
284284
if (nprobe == 32) {
285-
CHECK(recall == 1.0);
285+
CHECK(recall >= .999);
286286
} else if (nprobe == 8) {
287287
CHECK(recall > 0.925);
288288
}

0 commit comments

Comments
 (0)