Closed github-actions[bot] closed 1 month ago
All the builds failed last night. There is a solver-related problem with Python 3.12 and numpy. The linux-64 builds failed when trying to solve the test environment for Python 3.12. The osx-* builds failed during the initial metadata generation.
I see what happened. conda-smithy added a Python 3.12 build with numpy 1.26 (https://github.com/TileDB-Inc/tiledbsoma-feedstock/commit/fc3a467fb8317dade98dcc8162c0b30eca2044e6), but we limit the runtime upper bound to numpy 1.24
I increased the numpy upper bound and pushed to "nightly-build" 🤞
https://github.com/TileDB-Inc/tiledbsoma-feedstock/commit/542b10167447113ad1c74578a1f3139ba9f707c0
I don't know if my idea will work because now the builds are failing when running version.py
, presumably due to the recently merged https://github.com/single-cell-data/TileDB-SOMA/pull/2563. cc @ryan-williams
File "<string>", line 342, in <module>
File "/home/conda/feedstock_root/build_artifacts/tiledbsoma_1715883755954/work/apis/python/version.py", line 229, in get_version
version = get_git_version()
File "/home/conda/feedstock_root/build_artifacts/tiledbsoma_1715883755954/work/apis/python/version.py", line 188, in get_git_version
latest_tag = get_latest_remote_tag(tracked_remote)
File "/home/conda/feedstock_root/build_artifacts/tiledbsoma_1715883755954/work/apis/python/version.py", line 124, in get_latest_remote_tag
raise RuntimeError(f"No tags found in remote {remote}")
RuntimeError: No tags found in remote origin
Next I am trying an unshallow clone in https://github.com/TileDB-Inc/tiledbsoma-feedstock/commit/04a030bf2e3c93d9c9bc7b512a1c5d8388c1f895
Bumping the numpy upper bound fixed the linux-64 builds but not the osx-* builds
Nightly feedstock build failure for tiledbsoma-feedstock at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=43&_a=summary
Nightly feedstock build failure for tiledbsoma-feedstock at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=43&_a=summary
Nightly feedstock build failure for tiledbsoma-feedstock at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=43&_a=summary
Nightly feedstock build failure for tiledbsoma-feedstock at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=43&_a=summary
Quick update. For last night's failed builds, the osx-* failures are still the same conda solver error with Python 3.12 and numpy. However, the py312/numpy solver errors in the test section of the linux-64 builds, which I fixed in #154, are no longer the cause of the failure because the build doesn't make it to the test section.
The fmt10/spdlog1.13 job is failing to build libtiledbsoma. Below is the error (I replaced the long path to the conda host env with ${HOST_ENV}
:
[ 65%] Building CXX object src/CMakeFiles/TILEDB_SOMA_OBJECTS.dir/utils/arrow_adapter.cc.o
In file included from ${HOST_ENV}/include/spdlog/fmt/fmt.h:32,
from ${HOST_ENV}/include/spdlog/common.h:50,
from ${HOST_ENV}/include/spdlog/spdlog.h:12,
from /home/conda/feedstock_root/build_artifacts/tiledbsoma_1716169644869/work/libtiledbsoma/src/utils/../utils/logger.h:54,
from /home/conda/feedstock_root/build_artifacts/tiledbsoma_1716169644869/work/libtiledbsoma/src/utils/arrow_adapter.cc:35:
${HOST_ENV}/include/fmt/core.h: In instantiation of 'constexpr fmt::v10::detail::value<Context> fmt::v10::detail::make_arg(T&) [with bool PACKED = true; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; T = nlohmann::basic_json<>; typename std::enable_if<PACKED, int>::type <anonymous> = 0]':
${HOST_ENV}/include/fmt/core.h:1842:51: required from 'constexpr fmt::v10::format_arg_store<Context, Args>::format_arg_store(T& ...) [with T = {nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >}; Context = fmt::v10::basic_format_context<fmt::v10::appender, char>; Args = {nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >}]'
${HOST_ENV}/include/fmt/core.h:1860:18: required from 'constexpr fmt::v10::format_arg_store<Context, typename std::remove_cv<typename std::remove_reference<T>::type>::type ...> fmt::v10::make_format_args(T& ...) [with Context = basic_format_context<appender, char>; T = {nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >}]'
${HOST_ENV}/include/fmt/core.h:2835:44: required from 'std::string fmt::v10::format(format_string<T ...>, T&& ...) [with T = {nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >&}; std::string = std::__cxx11::basic_string<char>; format_string<T ...> = basic_format_string<char, nlohmann::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, long int, long unsigned int, double, std::allocator, nlohmann::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char> > >&>]'
/home/conda/feedstock_root/build_artifacts/tiledbsoma_1716169644869/work/libtiledbsoma/src/utils/arrow_adapter.cc:342:24: required from here
${HOST_ENV}/include/fmt/core.h:1600:63: error: 'fmt::v10::detail::type_is_unformattable_for<nlohmann::basic_json<>, char> _' has incomplete type
1600 | type_is_unformattable_for<T, typename Context::char_type> _;
| ^
${HOST_ENV}/include/fmt/core.h:1604:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
1604 | formattable,
| ^~~~~~~~~~~
${HOST_ENV}/include/fmt/core.h:1604:7: note: 'formattable' evaluates to false
[ 69%] Building CXX object src/CMakeFiles/TILEDB_SOMA_OBJECTS.dir/utils/logger.cc.o
make[5]: *** [src/CMakeFiles/TILEDB_SOMA_OBJECTS.dir/build.make:272: src/CMakeFiles/TILEDB_SOMA_OBJECTS.dir/utils/arrow_adapter.cc.o] Error 1
make[5]: *** Waiting for unfinished jobs....
make[4]: *** [CMakeFiles/Makefile2:100: src/CMakeFiles/TILEDB_SOMA_OBJECTS.dir/all] Error 2
make[3]: *** [Makefile:136: all] Error 2
make[2]: *** [CMakeFiles/libtiledbsoma.dir/build.make:86: libtiledbsoma-prefix/src/libtiledbsoma-stamp/libtiledbsoma-build] Error 2
make[1]: *** [CMakeFiles/Makefile2:85: CMakeFiles/libtiledbsoma.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
In contrast, the fmt9/spdlog1.11 job was able to build libtiledbsoma and r-tiledbsoma, but then failed to build tiledbsoma-py due to the recent updates to version.py
. Below is the error (${HOST_ENV}
is the conda env with the host requirements installed and ${SRC_DIR}
are the TileDB-SOMA source files):
Processing ${SRC_DIR}/apis/python
Added file://${SRC_DIR}/apis/python to build tracker '/tmp/pip-build-tracker-wum_5kg0'
Created temporary directory: /tmp/pip-modern-metadata-y9i08ehx
Preparing metadata (pyproject.toml): started
Running command Preparing metadata (pyproject.toml)
Parsed tracked remote origin from branch origin/main
Traceback (most recent call last):
File "${HOST_ENV}/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
main()
File "${HOST_ENV}/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "${HOST_ENV}/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 149, in prepare_metadata_for_build_wheel
return hook(metadata_directory, config_settings)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "${HOST_ENV}/lib/python3.12/site-packages/setuptools/build_meta.py", line 366, in prepare_metadata_for_build_wheel
self.run_setup()
File "${HOST_ENV}/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 342, in <module>
File "${SRC_DIR}/apis/python/version.py", line 229, in get_version
version = get_git_version()
^^^^^^^^^^^^^^^^^
File "${SRC_DIR}/apis/python/version.py", line 188, in get_git_version
latest_tag = get_latest_remote_tag(tracked_remote)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "${SRC_DIR}/apis/python/version.py", line 124, in get_latest_remote_tag
raise RuntimeError(f"No tags found in remote {remote}")
RuntimeError: No tags found in remote origin
error: subprocess-exited-with-error
Nightly feedstock build failure for tiledbsoma-feedstock at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=43&_a=summary
Latest update from last night's build:
version.py
was fixed upstream in https://github.com/single-cell-data/TileDB-SOMA/pull/2590@johnkerl I think the linux-64 fmt10 error is the most pressing concern. Was there any recent change to libtiledbsoma that could be the cause of this?
I am less concerned about the py312 solver error for the osx-* builds. While long-term we need to address this, we could unblock the next release by dropping the py312 build in conda_build_config.yaml
@johnkerl I think the linux-64 fmt10 error is the most pressing concern. Was there any recent change to libtiledbsoma that could be the cause of this?
@jdblischak AFAICT the issue is that at line https://github.com/single-cell-data/TileDB-SOMA/blob/eb1d0a769965564e89a42991ec1b42c635942c6a/libtiledbsoma/src/utils/arrow_adapter.cc#L343 we are getting -- within this build system --
/home/conda/feedstock_root/build_artifacts/tiledbsoma_1716256011562/work/libtiledbsoma/src/utils/arrow_adapter.cc:343:24/.../work/libtiledbsoma/src/utils/arrow_adapter.cc:343:24: required from here
/.../include/fmt/core.h:1600:63: error: 'fmt::v10::detail::type_is_unformattable_for<nlohmann::basic_json<>, char> _' has incomplete type
1600 | type_is_unformattable_for<T, typename Context::char_type> _;
| ^
/.../include/fmt/core.h:1604:7: error: static assertion failed: Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt
1604 | formattable,
| ^~~~~~~~~~~
Note that the value
there has type json
which is from
https://github.com/single-cell-data/TileDB-SOMA/blob/eb1d0a769965564e89a42991ec1b42c635942c6a/libtiledbsoma/src/external/include/nlohmann/json.hpp
and we can check with @nguyenv to see if she knows if:
nlohmann
's json
implement formattable
;AFAICT the issue is that at line
@johnkerl looks like our investigations led us to the same place. I just opened an Issue upstream with my findings https://github.com/single-cell-data/TileDB-SOMA/issues/2608
I am less concerned about the py312 solver error for the osx-* builds. While long-term we need to address this, we could unblock the next release by dropping the py312 build in
conda_build_config.yaml
I confirmed this is a valid short-term workaround. I dropped the py312 variant and both osx-* builds passed
https://github.com/jdblischak/tiledbsoma-feedstock/commit/81093a95ff76e9c1cdf16f8b6d71fdb7c66305a1 https://dev.azure.com/jdblischak/feedstock-builds/_build/results?buildId=813&view=results
Nightly feedstock build failure for tiledbsoma-feedstock at https://dev.azure.com/TileDB-Inc/CI/_build?definitionId=43&_a=summary