single-cell-data / TileDB-SOMA

Python and R SOMA APIs using TileDB’s cloud-native format. Ideal for single-cell data at any scale.
https://tiledbsoma.readthedocs.io
MIT License
90 stars 25 forks source link

[python] Python install from `git+https` URL fails in editable mode #2202

Closed bkmartinjr closed 6 months ago

bkmartinjr commented 7 months ago

I was attempting to pip install -e using the gihtub repo URL for tiledbsoma. This previously worked (as of December-ish).

The same thing happens on the release-1.8 branch.

It works fine if you omit the -e (editable) flag

$ pip --version
pip 24.0 from /home/bruce/cellxgene-census/venv311/lib/python3.11/site-packages/pip (python 3.11)
$ pip install -e 'git+https://github.com/single-cell-data/TileDB-SOMA.git@release-1.7#egg=tiledbsoma&subdirectory=apis/python/'
Obtaining tiledbsoma from git+https://github.com/single-cell-data/TileDB-SOMA.git@release-1.7#egg=tiledbsoma&subdirectory=apis/python/
  Updating ./venv311/src/tiledbsoma clone (to revision release-1.7)
  Running command git fetch -q --tags
  Running command git reset --hard -q 10dcab91361b1c4db99bded28c6bf3a5555e4cef
  Installing build dependencies ... done
  Checking if build backend supports build_editable ... done
  Getting requirements to build editable ... done
  Preparing editable metadata (pyproject.toml) ... done
<snip>
Building wheels for collected packages: tiledbsoma
  Building editable for tiledbsoma (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building editable for tiledbsoma (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [2259 lines of output]
      running editable_wheel
      creating /tmp/pip-wheel-mc2_cjkv/.tmp-68u68c7u/tiledbsoma.egg-info
      writing /tmp/pip-wheel-mc2_cjkv/.tmp-68u68c7u/tiledbsoma.egg-info/PKG-INFO
      writing dependency_links to /tmp/pip-wheel-mc2_cjkv/.tmp-68u68c7u/tiledbsoma.egg-info/dependency_links.txt
      writing requirements to /tmp/pip-wheel-mc2_cjkv/.tmp-68u68c7u/tiledbsoma.egg-info/requires.txt
      writing top-level names to /tmp/pip-wheel-mc2_cjkv/.tmp-68u68c7u/tiledbsoma.egg-info/top_level.txt
      writing manifest file '/tmp/pip-wheel-mc2_cjkv/.tmp-68u68c7u/tiledbsoma.egg-info/SOURCES.txt'
      reading manifest file '/tmp/pip-wheel-mc2_cjkv/.tmp-68u68c7u/tiledbsoma.egg-info/SOURCES.txt'
      reading manifest template 'MANIFEST.in'
      warning: no files found matching 'py.typed'
      no previously-included directories found matching 'dist_links/libtiledbsoma/test/__pycache__'
      writing manifest file '/tmp/pip-wheel-mc2_cjkv/.tmp-68u68c7u/tiledbsoma.egg-info/SOURCES.txt'
      creating '/tmp/pip-wheel-mc2_cjkv/.tmp-68u68c7u/tiledbsoma-1.7.2.post15.dev17681081.dist-info'
      creating /tmp/pip-wheel-mc2_cjkv/.tmp-68u68c7u/tiledbsoma-1.7.2.post15.dev17681081.dist-info/WHEEL
      running build_py
      running build_ext
      Checking: /home/bruce/cellxgene-census/venv311/src/tiledbsoma/dist/lib/libtiledbsoma.so exists: True
      building 'tiledbsoma.pytiledbsoma' extension
      creating /tmp/tmprx0pbra6.build-temp/src
      creating /tmp/tmprx0pbra6.build-temp/src/tiledbsoma
      x86_64-linux-gnu-gcc -Wsign-compare -DNDEBUG -g -fwrapv -O2 -Wall -g -fstack-protector-strong -Wformat -Werror=format-security -g -fwrapv -O2 -fPIC -Idist_links/libtiledbsoma/include -Idist_links/libtiledbsoma/external/include -I../../build/externals/install/include -I/home/bruce/cellxgene-census/venv311/src/tiledbsoma/dist/include -I/home/bruce/cellxgene-census/venv311/src/tiledbsoma/build/externals/install/include -I/home/bruce/cellxgene-census/venv311/src/tiledbsoma/dist/include -I/home/bruce/cellxgene-census/venv311/src/tiledbsoma/dist/include -I/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/pybind11/include -I/home/bruce/cellxgene-census/venv311/include -I/usr/include/python3.11 -c src/tiledbsoma/common.cc -o /tmp/tmprx0pbra6.build-temp/src/tiledbsoma/common.o -fvisibility=hidden -g0 -std=c++17 -Wl,-rpath,/home/bruce/cellxgene-census/venv311/src/tiledbsoma/dist/lib -Wl,-rpath,/home/bruce/cellxgene-census/venv311/src/tiledbsoma/dist/lib -Wl,-rpath,/home/bruce/cellxgene-census/venv311/src/tiledbsoma/dist/lib/x86_64-linux-gnu -Wl,-rpath,/home/bruce/cellxgene-census/venv311/src/tiledbsoma/dist/lib64 -Wl,-rpath,/home/bruce/cellxgene-census/venv311/src/tiledbsoma/dist/lib/x86_64-linux-gnu -Wl,-rpath,/home/bruce/cellxgene-census/venv311/src/tiledbsoma/dist/lib64
      In file included from ../../build/externals/install/include/tiledb/array.h:38,
                       from ../../build/externals/install/include/tiledb/tiledb:49,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/common.cc:1:
      ../../build/externals/install/include/tiledb/array_schema.h: In constructor ‘tiledb::ArraySchema::ArraySchema(const tiledb::Context&, const string&, tiledb_encryption_type_t, const void*, uint32_t)’:
      ../../build/externals/install/include/tiledb/array_schema.h:164:55: warning: ‘int32_t tiledb_array_schema_load_with_key(tiledb_ctx_t*, const char*, tiledb_encryption_type_t, const void*, uint32_t, tiledb_array_schema_t**)’ is deprecated [-Wdeprecated-declarations]
        164 |     ctx.handle_error(tiledb_array_schema_load_with_key(
            |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        165 |         c_ctx,
            |         ~~~~~~
        166 |         uri.c_str(),
            |         ~~~~~~~~~~~~
        167 |         encryption_type,
            |         ~~~~~~~~~~~~~~~~
        168 |         encryption_key,
            |         ~~~~~~~~~~~~~~~
        169 |         key_length,
            |         ~~~~~~~~~~~
        170 |         &schema));
            |         ~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/config.h:38,
                       from ../../build/externals/install/include/tiledb/context.h:38,
                       from ../../build/externals/install/include/tiledb/attribute.h:38,
                       from ../../build/externals/install/include/tiledb/array_schema.h:38,
                       from ../../build/externals/install/include/tiledb/array.h:38,
                       from ../../build/externals/install/include/tiledb/tiledb:49,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/common.cc:1:
      ../../build/externals/install/include/tiledb/tiledb.h:639:34: note: declared here
        639 | TILEDB_DEPRECATED_EXPORT int32_t tiledb_array_schema_load_with_key(
            |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/array.h:38,
                       from ../../build/externals/install/include/tiledb/tiledb:49,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/common.cc:1:
      In file included from ../../build/externals/install/include/tiledb/tiledb:65,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/query.h: In member function ‘std::array<T, 3> tiledb::Query::range(unsigned int, uint64_t)’:
      ../../build/externals/install/include/tiledb/query.h:722:44: warning: ‘int32_t tiledb_query_get_range(tiledb_ctx_t*, const tiledb_query_t*, uint32_t, uint64_t, const void**, const void**, const void**)’ is deprecated [-Wdeprecated-declarations]
        722 |     ctx.handle_error(tiledb_query_get_range(
            |                      ~~~~~~~~~~~~~~~~~~~~~~^
        723 |         ctx.ptr().get(),
            |         ~~~~~~~~~~~~~~~~
        724 |         query_.get(),
            |         ~~~~~~~~~~~~~
        725 |         dim_idx,
            |         ~~~~~~~~
        726 |         range_idx,
            |         ~~~~~~~~~~
        727 |         &start,
            |         ~~~~~~~
        728 |         &end,
            |         ~~~~~
        729 |         &stride));
            |         ~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/config.h:38,
                       from ../../build/externals/install/include/tiledb/context.h:38,
                       from ../../build/externals/install/include/tiledb/attribute.h:38,
                       from ../../build/externals/install/include/tiledb/array_schema.h:38,
                       from ../../build/externals/install/include/tiledb/array.h:38,
                       from ../../build/externals/install/include/tiledb/tiledb:49,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/tiledb.h:1799:34: note: declared here
       1799 | TILEDB_DEPRECATED_EXPORT int32_t tiledb_query_get_range(
            |                                  ^~~~~~~~~~~~~~~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/tiledb:65,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/query.h: In member function ‘std::array<T, 3> tiledb::Query::range(const string&, uint64_t)’:
      ../../build/externals/install/include/tiledb/query.h:761:54: warning: ‘int32_t tiledb_query_get_range_from_name(tiledb_ctx_t*, const tiledb_query_t*, const char*, uint64_t, const void**, const void**, const void**)’ is deprecated [-Wdeprecated-declarations]
        761 |     ctx.handle_error(tiledb_query_get_range_from_name(
            |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        762 |         ctx.ptr().get(),
            |         ~~~~~~~~~~~~~~~~
        763 |         query_.get(),
            |         ~~~~~~~~~~~~~
        764 |         dim_name.c_str(),
            |         ~~~~~~~~~~~~~~~~~
        765 |         range_idx,
            |         ~~~~~~~~~~
        766 |         &start,
            |         ~~~~~~~
        767 |         &end,
            |         ~~~~~
        768 |         &stride));
            |         ~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/config.h:38,
                       from ../../build/externals/install/include/tiledb/context.h:38,
                       from ../../build/externals/install/include/tiledb/attribute.h:38,
                       from ../../build/externals/install/include/tiledb/array_schema.h:38,
                       from ../../build/externals/install/include/tiledb/array.h:38,
                       from ../../build/externals/install/include/tiledb/tiledb:49,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/tiledb.h:1831:34: note: declared here
       1831 | TILEDB_DEPRECATED_EXPORT int32_t tiledb_query_get_range_from_name(
            |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/tiledb:65,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/query.h: In member function ‘std::array<std::__cxx11::basic_string<char>, 2> tiledb::Query::range(unsigned int, uint64_t)’:
      ../../build/externals/install/include/tiledb/query.h:797:53: warning: ‘int32_t tiledb_query_get_range_var_size(tiledb_ctx_t*, const tiledb_query_t*, uint32_t, uint64_t, uint64_t*, uint64_t*)’ is deprecated [-Wdeprecated-declarations]
        797 |     ctx.handle_error(tiledb_query_get_range_var_size(
            |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        798 |         ctx.ptr().get(),
            |         ~~~~~~~~~~~~~~~~
        799 |         query_.get(),
            |         ~~~~~~~~~~~~~
        800 |         dim_idx,
            |         ~~~~~~~~
        801 |         range_idx,
            |         ~~~~~~~~~~
        802 |         &start_size,
            |         ~~~~~~~~~~~~
        803 |         &end_size));
            |         ~~~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/config.h:38,
                       from ../../build/externals/install/include/tiledb/context.h:38,
                       from ../../build/externals/install/include/tiledb/attribute.h:38,
                       from ../../build/externals/install/include/tiledb/array_schema.h:38,
                       from ../../build/externals/install/include/tiledb/array.h:38,
                       from ../../build/externals/install/include/tiledb/tiledb:49,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/tiledb.h:1861:34: note: declared here
       1861 | TILEDB_DEPRECATED_EXPORT int32_t tiledb_query_get_range_var_size(
            |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/tiledb:65,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/query.h:809:48: warning: ‘int32_t tiledb_query_get_range_var(tiledb_ctx_t*, const tiledb_query_t*, uint32_t, uint64_t, void*, void*)’ is deprecated [-Wdeprecated-declarations]
        809 |     ctx.handle_error(tiledb_query_get_range_var(
            |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~^
        810 |         ctx.ptr().get(), query_.get(), dim_idx, range_idx, &start[0], &end[0]));
            |         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/config.h:38,
                       from ../../build/externals/install/include/tiledb/context.h:38,
                       from ../../build/externals/install/include/tiledb/attribute.h:38,
                       from ../../build/externals/install/include/tiledb/array_schema.h:38,
                       from ../../build/externals/install/include/tiledb/array.h:38,
                       from ../../build/externals/install/include/tiledb/tiledb:49,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/tiledb.h:1919:34: note: declared here
       1919 | TILEDB_DEPRECATED_EXPORT int32_t tiledb_query_get_range_var(
            |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/tiledb:65,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/query.h: In member function ‘std::array<std::__cxx11::basic_string<char>, 2> tiledb::Query::range(const string&, uint64_t)’:
      ../../build/externals/install/include/tiledb/query.h:837:63: warning: ‘int32_t tiledb_query_get_range_var_size_from_name(tiledb_ctx_t*, const tiledb_query_t*, const char*, uint64_t, uint64_t*, uint64_t*)’ is deprecated [-Wdeprecated-declarations]
        837 |     ctx.handle_error(tiledb_query_get_range_var_size_from_name(
            |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        838 |         ctx.ptr().get(),
            |         ~~~~~~~~~~~~~~~~
        839 |         query_.get(),
            |         ~~~~~~~~~~~~~
        840 |         dim_name.c_str(),
            |         ~~~~~~~~~~~~~~~~~
        841 |         range_idx,
            |         ~~~~~~~~~~
        842 |         &start_size,
            |         ~~~~~~~~~~~~
        843 |         &end_size));
            |         ~~~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/config.h:38,
                       from ../../build/externals/install/include/tiledb/context.h:38,
                       from ../../build/externals/install/include/tiledb/attribute.h:38,
                       from ../../build/externals/install/include/tiledb/array_schema.h:38,
                       from ../../build/externals/install/include/tiledb/array.h:38,
                       from ../../build/externals/install/include/tiledb/tiledb:49,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/tiledb.h:1890:34: note: declared here
       1890 | TILEDB_DEPRECATED_EXPORT int32_t tiledb_query_get_range_var_size_from_name(
            |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/tiledb:65,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/query.h:849:58: warning: ‘int32_t tiledb_query_get_range_var_from_name(tiledb_ctx_t*, const tiledb_query_t*, const char*, uint64_t, void*, void*)’ is deprecated [-Wdeprecated-declarations]
        849 |     ctx.handle_error(tiledb_query_get_range_var_from_name(
            |                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        850 |         ctx.ptr().get(),
            |         ~~~~~~~~~~~~~~~~
        851 |         query_.get(),
            |         ~~~~~~~~~~~~~
        852 |         dim_name.c_str(),
            |         ~~~~~~~~~~~~~~~~~
        853 |         range_idx,
            |         ~~~~~~~~~~
        854 |         &start[0],
            |         ~~~~~~~~~~
        855 |         &end[0]));
            |         ~~~~~~~~
      In file included from ../../build/externals/install/include/tiledb/config.h:38,
                       from ../../build/externals/install/include/tiledb/context.h:38,
                       from ../../build/externals/install/include/tiledb/attribute.h:38,
                       from ../../build/externals/install/include/tiledb/array_schema.h:38,
                       from ../../build/externals/install/include/tiledb/array.h:38,
                       from ../../build/externals/install/include/tiledb/tiledb:49,
                       from src/tiledbsoma/common.h:9,
                       from src/tiledbsoma/reindexer.cc:35:
      ../../build/externals/install/include/tiledb/tiledb.h:1948:34: note: declared here
       1948 | TILEDB_DEPRECATED_EXPORT int32_t tiledb_query_get_range_var_from_name(
            |                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      src/tiledbsoma/reindexer.cc: In function ‘pybind11::array_t<long int> libtiledbsomacpp::get_indexer_general(tiledbsoma::IntIndexer&, pybind11::array_t<long int>)’:
      src/tiledbsoma/reindexer.cc:57:12: warning: unused variable ‘results_size’ [-Wunused-variable]
         57 |     size_t results_size = results_buffer.shape[0];
            |            ^~~~~~~~~~~~
      src/tiledbsoma/reindexer.cc: In function ‘pybind11::array_t<long int> libtiledbsomacpp::get_indexer_py_arrow(tiledbsoma::IntIndexer&, pybind11::object)’:
      src/tiledbsoma/reindexer.cc:116:12: warning: unused variable ‘results_size’ [-Wunused-variable]
        116 |     size_t results_size = results_buffer.shape[0];
            |            ^~~~~~~~~~~~
      src/tiledbsoma/reindexer.cc: In function ‘void libtiledbsomacpp::load_reindexer(pybind11::module&)’:
      src/tiledbsoma/reindexer.cc:138:39: error: ‘SOMAContext’ was not declared in this scope; did you mean ‘PyContext’?
        138 |         .def(py::init<std::shared_ptr<SOMAContext>>())
            |                                       ^~~~~~~~~~~
            |                                       PyContext
      src/tiledbsoma/reindexer.cc:138:39: error: template argument 1 is invalid
      src/tiledbsoma/reindexer.cc:138:52: error: no matching function for call to ‘init<<expression error> >()’
        138 |         .def(py::init<std::shared_ptr<SOMAContext>>())
            |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
      In file included from /tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/numpy.h:12,
                       from src/tiledbsoma/common.h:3,
                       from src/tiledbsoma/reindexer.cc:35:
      /tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/pybind11.h:1912:40: note: candidate: ‘template<class ... Args> pybind11::detail::initimpl::constructor<Args ...> pybind11::init()’
       1912 | detail::initimpl::constructor<Args...> init() {
            |                                        ^~~~
      /tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/pybind11.h:1912:40: note:   template argument deduction/substitution failed:
      src/tiledbsoma/reindexer.cc:138:52: error: template argument 1 is invalid
        138 |         .def(py::init<std::shared_ptr<SOMAContext>>())
            |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
      In file included from /tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/numpy.h:12,
                       from src/tiledbsoma/common.h:3,
                       from src/tiledbsoma/reindexer.cc:35:
      /tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/pybind11.h:1924:5: note: candidate: ‘template<class Func, class Ret> Ret pybind11::init(Func&&)’
       1924 | Ret init(Func &&f) {
            |     ^~~~
      /tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/pybind11.h:1924:5: note:   template argument deduction/substitution failed:
      src/tiledbsoma/reindexer.cc:138:52: error: template argument 1 is invalid
        138 |         .def(py::init<std::shared_ptr<SOMAContext>>())
            |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
      In file included from /tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/numpy.h:12,
                       from src/tiledbsoma/common.h:3,
                       from src/tiledbsoma/reindexer.cc:35:
      /tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/pybind11.h:1932:5: note: candidate: ‘template<class CFunc, class AFunc, class Ret> Ret pybind11::init(CFunc&&, AFunc&&)’
       1932 | Ret init(CFunc &&c, AFunc &&a) {
            |     ^~~~
      /tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/pybind11/include/pybind11/pybind11.h:1932:5: note:   template argument deduction/substitution failed:
      src/tiledbsoma/reindexer.cc:138:52: error: template argument 1 is invalid
        138 |         .def(py::init<std::shared_ptr<SOMAContext>>())
            |              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~
      src/tiledbsoma/reindexer.cc: In lambda function:
      src/tiledbsoma/reindexer.cc:143:26: warning: unused variable ‘data’ [-Wunused-variable]
        143 |                 int64_t* data = static_cast<int64_t*>(buffer.ptr);
            |                          ^~~~
      src/tiledbsoma/reindexer.cc:144:24: warning: unused variable ‘length’ [-Wunused-variable]
        144 |                 size_t length = buffer.shape[0];
            |                        ^~~~~~
      Traceback (most recent call last):
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/unixccompiler.py", line 185, in _compile
          self.spawn(compiler_so + cc_args + [src, '-o', obj] + extra_postargs)
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/ccompiler.py", line 1041, in spawn
          spawn(cmd, dry_run=self.dry_run, **kwargs)
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/spawn.py", line 70, in spawn
          raise DistutilsExecError(
      distutils.errors.DistutilsExecError: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1

      During handling of the above exception, another exception occurred:

      Traceback (most recent call last):
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 150, in run
          self._create_wheel_file(bdist_wheel)
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 339, in _create_wheel_file
          files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp)
                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 262, in _run_build_commands
          self._run_build_subcommands()
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 289, in _run_build_subcommands
          self.run_command(name)
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 963, in run_command
          super().run_command(command)
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "<string>", line 210, in run
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/command/build_ext.py", line 89, in run
          _build_ext.run(self)
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 345, in run
          self.build_extensions()
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 467, in build_extensions
          self._build_extensions_serial()
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 493, in _build_extensions_serial
          self.build_extension(ext)
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/command/build_ext.py", line 250, in build_extension
          _build_ext.build_extension(self, ext)
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py", line 548, in build_extension
          objects = self.compiler.compile(
                    ^^^^^^^^^^^^^^^^^^^^^^
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/ccompiler.py", line 600, in compile
          self._compile(obj, src, ext, cc_args, extra_postargs, pp_opts)
        File "/tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/unixccompiler.py", line 187, in _compile
          raise CompileError(msg)
      distutils.errors.CompileError: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
      /tmp/pip-build-env-se0tcez6/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py:988: _DebuggingTips: Problem in editable installation.
      !!

              ********************************************************************************
              An error happened while installing `tiledbsoma` in editable mode.

              The following steps are recommended to help debug this problem:

              - Try to install the project normally, without using the editable mode.
                Does the error still persist?
                (If it does, try fixing the problem before attempting the editable mode).
              - If you are using binary extensions, make sure you have all OS-level
                dependencies installed (e.g. compilers, toolchains, binary libraries, ...).
              - Try the latest version of setuptools (maybe the error was already fixed).
              - If you (or your project dependencies) are using any setuptools extension
                or customization, make sure they support the editable mode.

              After following the steps above, if the problem still persists and
              you think this is related to how setuptools handles editable installations,
              please submit a reproducible example
              (see https://stackoverflow.com/help/minimal-reproducible-example) to:

                  https://github.com/pypa/setuptools/issues

              See https://setuptools.pypa.io/en/latest/userguide/development_mode.html for details.
              ********************************************************************************

      !!
        cmd_obj.run()
      error: command '/usr/bin/x86_64-linux-gnu-gcc' failed with exit code 1
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building editable for tiledbsoma
Failed to build tiledbsoma
ERROR: Could not build wheels for tiledbsoma, which is required to install pyproject.toml-based projects
johnkerl commented 7 months ago

As mentioned on Slack (giving a summary here) I cannot reproduce this problem despite my best attempts ...

bkmartinjr commented 7 months ago

As mentioned on Slack (giving a summary here) I cannot reproduce this problem despite my best attempts ...

This is a different but than we are discussing in Slack. The above issue is installation in editable mode, e.g., pip install -e ..., which trivially reproduces as a failure.

The slack discussion is about installing in non-editable mode.

johnkerl commented 7 months ago

@bkmartinjr thanks for straightening me out! I had been confused.

ryan-williams commented 6 months ago

Here is a GHA which just successfully ran:

pip install -e 'git+https://github.com/single-cell-data/TileDB-SOMA.git@${{ matrix.ref }}#egg=tiledbsoma&subdirectory=apis/python/'

as well as the non-editable version (omitting the -e flag), on main and release-1.[789] branches.

All combinations passed:

image

I also locally built two Dockerfiles (with and without vcpkg) that exercise the pip install -e git+https:// command:

Presence/Absence of vcpkg was my only idea (based on recent experience on #2244); Github Actions typically has vcpkg installed by default, which can mask problems that show up in local/EC2 builds, but so far I'm unable to reproduce @bkmartinjr's issue.

Possible this was transient / since resolved?

johnkerl commented 6 months ago

@bkmartinjr would you have a few minutes to verify on your setup? 🙏

ryan-williams commented 6 months ago

Sorry, just remembered I did see some failures locally before the successes above, e.g.:

docker run --rm -it --entrypoint pip python:3.11.8 install -e 'git+https://github.com/single-cell-data/TileDB-SOMA#egg=tiledbsoma&subdirectory=apis/python/'
Full output ``` Obtaining tiledbsoma from git+https://github.com/single-cell-data/TileDB-SOMA#egg=tiledbsoma&subdirectory=apis/python/ Cloning https://github.com/single-cell-data/TileDB-SOMA to /src/tiledbsoma Running command git clone --filter=blob:none --quiet https://github.com/single-cell-data/TileDB-SOMA /src/tiledbsoma Resolved https://github.com/single-cell-data/TileDB-SOMA to commit 46f86996b8b088a7e105b7f2c4495fbacb838471 Installing build dependencies ... done Checking if build backend supports build_editable ... done Getting requirements to build editable ... done Preparing editable metadata (pyproject.toml) ... done Collecting attrs>=22.2 (from tiledbsoma) Downloading attrs-23.2.0-py3-none-any.whl.metadata (9.5 kB) Collecting numba>=0.58.0 (from tiledbsoma) Downloading numba-0.59.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.metadata (2.7 kB) Collecting pandas (from tiledbsoma) Downloading pandas-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (19 kB) Collecting pyarrow-hotfix (from tiledbsoma) Downloading pyarrow_hotfix-0.6-py3-none-any.whl.metadata (3.6 kB) Collecting scanpy>=1.9.2 (from tiledbsoma) Downloading scanpy-1.10.0-py3-none-any.whl.metadata (8.6 kB) Collecting scipy (from tiledbsoma) Downloading scipy-1.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (60 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.4/60.4 kB 2.9 MB/s eta 0:00:00 Collecting somacore==1.0.10 (from tiledbsoma) Downloading somacore-1.0.10-py3-none-any.whl.metadata (1.5 kB) Collecting tiledb~=0.27.0 (from tiledbsoma) Downloading tiledb-0.27.1.tar.gz (337 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 337.4/337.4 kB 7.8 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Installing backend dependencies ... done Preparing metadata (pyproject.toml) ... done Collecting typing-extensions (from tiledbsoma) Using cached typing_extensions-4.10.0-py3-none-any.whl.metadata (3.0 kB) Collecting pyarrow>=9.0.0 (from tiledbsoma) Downloading pyarrow-15.0.2-cp311-cp311-manylinux_2_28_aarch64.whl.metadata (3.0 kB) Collecting anndata!=0.10.0 (from tiledbsoma) Downloading anndata-0.10.6-py3-none-any.whl.metadata (6.6 kB) Collecting numpy>=1.21 (from somacore==1.0.10->tiledbsoma) Using cached numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (62 kB) Collecting array-api-compat!=1.5,>1.4 (from anndata!=0.10.0->tiledbsoma) Downloading array_api_compat-1.6-py3-none-any.whl.metadata (1.4 kB) Collecting h5py>=3.1 (from anndata!=0.10.0->tiledbsoma) Downloading h5py-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (2.5 kB) Collecting natsort (from anndata!=0.10.0->tiledbsoma) Downloading natsort-8.4.0-py3-none-any.whl.metadata (21 kB) Collecting packaging>=20.0 (from anndata!=0.10.0->tiledbsoma) Using cached packaging-24.0-py3-none-any.whl.metadata (3.2 kB) Collecting llvmlite<0.43,>=0.42.0dev0 (from numba>=0.58.0->tiledbsoma) Downloading llvmlite-0.42.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (4.8 kB) Collecting python-dateutil>=2.8.2 (from pandas->tiledbsoma) Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl.metadata (8.4 kB) Collecting pytz>=2020.1 (from pandas->tiledbsoma) Downloading pytz-2024.1-py2.py3-none-any.whl.metadata (22 kB) Collecting tzdata>=2022.7 (from pandas->tiledbsoma) Downloading tzdata-2024.1-py2.py3-none-any.whl.metadata (1.4 kB) Collecting joblib (from scanpy>=1.9.2->tiledbsoma) Downloading joblib-1.3.2-py3-none-any.whl.metadata (5.4 kB) Collecting legacy-api-wrap>=1.4 (from scanpy>=1.9.2->tiledbsoma) Downloading legacy_api_wrap-1.4-py3-none-any.whl.metadata (1.8 kB) Collecting matplotlib>=3.6 (from scanpy>=1.9.2->tiledbsoma) Downloading matplotlib-3.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (5.8 kB) Collecting networkx>=2.7 (from scanpy>=1.9.2->tiledbsoma) Downloading networkx-3.2.1-py3-none-any.whl.metadata (5.2 kB) Collecting patsy (from scanpy>=1.9.2->tiledbsoma) Downloading patsy-0.5.6-py2.py3-none-any.whl.metadata (3.5 kB) Collecting pynndescent>=0.5 (from scanpy>=1.9.2->tiledbsoma) Downloading pynndescent-0.5.12-py3-none-any.whl.metadata (6.8 kB) Collecting scikit-learn>=0.24 (from scanpy>=1.9.2->tiledbsoma) Downloading scikit_learn-1.4.1.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (11 kB) Collecting seaborn>=0.13 (from scanpy>=1.9.2->tiledbsoma) Downloading seaborn-0.13.2-py3-none-any.whl.metadata (5.4 kB) Collecting session-info (from scanpy>=1.9.2->tiledbsoma) Downloading session_info-1.0.0.tar.gz (24 kB) Preparing metadata (setup.py) ... done Collecting statsmodels>=0.13 (from scanpy>=1.9.2->tiledbsoma) Downloading statsmodels-0.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (9.5 kB) Collecting tqdm (from scanpy>=1.9.2->tiledbsoma) Downloading tqdm-4.66.2-py3-none-any.whl.metadata (57 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.6/57.6 kB 18.7 MB/s eta 0:00:00 Collecting umap-learn!=0.5.0,>=0.5 (from scanpy>=1.9.2->tiledbsoma) Downloading umap-learn-0.5.5.tar.gz (90 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 90.9/90.9 kB 28.5 MB/s eta 0:00:00 Preparing metadata (setup.py) ... done Collecting contourpy>=1.0.1 (from matplotlib>=3.6->scanpy>=1.9.2->tiledbsoma) Downloading contourpy-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (5.8 kB) Collecting cycler>=0.10 (from matplotlib>=3.6->scanpy>=1.9.2->tiledbsoma) Downloading cycler-0.12.1-py3-none-any.whl.metadata (3.8 kB) Collecting fonttools>=4.22.0 (from matplotlib>=3.6->scanpy>=1.9.2->tiledbsoma) Downloading fonttools-4.50.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (159 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 159.4/159.4 kB 29.4 MB/s eta 0:00:00 Collecting kiwisolver>=1.3.1 (from matplotlib>=3.6->scanpy>=1.9.2->tiledbsoma) Downloading kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.metadata (6.4 kB) Collecting pillow>=8 (from matplotlib>=3.6->scanpy>=1.9.2->tiledbsoma) Downloading pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl.metadata (9.2 kB) Collecting pyparsing>=2.3.1 (from matplotlib>=3.6->scanpy>=1.9.2->tiledbsoma) Downloading pyparsing-3.1.2-py3-none-any.whl.metadata (5.1 kB) Collecting six>=1.5 (from python-dateutil>=2.8.2->pandas->tiledbsoma) Downloading six-1.16.0-py2.py3-none-any.whl.metadata (1.8 kB) Collecting threadpoolctl>=2.0.0 (from scikit-learn>=0.24->scanpy>=1.9.2->tiledbsoma) Downloading threadpoolctl-3.4.0-py3-none-any.whl.metadata (13 kB) Collecting stdlib_list (from session-info->scanpy>=1.9.2->tiledbsoma) Downloading stdlib_list-0.10.0-py3-none-any.whl.metadata (3.3 kB) Downloading somacore-1.0.10-py3-none-any.whl (35 kB) Downloading anndata-0.10.6-py3-none-any.whl (122 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 122.1/122.1 kB 34.9 MB/s eta 0:00:00 Downloading attrs-23.2.0-py3-none-any.whl (60 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 60.8/60.8 kB 4.0 MB/s eta 0:00:00 Downloading numba-0.59.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (3.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.4/3.4 MB 15.0 MB/s eta 0:00:00 Downloading pandas-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (15.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 15.6/15.6 MB 16.1 MB/s eta 0:00:00 Downloading pyarrow-15.0.2-cp311-cp311-manylinux_2_28_aarch64.whl (35.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 35.7/35.7 MB 12.1 MB/s eta 0:00:00 Downloading scanpy-1.10.0-py3-none-any.whl (2.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 16.5 MB/s eta 0:00:00 Downloading scipy-1.12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (34.7 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 34.7/34.7 MB 13.7 MB/s eta 0:00:00 Using cached typing_extensions-4.10.0-py3-none-any.whl (33 kB) Downloading pyarrow_hotfix-0.6-py3-none-any.whl (7.9 kB) Downloading array_api_compat-1.6-py3-none-any.whl (36 kB) Downloading h5py-3.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (9.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.1/9.1 MB 17.9 MB/s eta 0:00:00 Downloading legacy_api_wrap-1.4-py3-none-any.whl (15 kB) Downloading llvmlite-0.42.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (42.8 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.8/42.8 MB 10.7 MB/s eta 0:00:00 Downloading matplotlib-3.8.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.4/11.4 MB 14.8 MB/s eta 0:00:00 Downloading networkx-3.2.1-py3-none-any.whl (1.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.6/1.6 MB 16.5 MB/s eta 0:00:00 Using cached numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.2 MB) Using cached packaging-24.0-py3-none-any.whl (53 kB) Downloading pynndescent-0.5.12-py3-none-any.whl (56 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.8/56.8 kB 9.3 MB/s eta 0:00:00 Downloading joblib-1.3.2-py3-none-any.whl (302 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 302.2/302.2 kB 18.5 MB/s eta 0:00:00 Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 229.9/229.9 kB 20.9 MB/s eta 0:00:00 Downloading pytz-2024.1-py2.py3-none-any.whl (505 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 505.5/505.5 kB 17.0 MB/s eta 0:00:00 Downloading scikit_learn-1.4.1.post1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 11.5/11.5 MB 16.1 MB/s eta 0:00:00 Downloading seaborn-0.13.2-py3-none-any.whl (294 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 294.9/294.9 kB 18.9 MB/s eta 0:00:00 Downloading statsmodels-0.14.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (10.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 10.5/10.5 MB 16.3 MB/s eta 0:00:00 Downloading patsy-0.5.6-py2.py3-none-any.whl (233 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 233.9/233.9 kB 25.8 MB/s eta 0:00:00 Downloading tzdata-2024.1-py2.py3-none-any.whl (345 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 345.4/345.4 kB 25.0 MB/s eta 0:00:00 Downloading natsort-8.4.0-py3-none-any.whl (38 kB) Downloading tqdm-4.66.2-py3-none-any.whl (78 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 78.3/78.3 kB 20.3 MB/s eta 0:00:00 Downloading contourpy-1.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (302 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 302.1/302.1 kB 18.4 MB/s eta 0:00:00 Downloading cycler-0.12.1-py3-none-any.whl (8.3 kB) Downloading fonttools-4.50.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.9/4.9 MB 17.6 MB/s eta 0:00:00 Downloading kiwisolver-1.4.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.4/1.4 MB 19.8 MB/s eta 0:00:00 Downloading pillow-10.3.0-cp311-cp311-manylinux_2_28_aarch64.whl (4.3 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.3/4.3 MB 17.9 MB/s eta 0:00:00 Downloading pyparsing-3.1.2-py3-none-any.whl (103 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 103.2/103.2 kB 22.1 MB/s eta 0:00:00 Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) Downloading threadpoolctl-3.4.0-py3-none-any.whl (17 kB) Downloading stdlib_list-0.10.0-py3-none-any.whl (79 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 79.8/79.8 kB 15.4 MB/s eta 0:00:00 Building wheels for collected packages: tiledbsoma, tiledb, umap-learn, session-info Building editable for tiledbsoma (pyproject.toml) ... error error: subprocess-exited-with-error × Building editable for tiledbsoma (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [166 lines of output] running editable_wheel creating /tmp/pip-wheel-cra36r_0/.tmp-t8noejgl/tiledbsoma.egg-info writing /tmp/pip-wheel-cra36r_0/.tmp-t8noejgl/tiledbsoma.egg-info/PKG-INFO writing dependency_links to /tmp/pip-wheel-cra36r_0/.tmp-t8noejgl/tiledbsoma.egg-info/dependency_links.txt writing requirements to /tmp/pip-wheel-cra36r_0/.tmp-t8noejgl/tiledbsoma.egg-info/requires.txt writing top-level names to /tmp/pip-wheel-cra36r_0/.tmp-t8noejgl/tiledbsoma.egg-info/top_level.txt writing manifest file '/tmp/pip-wheel-cra36r_0/.tmp-t8noejgl/tiledbsoma.egg-info/SOURCES.txt' reading manifest file '/tmp/pip-wheel-cra36r_0/.tmp-t8noejgl/tiledbsoma.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'py.typed' no previously-included directories found matching 'dist_links/libtiledbsoma/test/__pycache__' writing manifest file '/tmp/pip-wheel-cra36r_0/.tmp-t8noejgl/tiledbsoma.egg-info/SOURCES.txt' creating '/tmp/pip-wheel-cra36r_0/.tmp-t8noejgl/tiledbsoma-1.5.0rc0.post274.dev74417817.dist-info' creating /tmp/pip-wheel-cra36r_0/.tmp-t8noejgl/tiledbsoma-1.5.0rc0.post274.dev74417817.dist-info/WHEEL running build_py running build_ext Build with TileDB: /src/tiledbsoma/dist Building Release build -- Using default install prefix /src/tiledbsoma/dist. To control CMAKE_INSTALL_PREFIX, set OVERRIDE_INSTALL_PREFIX=OFF -- Install prefix is /src/tiledbsoma/dist. -- The C compiler identification is GNU 12.2.0 -- The CXX compiler identification is GNU 12.2.0 -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Check for working C compiler: /usr/bin/cc - skipped -- Detecting C compile features -- Detecting C compile features - done -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: /usr/bin/c++ - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Starting TileDB-SOMA superbuild. -- Could NOT find TileDB (missing: TileDB_DIR) -- Adding TileDB as an external project -- Could NOT find spdlog (missing: spdlog_DIR) -- Adding spdlog as an external project -- Not found clang-tidy -- Not found clang-format -- Configuring done (0.3s) -- Generating done (0.0s) -- Build files have been written to: /src/tiledbsoma/build [ 4%] Creating directories for 'ep_tiledb' [ 8%] Performing download step (download, verify and extract) for 'ep_tiledb' -- ep_tiledb download command succeeded. See also /src/tiledbsoma/build/externals/src/ep_tiledb-stamp/ep_tiledb-download-*.log [ 12%] No update step for 'ep_tiledb' [ 16%] No patch step for 'ep_tiledb' [ 20%] Performing configure step for 'ep_tiledb' CMake Error at /src/tiledbsoma/build/externals/src/ep_tiledb-stamp/ep_tiledb-configure-Release.cmake:49 (message): Command failed: 1 '/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/cmake/data/bin/cmake' '-DCMAKE_INSTALL_PREFIX=/src/tiledbsoma/build/externals/install' '-DCMAKE_PREFIX_PATH=/src/tiledbsoma/build/externals/install' '-DTILEDB_S3=ON' '-DTILEDB_AZURE=ON' '-DTILEDB_GCS=OFF' '-DTILEDB_HDFS=OFF' '-DTILEDB_SERIALIZATION=ON' '-DTILEDB_WERROR=OFF' '-DTILEDB_VERBOSE=OFF' '-DTILEDB_TESTS=OFF' '-DCMAKE_BUILD_TYPE=Release' '-DCMAKE_OSX_ARCHITECTURES=' '-DCMAKE_C_FLAGS=' '-DCMAKE_CXX_FLAGS=' '-DCMAKE_CXX_COMPILER=/usr/bin/c++' '-DCMAKE_C_COMPILER=/usr/bin/cc' '' '-DCMAKE_POSITION_INDEPENDENT_CODE=ON' '-GUnix Makefiles' '-S' '/src/tiledbsoma/build/externals/src/ep_tiledb' '-B' '/src/tiledbsoma/build/externals/src/ep_tiledb-build' See also /src/tiledbsoma/build/externals/src/ep_tiledb-stamp/ep_tiledb-configure-*.log gmake[2]: *** [CMakeFiles/ep_tiledb.dir/build.make:92: externals/src/ep_tiledb-stamp/ep_tiledb-configure] Error 1 gmake[1]: *** [CMakeFiles/Makefile2:89: CMakeFiles/ep_tiledb.dir/all] Error 2 gmake: *** [Makefile:91: all] Error 2 Traceback (most recent call last): File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 155, in run self._create_wheel_file(bdist_wheel) File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 357, in _create_wheel_file files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 280, in _run_build_commands self._run_build_subcommands() File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 307, in _run_build_subcommands self.run_command(name) File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command self.distribution.run_command(command) File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 967, in run_command super().run_command(command) File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "", line 207, in run File "", line 175, in find_or_build_package_data File "/usr/local/lib/python3.11/subprocess.py", line 571, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['./bld', '--tiledb=/src/tiledbsoma/dist']' returned non-zero exit status 2. /tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py:988: _DebuggingTips: Problem in editable installation. !! ******************************************************************************** An error happened while installing `tiledbsoma` in editable mode. The following steps are recommended to help debug this problem: - Try to install the project normally, without using the editable mode. Does the error still persist? (If it does, try fixing the problem before attempting the editable mode). - If you are using binary extensions, make sure you have all OS-level dependencies installed (e.g. compilers, toolchains, binary libraries, ...). - Try the latest version of setuptools (maybe the error was already fixed). - If you (or your project dependencies) are using any setuptools extension or customization, make sure they support the editable mode. After following the steps above, if the problem still persists and you think this is related to how setuptools handles editable installations, please submit a reproducible example (see https://stackoverflow.com/help/minimal-reproducible-example) to: https://github.com/pypa/setuptools/issues See https://setuptools.pypa.io/en/latest/userguide/development_mode.html for details. ******************************************************************************** !! cmd_obj.run() Checking: /src/tiledbsoma/dist/lib/libtiledbsoma.so exists: False Checking: /src/tiledbsoma/dist/lib64/libtiledbsoma.so exists: False Checking: /src/tiledbsoma/dist/lib/x86_64-linux-gnu/libtiledbsoma.so exists: False libtiledbsoma.so: cannot open shared object file: No such file or directory Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in main() File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main json_out['return_val'] = hook(**hook_input['kwargs']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 273, in build_editable return hook(wheel_directory, config_settings, metadata_directory) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 443, in build_editable return self._build_with_temp_dir( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 395, in _build_with_temp_dir self.run_setup() File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 311, in run_setup exec(code, locals()) File "", line 256, in File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/__init__.py", line 104, in setup return distutils.core.setup(**attrs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup return run_commands(dist) ^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands dist.run_commands() File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands self.run_command(cmd) File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 967, in run_command super().run_command(command) File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 155, in run self._create_wheel_file(bdist_wheel) File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 357, in _create_wheel_file files, mapping = self._run_build_commands(dist_name, unpacked, lib, tmp) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 280, in _run_build_commands self._run_build_subcommands() File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/command/editable_wheel.py", line 307, in _run_build_subcommands self.run_command(name) File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command self.distribution.run_command(command) File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 967, in run_command super().run_command(command) File "/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "", line 207, in run File "", line 175, in find_or_build_package_data File "/usr/local/lib/python3.11/subprocess.py", line 571, in run raise CalledProcessError(retcode, process.args, subprocess.CalledProcessError: Command '['./bld', '--tiledb=/src/tiledbsoma/dist']' returned non-zero exit status 2. [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building editable for tiledbsoma Building wheel for tiledb (pyproject.toml) ... error error: subprocess-exited-with-error × Building wheel for tiledb (pyproject.toml) did not run successfully. │ exit code: 1 ╰─> [98 lines of output] :9: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html /tmp/pip-build-env-1yfkbqe1/overlay/lib/python3.11/site-packages/setuptools/config/expand.py:133: SetuptoolsWarning: File '/tmp/pip-install-744vcz0g/tiledb_ec9663df1e9d4b7a915c1509ac0c05a7/requirements_wheel.txt' cannot be found return '\n'.join( TILEDB_PATH from env: '' libtiledb_exists checking 'library_dirs': [] libtiledb_exists found: 'None' running bdist_wheel Cloning into '/tmp/pip-install-744vcz0g/tiledb_ec9663df1e9d4b7a915c1509ac0c05a7/build/TileDB-2.21.1'... Note: switching to 'acd5c50ecc50bb64c4786508c145febb156f3525'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by switching back to a branch. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -c with the switch command. Example: git switch -c Or undo this operation with: git switch - Turn off this advice by setting config variable advice.detachedHead to false GNU Make 4.3 Built for aarch64-unknown-linux-gnu Copyright (C) 1988-2020 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. TILEDB_DISABLE_AUTO_VCPKG is not defined. Fetch a local copy of vcpkg. Vcpkg commit string used: 72010900b7cee36cea77aebb97695095c9358eaf Using vcpkg features: serialization;s3;webp -- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) -- Not found clang-tidy -- Not found clang-format -- was unable to find clang-format -- Bootstrapping vcpkg before install -- Bootstrapping vcpkg before install - failed CMake Error at build/_deps/vcpkg-src/scripts/buildsystems/vcpkg.cmake:899 (message): vcpkg install failed. See logs for more information: /tmp/pip-install-744vcz0g/tiledb_ec9663df1e9d4b7a915c1509ac0c05a7/build/TileDB-2.21.1/build/vcpkg-bootstrap.log Call Stack (most recent call first): /tmp/pip-build-env-1yfkbqe1/normal/lib/python3.11/site-packages/cmake/data/share/cmake-3.29/Modules/CMakeDetermineSystem.cmake:146 (include) CMakeLists.txt:142 (project) CMake Error: CMake was unable to find a build program corresponding to "Unix Makefiles". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool. CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage -- Configuring incomplete, errors occurred! ext_modules: [, , ] tiledb_ext: main_ext: tiledb_cc_ext: tiledb_ext.library_dirs: [] libtiledb_exists checking 'library_dirs': [] libtiledb_exists found: 'None' Building libtiledb in directory /tmp/pip-install-744vcz0g/tiledb_ec9663df1e9d4b7a915c1509ac0c05a7/build/TileDB-2.21.1/build... CMake configure command: ['cmake', '-DCMAKE_INSTALL_PREFIX=/tmp/pip-install-744vcz0g/tiledb_ec9663df1e9d4b7a915c1509ac0c05a7/build/TileDB-2.21.1/dist', '-DTILEDB_TESTS=OFF', '-DTILEDB_S3=ON', '-DTILEDB_WERROR=OFF', '-DTILEDB_HDFS=ON', '-DTILEDB_INSTALL_LIBDIR=lib', '-DTILEDB_CPP_API=ON', '-DTILEDB_LOG_OUTPUT_ON_FAILURE=ON', '-DTILEDB_FORCE_ALL_DEPS:BOOL=OFF', '-DTILEDB_SERIALIZATION:BOOL=ON', '-DCMAKE_BUILD_TYPE=Release', '/tmp/pip-install-744vcz0g/tiledb_ec9663df1e9d4b7a915c1509ac0c05a7/build/TileDB-2.21.1'] Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in main() File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main json_out['return_val'] = hook(**hook_input['kwargs']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 251, in build_wheel return _build_backend().build_wheel(wheel_directory, config_settings, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-1yfkbqe1/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 410, in build_wheel return self._build_with_temp_dir( ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-1yfkbqe1/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 395, in _build_with_temp_dir self.run_setup() File "/tmp/pip-build-env-1yfkbqe1/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 311, in run_setup exec(code, locals()) File "", line 791, in File "/tmp/pip-build-env-1yfkbqe1/overlay/lib/python3.11/site-packages/setuptools/__init__.py", line 104, in setup return distutils.core.setup(**attrs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-1yfkbqe1/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 185, in setup return run_commands(dist) ^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-1yfkbqe1/overlay/lib/python3.11/site-packages/setuptools/_distutils/core.py", line 201, in run_commands dist.run_commands() File "/tmp/pip-build-env-1yfkbqe1/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands self.run_command(cmd) File "/tmp/pip-build-env-1yfkbqe1/overlay/lib/python3.11/site-packages/setuptools/dist.py", line 967, in run_command super().run_command(command) File "/tmp/pip-build-env-1yfkbqe1/overlay/lib/python3.11/site-packages/setuptools/_distutils/dist.py", line 988, in run_command cmd_obj.run() File "", line 514, in run File "", line 322, in find_or_install_libtiledb File "", line 283, in build_libtiledb File "/usr/local/lib/python3.11/subprocess.py", line 413, in check_call raise CalledProcessError(retcode, cmd) subprocess.CalledProcessError: Command '['cmake', '-DCMAKE_INSTALL_PREFIX=/tmp/pip-install-744vcz0g/tiledb_ec9663df1e9d4b7a915c1509ac0c05a7/build/TileDB-2.21.1/dist', '-DTILEDB_TESTS=OFF', '-DTILEDB_S3=ON', '-DTILEDB_WERROR=OFF', '-DTILEDB_HDFS=ON', '-DTILEDB_INSTALL_LIBDIR=lib', '-DTILEDB_CPP_API=ON', '-DTILEDB_LOG_OUTPUT_ON_FAILURE=ON', '-DTILEDB_FORCE_ALL_DEPS:BOOL=OFF', '-DTILEDB_SERIALIZATION:BOOL=ON', '-DCMAKE_BUILD_TYPE=Release', '/tmp/pip-install-744vcz0g/tiledb_ec9663df1e9d4b7a915c1509ac0c05a7/build/TileDB-2.21.1']' returned non-zero exit status 1. [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for tiledb Building wheel for umap-learn (setup.py) ... done Created wheel for umap-learn: filename=umap_learn-0.5.5-py3-none-any.whl size=86832 sha256=3c9a02310d35ed607be9d919e9013ee1f5e095b8f0f77266c3417fc53971769f Stored in directory: /root/.cache/pip/wheels/de/07/2e/814a6ee82e37528f2044a609a431028375b149bc31f03c0e27 Building wheel for session-info (setup.py) ... done Created wheel for session-info: filename=session_info-1.0.0-py3-none-any.whl size=8026 sha256=700d718db2636127dc8779a5f95ba98a88581e829dac91096a7d2336f46e98d4 Stored in directory: /root/.cache/pip/wheels/4e/56/35/a748fc57279a4b84d0b332879445fed1ad8478e7257986b015 Successfully built umap-learn session-info Failed to build tiledbsoma tiledb ERROR: Could not build wheels for tiledbsoma, tiledb, which is required to install pyproject.toml-based projects ```

That stack looks more like VCPKG-associated issues I saw on #2244 than anything in @bkmartinjr's stack above.

This bit in particular is familiar:

      [ 20%] Performing configure step for 'ep_tiledb'
      CMake Error at /src/tiledbsoma/build/externals/src/ep_tiledb-stamp/ep_tiledb-configure-Release.cmake:49 (message):
        Command failed: 1

         '/tmp/pip-build-env-z3ciq2tv/overlay/lib/python3.11/site-packages/cmake/data/bin/cmake' '-DCMAKE_INSTALL_PREFIX=/src/tiledbsoma/build/externals/install' '-DCMAKE_PREFIX_PATH=/src/tiledbsoma/build/externals/install' '-DTILEDB_S3=ON' '-DTILEDB_AZURE=ON' '-DTILEDB_GCS=OFF' '-DTILEDB_HDFS=OFF' '-DTILEDB_SERIALIZATION=ON' '-DTILEDB_WERROR=OFF' '-DTILEDB_VERBOSE=OFF' '-DTILEDB_TESTS=OFF' '-DCMAKE_BUILD_TYPE=Release' '-DCMAKE_OSX_ARCHITECTURES=' '-DCMAKE_C_FLAGS=' '-DCMAKE_CXX_FLAGS=' '-DCMAKE_CXX_COMPILER=/usr/bin/c++' '-DCMAKE_C_COMPILER=/usr/bin/cc' '' '-DCMAKE_POSITION_INDEPENDENT_CODE=ON' '-GUnix Makefiles' '-S' '/src/tiledbsoma/build/externals/src/ep_tiledb' '-B' '/src/tiledbsoma/build/externals/src/ep_tiledb-build'

        See also

          /src/tiledbsoma/build/externals/src/ep_tiledb-stamp/ep_tiledb-configure-*.log

      gmake[2]: *** [CMakeFiles/ep_tiledb.dir/build.make:92: externals/src/ep_tiledb-stamp/ep_tiledb-configure] Error 1
      gmake[1]: *** [CMakeFiles/Makefile2:89: CMakeFiles/ep_tiledb.dir/all] Error 2
      gmake: *** [Makefile:91: all] Error 2

I will keep investigating.

ryan-williams commented 6 months ago

I'm unable to repro the issue; pip install -e git+https://… seems to work in several contexts I tried.

Here is a sweep of {ubuntu, x86 mac, arm mac} x {main, release-1.[789]}:

image

That workflow just runs setup-python and pip install -e "git+https…"

    runs-on: ${{ matrix.runs-on }}
    steps:
      - uses: actions/setup-python@v5
        with:
          python-version: ${{ inputs.python-version }}
      - run: |
          pip install${{ matrix.editable }} "git+https://github.com/single-cell-data/TileDB-SOMA.git@${{ matrix.ref }}#egg=tiledbsoma&subdirectory=apis/python/"

Docker example

My previous failures were missing system deps required by vcpkg (In a python:3.11.8 Docker image); tiledbsoma's install process can automatically install vcpkg, but assumes some system deps. Here's a working Dockerfile:

FROM python:3.11.8
RUN apt-get update -y && apt install -y cmake curl g++ git make ninja-build tar unzip zip
ARG editable=-e
ARG ref=main
RUN pip install ${editable} "git+https://github.com/single-cell-data/TileDB-SOMA@${ref}#egg=tiledbsoma&subdirectory=apis/python/"

Here's a GHA verifying those commands on {main, release-1.[789]} x {'-e',''}:

image

(python:3.11.8 base image, ubuntu-latest host)

Aside: docker build issues with x86 base image on ARM Macs

The only issue I found is: I'm unable to build the Dockerfile above (with its Ubuntu base image) on ARM Macs. export DOCKER_DEFAULT_PLATFORM=linux/amd64 is required to prevent a quick failure during vcpkg install, but then the builds are slow to the point of hanging. Here's one that's been using ≈0% CPU for several hours:

arm mac docker build hang

I've seen other x86 Docker images fail to build on ARM Macs, though, so I'm not too worried about that.

I also suspect @bkmartinjr's original issue was resolved at some point since it was filed.

bkmartinjr commented 6 months ago

@ryan-williams - thanks for the detailed exploration. I'm trying to repro it as well with recent branches.

TL;DR - lets close this bug. I'll reopen if it reoccurs and I figure out a reproducible case.