[Python] Failed to build pyarrow using python:3.10-alpine docker image

Describe the bug, including details regarding any error messages, version, and platform.
Bumped into error when the build stage reach pyarrow building:
-- Found Python3Alt: /usr/local/bin/python
#0 678.5       CMake Error at CMakeLists.txt:268 (find_package):
#0 678.5         By not providing "FindArrow.cmake" in CMAKE_MODULE_PATH this project has
#0 678.5         asked CMake to find a package configuration file provided by "Arrow", but
#0 678.5         CMake did not find one.
#0 678.5
#0 678.5         Could not find a package configuration file provided by "Arrow" with any of
#0 678.5         the following names:
#0 678.5
#0 678.5           ArrowConfig.cmake
#0 678.5           arrow-config.cmake
#0 678.5
#0 678.5         Add the installation prefix of "Arrow" to CMAKE_PREFIX_PATH or set
#0 678.5         "Arrow_DIR" to a directory containing one of the above files.  If "Arrow"
#0 678.5         provides a separate development package or SDK, be sure it has been
#0 678.5         installed.
#0 678.5
#0 678.5
#0 678.5       -- Configuring incomplete, errors occurred!
#0 678.5       error: command '/usr/bin/cmake' failed with exit code 1
#0 678.5       [end of output]
#0 678.5
#0 678.5   note: This error originates from a subprocess, and is likely not a problem with pip.
#0 678.5   ERROR: Failed building wheel for pyarrow

Component(s)
Python

Could you provide a Dockerfile that reproduces this error?

Hi @kou, below are the example of Dockerfile and requirement.txt that I have
Dockerfile.txt
requirement.txt

PyArrow doesn't provide binary wheel packages that are compatible with Alpine Linux. That means that when doing pip install, it will try to build PyArrow from source.
However, that doesn't work out of the box just using pip, as PyArrow has some non-Python build dependencies that you will need to ensure are installed (as a starter, you need to install the Arrow C++ libraries). See https://arrow.apache.org/docs/developers/python.html#building-on-linux-and-macos

If pushd and/or popd are not present on your docker image you can use cd, this is not related with Arrow.

ya my bad. already figured it out. Just that followed the guide line : https://arrow.apache.org/docs/developers/python.html
Get cmake error which I couldnt figure out why:

[build  9/11] RUN cmake -DCMAKE_INSTALL_PREFIX=$ARROW_HOME         -DCMAKE_INSTALL_LIBDIR=lib         -DCMAKE_BUILD_TYPE=Debug         -DARROW_BUILD_TESTS=ON         -DARROW_COMPUTE=ON         -DARROW_CSV=ON         -DARROW_DATASET=ON         -DARROW_FILESYSTEM=ON         -DARROW_HDFS=ON         -DARROW_JSON=ON         -DARROW_PARQUET=ON         -DARROW_WITH_BROTLI=ON         -DARROW_WITH_BZ2=ON         -DARROW_WITH_LZ4=ON         -DARROW_WITH_SNAPPY=ON         -DARROW_WITH_ZLIB=ON         -DARROW_WITH_ZSTD=ON         -DPARQUET_REQUIRE_ENCRYPTION=ON         .. && make -j4 && make install:
#0 0.259 CMake Warning:
#0 0.259   Ignoring extra path from command line:
#0 0.259
#0 0.259    ".."
#0 0.259
#0 0.259
#0 0.259 CMake Error: The source directory "/" does not appear to contain CMakeLists.txt.
#0 0.259 Specify --help for usage, or press the help button on the CMake GUI.

Dockerfile:15
14 |     RUN mkdir arrow/cpp/build && cd arrow/cpp/build
15 | >>> RUN cmake -DCMAKE_INSTALL_PREFIX=$ARROW_HOME
16 | >>>         -DCMAKE_INSTALL_LIBDIR=lib
17 | >>>         -DCMAKE_BUILD_TYPE=Debug
18 | >>>         -DARROW_BUILD_TESTS=ON
19 | >>>         -DARROW_COMPUTE=ON
20 | >>>         -DARROW_CSV=ON
21 | >>>         -DARROW_DATASET=ON
22 | >>>         -DARROW_FILESYSTEM=ON
23 | >>>         -DARROW_HDFS=ON
24 | >>>         -DARROW_JSON=ON
25 | >>>         -DARROW_PARQUET=ON
26 | >>>         -DARROW_WITH_BROTLI=ON
27 | >>>         -DARROW_WITH_BZ2=ON
28 | >>>         -DARROW_WITH_LZ4=ON
29 | >>>         -DARROW_WITH_SNAPPY=ON
30 | >>>         -DARROW_WITH_ZLIB=ON
31 | >>>         -DARROW_WITH_ZSTD=ON
32 | >>>         -DPARQUET_REQUIRE_ENCRYPTION=ON
33 | >>>         .. && make -j4 && make install

34

ERROR: failed to solve: process "/bin/sh -c cmake -DCMAKE_INSTALL_PREFIX=$ARROW_HOME         -DCMAKE_INSTALL_LIBDIR=lib         -DCMAKE_BUILD_TYPE=Debug         -DARROW_BUILD_TESTS=ON         -DARROW_COMPUTE=ON         -DARROW_CSV=ON         -DARROW_DATASET=ON         -DARROW_FILESYSTEM=ON         -DARROW_HDFS=ON         -DARROW_JSON=ON         -DARROW_PARQUET=ON         -DARROW_WITH_BROTLI=ON         -DARROW_WITH_BZ2=ON         -DARROW_WITH_LZ4=ON         -DARROW_WITH_SNAPPY=ON         -DARROW_WITH_ZLIB=ON         -DARROW_WITH_ZSTD=ON         -DPARQUET_REQUIRE_ENCRYPTION=ON         .. && make -j4 && make install" did not complete successfully: exit code: 1

Hello guys,
I have the same issue, but from the thread is not clear to me how to solve it.
How should I change the Dockerfile in order to make pip install pyarrow succeed?
Thank you for the help!
Dockerfile:
FROM python:3.12.4-alpine3.20

RUN pip install --upgrade pip \
    && pip install pyarrow

Output:
=> CACHED [1/2] FROM docker.io/library/python:3.12.4-alpine3.20                                                                               0.0s
 => ERROR [2/2] RUN pip install --upgrade pip     && pip install pyarrow                                                                      31.5s
------
 > [2/2] RUN pip install --upgrade pip     && pip install pyarrow:
5.205 Requirement already satisfied: pip in /usr/local/lib/python3.12/site-packages (24.0)
5.431 Collecting pip
5.548   Downloading pip-24.2-py3-none-any.whl.metadata (3.6 kB)
5.588 Downloading pip-24.2-py3-none-any.whl (1.8 MB)
5.726    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 13.9 MB/s eta 0:00:00
5.897 Installing collected packages: pip
5.898   Attempting uninstall: pip
5.910     Found existing installation: pip 24.0
5.997     Uninstalling pip-24.0:
6.423       Successfully uninstalled pip-24.0
9.019 Successfully installed pip-24.2
9.020 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
10.55 Collecting pyarrow
10.64   Downloading pyarrow-17.0.0.tar.gz (1.1 MB)
10.74      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 16.8 MB/s eta 0:00:00
11.11   Installing build dependencies: started
27.23   Installing build dependencies: finished with status 'done'
27.23   Getting requirements to build wheel: started
28.21   Getting requirements to build wheel: finished with status 'done'
28.21   Preparing metadata (pyproject.toml): started
29.09   Preparing metadata (pyproject.toml): finished with status 'done'
29.60 Collecting numpy>=1.16.6 (from pyarrow)
29.60   Using cached numpy-2.0.1-cp312-cp312-musllinux_1_1_x86_64.whl.metadata (60 kB)
29.66 Using cached numpy-2.0.1-cp312-cp312-musllinux_1_1_x86_64.whl (19.6 MB)
29.85 Building wheels for collected packages: pyarrow
29.85   Building wheel for pyarrow (pyproject.toml): started
30.91   Building wheel for pyarrow (pyproject.toml): finished with status 'error'
30.96   error: subprocess-exited-with-error
30.96
30.96   × Building wheel for pyarrow (pyproject.toml) did not run successfully.
30.96   │ exit code: 1
30.96   ╰─> [352 lines of output]
30.96       <string>:34: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
30.96       running bdist_wheel
30.96       running build
30.96       running build_py
30.96       creating build
30.96       creating build/lib.linux-x86_64-cpython-312
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/flight.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_compute_docstrings.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/ipc.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/cuda.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/__init__.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_generated_version.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/orc.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/csv.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/pandas_compat.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/feather.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/dataset.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/types.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/benchmark.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/substrait.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/json.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/conftest.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/util.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/jvm.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/compute.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/fs.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/cffi.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/acero.py -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       creating build/lib.linux-x86_64-cpython-312/scripts
30.96       copying scripts/test_imports.py -> build/lib.linux-x86_64-cpython-312/scripts
30.96       copying scripts/test_leak.py -> build/lib.linux-x86_64-cpython-312/scripts
30.96       copying scripts/run_emscripten_tests.py -> build/lib.linux-x86_64-cpython-312/scripts
30.96       creating build/lib.linux-x86_64-cpython-312/benchmarks
30.96       copying benchmarks/__init__.py -> build/lib.linux-x86_64-cpython-312/benchmarks
30.96       copying benchmarks/parquet.py -> build/lib.linux-x86_64-cpython-312/benchmarks
30.96       copying benchmarks/convert_builtins.py -> build/lib.linux-x86_64-cpython-312/benchmarks
30.96       copying benchmarks/common.py -> build/lib.linux-x86_64-cpython-312/benchmarks
30.96       copying benchmarks/streaming.py -> build/lib.linux-x86_64-cpython-312/benchmarks
30.96       copying benchmarks/array_ops.py -> build/lib.linux-x86_64-cpython-312/benchmarks
30.96       copying benchmarks/convert_pandas.py -> build/lib.linux-x86_64-cpython-312/benchmarks
30.96       copying benchmarks/microbenchmarks.py -> build/lib.linux-x86_64-cpython-312/benchmarks
30.96       copying benchmarks/io.py -> build/lib.linux-x86_64-cpython-312/benchmarks
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_sparse_tensor.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_csv.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_builder.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_scalars.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/__init__.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_array.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_misc.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_fs.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_gandiva.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_util.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_cffi.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_table.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/arrow_16597.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/strategies.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_device.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/read_record_batch.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_orc.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_dataset_encryption.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_io.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/pandas_examples.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/arrow_39313.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_jvm.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_ipc.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_gdb.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_compute.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_json.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_schema.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_dlpack.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_cython.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_flight.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_cuda.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_extension_type.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_cuda_numba_interop.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_feather.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_substrait.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_strategies.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_tensor.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_convert_builtin.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/conftest.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_dataset.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_types.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/util.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_flight_async.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_memory.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_acero.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/arrow_7980.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_udf.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_cpp_internals.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/pandas_threaded_import.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_adhoc_memory_leak.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_pandas.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_deprecations.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/test_exec_plan.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/parquet
30.96       copying pyarrow/parquet/__init__.py -> build/lib.linux-x86_64-cpython-312/pyarrow/parquet
30.96       copying pyarrow/parquet/encryption.py -> build/lib.linux-x86_64-cpython-312/pyarrow/parquet
30.96       copying pyarrow/parquet/core.py -> build/lib.linux-x86_64-cpython-312/pyarrow/parquet
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/vendored
30.96       copying pyarrow/vendored/__init__.py -> build/lib.linux-x86_64-cpython-312/pyarrow/vendored
30.96       copying pyarrow/vendored/docscrape.py -> build/lib.linux-x86_64-cpython-312/pyarrow/vendored
30.96       copying pyarrow/vendored/version.py -> build/lib.linux-x86_64-cpython-312/pyarrow/vendored
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/interchange
30.96       copying pyarrow/interchange/__init__.py -> build/lib.linux-x86_64-cpython-312/pyarrow/interchange
30.96       copying pyarrow/interchange/from_dataframe.py -> build/lib.linux-x86_64-cpython-312/pyarrow/interchange
30.96       copying pyarrow/interchange/buffer.py -> build/lib.linux-x86_64-cpython-312/pyarrow/interchange
30.96       copying pyarrow/interchange/column.py -> build/lib.linux-x86_64-cpython-312/pyarrow/interchange
30.96       copying pyarrow/interchange/dataframe.py -> build/lib.linux-x86_64-cpython-312/pyarrow/interchange
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/__init__.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/encryption.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/test_compliant_nested_type.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/test_datetime.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/test_parquet_file.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/test_encryption.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/test_data_types.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/common.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/test_metadata.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/conftest.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/test_dataset.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/test_basic.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/test_parquet_writer.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       copying pyarrow/tests/parquet/test_pandas.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/parquet
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/tests/interchange
30.96       copying pyarrow/tests/interchange/__init__.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/interchange
30.96       copying pyarrow/tests/interchange/test_conversion.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/interchange
30.96       copying pyarrow/tests/interchange/test_interchange_spec.py -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/interchange
30.96       creating build/lib.linux-x86_64-cpython-312/examples
30.96       creating build/lib.linux-x86_64-cpython-312/examples/parquet_encryption
30.96       copying examples/parquet_encryption/sample_vault_kms_client.py -> build/lib.linux-x86_64-cpython-312/examples/parquet_encryption
30.96       creating build/lib.linux-x86_64-cpython-312/examples/flight
30.96       copying examples/flight/server.py -> build/lib.linux-x86_64-cpython-312/examples/flight
30.96       copying examples/flight/client.py -> build/lib.linux-x86_64-cpython-312/examples/flight
30.96       copying examples/flight/middleware.py -> build/lib.linux-x86_64-cpython-312/examples/flight
30.96       creating build/lib.linux-x86_64-cpython-312/examples/dataset
30.96       copying examples/dataset/write_dataset_encrypted.py -> build/lib.linux-x86_64-cpython-312/examples/dataset
30.96       running egg_info
30.96       writing pyarrow.egg-info/PKG-INFO
30.96       writing dependency_links to pyarrow.egg-info/dependency_links.txt
30.96       writing requirements to pyarrow.egg-info/requires.txt
30.96       writing top-level names to pyarrow.egg-info/top_level.txt
30.96       reading manifest file 'pyarrow.egg-info/SOURCES.txt'
30.96       reading manifest template 'MANIFEST.in'
30.96       warning: no files found matching '../LICENSE.txt'
30.96       warning: no files found matching '../NOTICE.txt'
30.96       warning: no previously-included files matching '*.so' found anywhere in distribution
30.96       warning: no previously-included files matching '*.pyc' found anywhere in distribution
30.96       warning: no previously-included files matching '*~' found anywhere in distribution
30.96       warning: no previously-included files matching '#*' found anywhere in distribution
30.96       warning: no previously-included files matching '.git*' found anywhere in distribution
30.96       warning: no previously-included files matching '.DS_Store' found anywhere in distribution
30.96       no previously-included directories found matching '.asv'
30.96       writing manifest file 'pyarrow.egg-info/SOURCES.txt'
30.96       creating build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/AWSSDKVariables.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/BuildUtils.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/DefineOptions.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindAWSSDKAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindAzure.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindBrotliAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindClangTools.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindGTestAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindInferTools.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindLLVMAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindOpenSSLAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindProtobufAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindPython3Alt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindRapidJSONAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindSQLite3Alt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindSnappyAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindThriftAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/Findc-aresAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindgRPCAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindgflagsAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindglogAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindjemallocAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/Findlibrados.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/Findlz4Alt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindorcAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/Findre2Alt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/Findutf8proc.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/FindzstdAlt.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/GandivaAddBitcode.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/SetupCxxFlags.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/ThirdpartyToolchain.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/UseCython.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/Usevcpkg.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/aws_sdk_cpp_generate_variables.sh -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/san-config.cmake -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying cmake_modules/snappy.diff -> build/lib.linux-x86_64-cpython-312/cmake_modules
30.96       copying pyarrow/__init__.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_acero.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_acero.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_azurefs.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_compute.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_compute.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_csv.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_csv.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_cuda.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_cuda.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_dataset.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_dataset.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_dataset_orc.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_dataset_parquet.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_dataset_parquet.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_dataset_parquet_encryption.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_dlpack.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_feather.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_flight.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_fs.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_fs.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_gcsfs.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_hdfs.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_json.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_json.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_orc.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_orc.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_parquet.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_parquet.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_parquet_encryption.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_parquet_encryption.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_pyarrow_cpp_tests.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_pyarrow_cpp_tests.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_s3fs.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/_substrait.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/array.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/benchmark.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/builder.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/compat.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/config.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/device.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/error.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/gandiva.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/io.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/ipc.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/lib.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/lib.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/memory.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/pandas-shim.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/public-api.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/scalar.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/table.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/tensor.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       copying pyarrow/types.pxi -> build/lib.linux-x86_64-cpython-312/pyarrow
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libarrow_substrait.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libparquet_encryption.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/common.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libarrow.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libarrow_dataset_parquet.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/__init__.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libarrow_fs.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libarrow_dataset.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libgandiva.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libarrow_feather.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libarrow_python.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libarrow_acero.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libarrow_cuda.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/includes/libarrow_flight.pxd -> build/lib.linux-x86_64-cpython-312/pyarrow/includes
30.96       copying pyarrow/tests/bound_function_visit_strings.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/extensions.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       copying pyarrow/tests/pyarrow_cython_example.pyx -> build/lib.linux-x86_64-cpython-312/pyarrow/tests
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/tests/data
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/parquet
30.96       copying pyarrow/tests/data/parquet/v0.7.1.all-named-index.parquet -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/parquet
30.96       copying pyarrow/tests/data/parquet/v0.7.1.column-metadata-handling.parquet -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/parquet
30.96       copying pyarrow/tests/data/parquet/v0.7.1.parquet -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/parquet
30.96       copying pyarrow/tests/data/parquet/v0.7.1.some-named-index.parquet -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/parquet
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/orc
30.96       copying pyarrow/tests/data/orc/README.md -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/orc
30.96       copying pyarrow/tests/data/orc/TestOrcFile.emptyFile.jsn.gz -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/orc
30.96       copying pyarrow/tests/data/orc/TestOrcFile.emptyFile.orc -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/orc
30.96       copying pyarrow/tests/data/orc/TestOrcFile.test1.jsn.gz -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/orc
30.96       copying pyarrow/tests/data/orc/TestOrcFile.test1.orc -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/orc
30.96       copying pyarrow/tests/data/orc/TestOrcFile.testDate1900.jsn.gz -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/orc
30.96       copying pyarrow/tests/data/orc/TestOrcFile.testDate1900.orc -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/orc
30.96       copying pyarrow/tests/data/orc/decimal.jsn.gz -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/orc
30.96       copying pyarrow/tests/data/orc/decimal.orc -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/orc
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/feather
30.96       copying pyarrow/tests/data/feather/v0.17.0.version.2-compression.lz4.feather -> build/lib.linux-x86_64-cpython-312/pyarrow/tests/data/feather
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/src
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow
30.96       creating build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/CMakeLists.txt -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/api.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/arrow_to_pandas.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/arrow_to_pandas.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/arrow_to_python_internal.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/async.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/benchmark.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/benchmark.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/common.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/common.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/csv.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/csv.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/datetime.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/datetime.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/decimal.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/decimal.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/deserialize.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/deserialize.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/extension_type.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/extension_type.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/filesystem.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/filesystem.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/flight.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/flight.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/gdb.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/gdb.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/helpers.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/helpers.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/inference.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/inference.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/init.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/init.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/io.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/io.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/ipc.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/ipc.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/iterators.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/numpy_convert.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/numpy_convert.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/numpy_internal.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/numpy_interop.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/numpy_to_arrow.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/numpy_to_arrow.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/parquet_encryption.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/parquet_encryption.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/pch.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/platform.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/pyarrow.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/pyarrow.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/pyarrow_api.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/pyarrow_lib.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/python_test.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/python_test.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/python_to_arrow.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/python_to_arrow.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/serialize.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/serialize.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/type_traits.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/udf.cc -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/udf.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       copying pyarrow/src/arrow/python/visibility.h -> build/lib.linux-x86_64-cpython-312/pyarrow/src/arrow/python
30.96       running build_ext
30.96       creating /tmp/pip-install-6vmlv8p3/pyarrow_69dbbd2abee541f9a7de9153d465eb10/build/temp.linux-x86_64-cpython-312
30.96       -- Running cmake for PyArrow
30.96       cmake -DCMAKE_INSTALL_PREFIX=/tmp/pip-install-6vmlv8p3/pyarrow_69dbbd2abee541f9a7de9153d465eb10/build/lib.linux-x86_64-cpython-312/pyarrow -DPYTHON_EXECUTABLE=/usr/local/bin/python -DPython3_EXECUTABLE=/usr/local/bin/python -DPYARROW_CXXFLAGS= -DPYARROW_BUNDLE_ARROW_CPP=off -DPYARROW_BUNDLE_CYTHON_CPP=off -DPYARROW_GENERATE_COVERAGE=off -DCMAKE_BUILD_TYPE=release /tmp/pip-install-6vmlv8p3/pyarrow_69dbbd2abee541f9a7de9153d465eb10
30.96       error: command 'cmake' failed: No such file or directory
30.96       [end of output]
30.96
30.96   note: This error originates from a subprocess, and is likely not a problem with pip.
30.96   ERROR: Failed building wheel for pyarrow
30.96 Failed to build pyarrow
31.01 ERROR: ERROR: Failed to build installable wheels for some pyproject.toml based projects (pyarrow)

@numbworks you have a different problem, you don't have cmake installed. Building Pyarrow from source needs a matching version of Arrow C++ available as well.  See docs: https://arrow.apache.org/docs/developers/python.html#building-on-linux-and-macos
And please refrain from posting on multiple issues, it just creates notification spam.
@hteeyeoh your problem is that the dir .. does not contain the arrow root CMakeLists.txt, which happens because each run command is in it's own shell, so the cd arrow/cpp/build doesn not affect the next RUN, so moving the cd command into the cmake would work or you can use -S /arrow/cpp -B /arrow/cpp/build to specify both source and build dir explicitly without relying on the cwd: https://cmake.org/cmake/help/latest/manual/cmake.1.html#generate-a-project-buildsystem

you have a different problem, you don't have cmake installed. Building Pyarrow from source needs a matching version of Arrow C++ available as well.

@assignUser
Hey Jacob, thank you for your answer, but it seems from the thread that your solution doesn't work.
Do you have a Dockerfile example that demonstrates that your proposal works?
I also read the following answer from you in another thread:

Please see https://github.com/apache/arrow/issues/18036, we don't publish musl wheels at the moment.

Are there plan to change this? Because, I don't know if you are aware of it, but PyArrow will be a mandatory dependency for Pandas starting Pandas v3.0.0 - please read more here: https://pandas.pydata.org/pdeps/0010-required-pyarrow-dependency.html.
One of the official Python images on Docker Hub is based on Alpine Linux, which it's also the more optimized on a resources perspective. The lack of PyArrow wheels for Alpine means that, starting Pandas 3.0.0 (maybe in six months from now), thousands of Python developers and data scientists won't be able to do their work in a containerized environment.
The only alternative at the moment is to use the Debian-based image on Python's Docker Hub, which it's 15x more resource hungry than Alpine:
FROM python:3.12.5-bullseye

RUN pip install --upgrade pip \
    && pip install numpy==1.26.3 \
    && pip install pyarrow==15.0.0 \
    && pip install openpyxl==3.1.0 \
    && pip install pandas==2.2.0 \

I hope you can discuss this matter within the team and assign the right priority to it.
Thank you.

@numbworks you have a different problem, you don't have cmake installed. Building Pyarrow from source needs a matching version of Arrow C++ available as well. See docs: https://arrow.apache.org/docs/developers/python.html#building-on-linux-and-macos And please refrain from posting on multiple issues, it just creates notification spam.
@hteeyeoh your problem is that the dir .. does not contain the arrow root CMakeLists.txt, which happens because each run command is in it's own shell, so the cd arrow/cpp/build doesn not affect the next RUN, so moving the cd command into the cmake would work or you can use -S /arrow/cpp -B /arrow/cpp/build to specify both source and build dir explicitly without relying on the cwd: https://cmake.org/cmake/help/latest/manual/cmake.1.html#generate-a-project-buildsystem

Thank you. Will give it a try

@numbworks If you had checked out the issue you would know that we are not against providing musl wheels, someone just has to do the work.

I hope you can discuss this matter within the team and assign the right priority to it.

Hey, cool thing about this being an open source project: you are part of the team! So if this is something you would like to see the fastest way to get it is to contribute to a solution.


Mark synthesized prime symbol frame text-like

The pre-built prime symbols are GlyphFragment and the character is non-MathClass::Large, and therefore are text-like: https://github.com/typst/typst/blob/34990f7f0e25d51a76520edc1101df606013973f/crates/typst/src/math/attach.rs#L120-L128 https://github.com/typst/typst/blob/34990f7f0e25d51a76520edc1101df606013973f/crates/typst/src/math/fragment.rs#L146-L147 and equivalently the manually-synthesized prime symbol should also be text-like.

Thanks!


Fix incorrect port used in docs and docker-compose example

The docker-compose examples in the docs and the example file incorrectly use port 8000 instead of 9000.

I think these were correct before: 8000 is the external facing web server, 9000 is the rpc endpoint for the agents.
I may be wrong though

Okay, I checked server.go and flags.go which confirmed my suspicion.
When run without Let's Encrypt integration the default port 8000 is used for the web UI. Otherwise ports 80 and 443 are used instead.
Sorry. I hope I didn't waste too much of your time. 🙂

Interesting. I see that port 8000 is exposed in the Dockerfiles, but I don't quite understand what it does.
I just now realized that due to the internal network the agent won't have any issues connecting to the server. We only have to expose 9000 when we want to connect other (external) agents.
Is port 8000 maybe the default web port when not using Let's Encrypt?

Yeah, I think it is


Code Quality: Adding the possibility of plural translation using ICU format

Resolved / Related Issues
To prevent extra work, all changes to the Files codebase must link to an approved issue marked as Ready to build. Please insert the issue number following the hashtag with the issue number that this Pull Request resolves.

Closes #15323

Steps used to test these changes
Stability is a top priority for Files and all changes are required to go through testing before being merged into the repo. Please include a list of steps that you used to test this PR.

Testing plural implementation for text strings using ICU format
Adding for all necessary strings

Screenshot

How to use it
Plural.ItemsSelected.Text -> {0, plural, one {# item selected} other {# items selected}}
// Auto incemental placeholder '0' 0,1,...
"Plural/ItemsSelected/Text".GetLocalizedFormatResource(selectedItems.Count);
// OR
"Plural/ItemsSelected/Text".GetLocalizedFormatResource(0.ToFormatPairs(selectedItems.Count));
// OR
"Plural/ItemsSelected/Text".GetLocalizedFormatResource("0".ToFormatPairs(selectedItems.Count));
// OR
"Plural/ItemsSelected/Text".GetLocalizedFormatResource(new Dictionary<string, object?>() { ["0"] = selectedItems.Count });

Results:
0 items selected
1 item selected
2 items selected
...
10 items selected

Plural.ItemsCount.Text -> {0, plural, one {item} other {items}}
// Auto incemental placeholder '0' 0,1,...
"Plural/ItemsCount/Text".GetLocalizedFormatResource(FilesystemViewModel.FilesAndFolders.Count);
// OR
"Plural/ItemsCount/Text".GetLocalizedFormatResource(0.ToFormatPairs(FilesystemViewModel.FilesAndFolders.Count));
// OR
"Plural/ItemsCount/Text".GetLocalizedFormatResource("0".ToFormatPairs(FilesystemViewModel.FilesAndFolders.Count));
// OR
"Plural/ItemsCount/Text".GetLocalizedFormatResource(new Dictionary<string, object?>() { ["0"] = FilesystemViewModel.FilesAndFolders.Count });

Results:
items
item
items
...
items

Okay I'm done, we could try just these two for now, we'll see how the translators handle it. I could finish the others in the next PR

Okay I'm done, we could try just these two for now, we'll see how the translators handle it. I could finish the others in the next PR

It might be a good idea to add a link to the basic usage documentation in Crowdin's details: Crowdin ICU Message Syntax | Plural

I’m not sure why but there’re duplicated functionalities including RespurceString, GetLocalized, GetLocalizedResource, LocalizationService, and this.
We have to refactor…

Codebase quality reviews. If you’ve tested in en-US for them, LGTM. Japanese doesn’t have this kind of difference(singular and plural).
If not necessary, only 'other' is used  https://www.unicode.org/cldr/charts/45/supplemental/language_plural_rules.html#ja


pkg/mauth/compare: Add compare package

I'm going to try to avoid one big PR for multi-user. Here's the first small component: a package that will be used for encoding comparison operators in macaroon caveats.
Refs #410

I have run go-fuzz against this package for a while and it found no crashes. (It did find two bugs in json5 though...)

Updated the integers comparison to use varint encoding.

LGTM pending comment.


Error While Configuring and Selecting KUBECONFIG

I have an issue while running the below commands which are for installing punq:

There have been some issues while selecting $Kubeconfig

To resolve this we have to change or Update the documentation of punq which we are using without ingress as per our need.

Sorry for waiting so long for a reply. The error message was not good enough and did not help you. I have replaced it with:
logger.Log.Fatalf("Error: $KUBECONFIG is not set, and the default Kubernetes context cannot be loaded. The $KUBECONFIG environment variable specifies the kubeconfig file path, which is essential for connecting to your Kubernetes cluster. To resolve this, please set $KUBECONFIG by using 'kubectx' for easier context switching or by manually specifying the path to your kubeconfig file. For detailed instructions on configuring your kubeconfig, please refer to https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/.")
This should provide more detailed information how to handle this situation.


In landscape mode, DeviceType is wrong.

My environment is iOS 14.5 Xs simulator. Flutter version is 2.5.3.
DeviceType is set to .tablet.
I think that swapping the size dimensions when the orientation is landscape is causing this bug.

same issue #6


Instruction to install globally (npm install -g)

Probably shouldn't be encouraging people to install globally at this point.

Relates to #1454


How to use variables inside templates

Hi,
I've been trying to iterate over variables inside .ecr templates with no success. The code I have looks like this:
...
get "/" do
  todos = [{text: "foo"}, {text: "bar"}, {text: "foobar"}]
  render "src/views/home.ecr", "src/views/layout.ecr
end
...

...
<div class="panels-wrapper">
  <% todos.each do |todo| %>
    <%= todo.text %>
  <% end %>
</div>
...

The exception looks like this:
Error in ./src/app.cr:16: expanding macro

  render "src/views/home.ecr", "src/views/layout.ecr"
  ^~~~~~
....

Can anybody help me with this?
Thanks,
Andrés

Hey @Angarsk8. I am not a contributor, nor am I well versed in the Crystal language. I am a Ruby nerd though. From the information you've provided, it looks to be a syntax error. The following line is missing a closing quotation mark:
render "src/views/home.ecr", "src/views/layout.ecr

If this is indeed the issue, then there is a different bug: the exception shows the line with proper syntax, when it shouldn't.

Nice catch @cbortz. I just opened https://github.com/crystal-lang/crystal/issues/3003.

Sorry 😲, that was indeed the problem I catched it yesterday...
get "/" do
  todos = notes.map { |note_str|  Note.from_json(note_str) }
  render "src/views/home.ecr", "src/views/layout.ecr"
end

Thanks,

@Angarsk8 could you please tell us your Crystal version for this issue?


Remove unused PInvokes

This is the first step of a process to merge PInvokes between the .NET and .NET Framework projects. I've started by removing most of the unused PInvokes from both projects. There shouldn't be any surprises in CI.
I've also changed SqlUtil's SocketDidNotThrow method to throw an Exception rather than an InternalException. This was the only reference to InternalException which for the .NET 8.0 target, so this change means that when .NET 6.0 support is dropped, everything in the netcore/src/Common/src/System folder except for NotImplemented.cs can be removed.
The next step of the PInvoke merge process will be more involved. What's the coding standard for this? dotnet/runtime uses one folder per OS, one subfolder per DLL, one file per method, and there are quite a few files which fit this pattern. Other parts of the .NET project have a single file containing every PInvoke for a single DLL (the SNI DLL.)
Step 2 will be to merge the OS PInvokes which are needed for .NET Framework and .NET 8.0, and step 3 is currently to address the native SNI PInvokes. At the point of step 3, I'd also like to change the .NET Framework project to refer to Microsoft.Data.SqlClient.SNI.runtime, so it matches the .NET project. This might depend on #2671.

Please resolve conflicts to help us move forward with reviews.
Thanks!

Thanks @cheenamalhotra - now resolved, and being CI'd.

I'm working on dropping net6 support here #2927

That sounds sensible to me, thanks. I've noticed that we're working in similar areas!
I've reverted the changes in netcore as suggested, but have left SqlUtil.SocketDidNotThrow continuing to throw an Exception rather than an InternalException. I can revert this too if it causes merge conflicts.

I'm going to continue the merging process with SNI and LocalDBAPI stuff. I selfishly want to do the safe/nativemethods migration, but if I won't stop you if you want to do it :)

I've got no problem stepping away from the safe/nativemethods migration there. A complete merge of the SNI PInvokes will likely need changes to the native SNI package, so I think that work would have to come to you and the rest of the team whatever happens.
I'm interested to see how we merge LocalDBAPI. There were enough differences between netcore and netfx that I'd kicked it into the long grass while I tried to deal with the simple merges.

I think that all sounds good! I just don't want to steal your thunder 😛 We really appreciate your contributions and feedback!
The main reason I got into the interop/pinvoke stuff was because I started on LocalDBAPI, then found it had too many dependencies on SNINativeWrapper. So I started merging SNINativeWrapper, and found it had too many dependencies on Interop. So I started merging the Interop stuff... The LocalDBAPI and SNINativeWrapper stuff is going to be challenging to merge since the code isn't aligned the same in both versions (in at least one case, split between files in one version, and in another all in the same file).
Either way, let's get one more review on this one 👍


Be able to set a CNAME for the Kudu service that is behind a load balancer

Repro steps.

Deploy an App Gateway (layer 7 load balancer)
Point Domain (https://myapp.contoso.com) to internal app gateway domain (.cloudapp.net)
Deploy an ASE with ILB
Point App Gateway rule to internal ILB Address (e.g.) <IP_ADDRESS>
Create a Web App inside ASE
Create CNAME for Web App to listen to myapp.contoso.com
Create a CNAME for Web App myapp.scm.contoso.com
Try to access KUDU via myapp.scm.contoso.com
--> this will not work because the KUDU service does not listen to that hostname.

Expected behaviour
Kudu is accessable because we can set custom CNAMES in Kudu config.
I hope I did not miss a detail. If so please let me know.
Thanks,
Sandro

Hi
If the problem persists and is related to running it on Azure App Service, please open a support incident in Azure:
https://learn.microsoft.com/en-us/azure/azure-portal/supportability/how-to-create-azure-support-request
This way we can better track and assist you on this case
Thanks,
Joaquin Vano
Azure App Service


Different behavior between Ruby 2.7 and Ruby 3.0

Subject of the issue
I found different behavior between Ruby 2.7 and Ruby 3.0.
I think it's caused by changes of Ruby 3.0 and I'd like to any idea why this difference occurs.
Your environment

Ruby version:

ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-linux]

rspec-core version:

3.10.0

Steps to reproduce
Run the following spec code with Ruby 2.7 and 3.0.
RSpec.describe NameError do
  example 'test 1' do
    expect { foo }.to raise_error(include(inspect))
  end

  context do
    example 'test 2' do
      expect { foo }.to raise_error(include(inspect))
    end
  end
end

For Ruby 2.7, test 1 will be passed but test 2 will be failed.
$ RBENV_VERSION=2.7.2 rspec test_spec.rb
.F

Failures:

  1) NameError  test 2
     Failure/Error: expect { foo }.to raise_error(include(inspect))

       expected Exception with include "#<RSpec::ExampleGroups::NameError::Anonymous \"test 2\" (./test_spec.rb:7)>", got #<NameError: undefined local variable or method `foo' for #<RSpec::ExampleGroups::NameError::Anonymous:0x000055fe31909040>> with backtrace:
         # ./test_spec.rb:8:in `block (4 levels) in <top (required)>'
         # ./test_spec.rb:8:in `block (3 levels) in <top (required)>'
     # ./test_spec.rb:8:in `block (3 levels) in <top (required)>'

Finished in 0.01508 seconds (files took 0.07416 seconds to load)
2 examples, 1 failure

Failed examples:

rspec ./test_spec.rb:7 # NameError  test 2

For Ruby 3.0, both of test 1 and test 2 will be passed.
$ RBENV_VERSION=3.0.0 rspec test_spec.rb
..

Finished in 0.00615 seconds (files took 0.08018 seconds to load)
2 examples, 0 failures

Expected behavior
I think test 2 should also be passed even in the case of Ruby 2.7 but I'm not sure.
Actual behavior
In case of Ruby 2.7, test 1 will be passed but test 2 will be failed.
In case of Ruby 3.0, test 1 and test 2 will be passed.

This is due to this difference:
3.0:
NameError: undefined local variable or method `foo' for #<RSpec::ExampleGroups::NameError::Anonymous "test 2" (./spec/a_spec.rb:3)>

2.7:
NameError: undefined local variable or method `foo' for #<RSpec::ExampleGroups::NameError::Anonymous:0x00007fa49654f398>

where inspect in both cases is
"#<RSpec::ExampleGroups::NameError::Anonymous \"test 2\" (./spec/a_spec.rb:3)>"

I can't think of an approach to work around this.
Apart from this synthetic example, do you experience any problems with real specs?

do you experience any problems with real specs?

Yes. My some unit tests are broken due to this problem when I try to update Ruby 2.7 to 3.0.

Please provide a failing spec.

These are a failing spec and its log.
https://github.com/rggen/rggen-core/blob/5222c3646ff600068f38af7b789dc97948f2d778/spec/rggen/core/utility/error_utility_spec.rb#L48
https://github.com/rggen/rggen-core/runs/1613456971?check_suite_focus=true#step:6:15

Your examples appear to be monkey patching exceptions, exception output can and does change across Ruby versions and is not within RSpecs domain.
In your original examples, you use inspect output for an instance of a class (which is what a test is here), and can also change across Ruby versions, this is not something we provide, its the standard Ruby inspect, you're doing the equivalent of this:
begin
  foo
rescue NameError => error
  fail unless error.message.include(inspect)
end

Closing because changes in Ruby versions can cause changes in standard Ruby output.


dang-993-1024/NewButton with primary, secondary, & warning styles

JIRA
dang-993 button primary styles & dang-1024 button secondary styles
Demo link
Storybook NewButton
figma for ref
Description
✨ NewButton component will eventually replace LobButton (and can then be renamed to that), when design is finished and all states are added. There is the intention to have 2 sizes for the button but for now there is only the default one (which may become the 'small', tbd)
Also adds the recent changes to the TW plugin that bring on the 'active' and 'focus' variants.
Screenshots

Do you know if there are plans to add a 'success' green variant too?
yes! waiting for success design!

Could you also showcase how the button would look with an icon, as the figma designs?
Icons will be added as components! see 2nd story

will also add variant 'none' and 'link' (waiting for Link design too)


Clearly document JEKYLL_ENV requirement on build environments

I think this needs to be  more stressed. I figured the reason you mentioned it is that you're using the env variable in the postcss config on your demo repo only. I didn't realize it would hang in netlify and y local docker env.

Originally posted by @steveoh in https://github.com/mhanberg/jekyll-postcss/issues/8#issuecomment-632426397
Acceptance Criteria

[ ] The readme should clearly state that you should definitely set the JEKYLL_ENV in your build environment, or else your build is liable to hang and then fail.

This bit me in docker as well as netlify.
currently debugging this issue now...
/usr/local/lib/ruby/2.7.0/json/common.rb:156:in `parse': 783: unexpected token at '⚠  Tailwind is not purging unused styles because no template paths have been provided. (JSON::ParserError)
If you have manually configured PurgeCSS outside of Tailwind or are deliberately not
removing unused styles, set `purge: false` in your Tailwind config file to silence
this warning.

Can you elaborate on what JEKYLL_ENV has to do with that error? To me it looks like a tailwind misconfiguration.

Can you elaborate on what JEKYLL_ENV has to do with that error? To me it looks like a tailwind misconfiguration.

Sorry yah they arent related. I should open a new issue if I wanted some help with that. I'll see if I can get it working first.


[SPARK-15531] [DEPLOY] spark-class tries to use too much memory when running Launcher

What changes were proposed in this pull request?
Explicitly limit launcher JVM memory to modest 128m
How was this patch tested?
Jenkins tests.

CC @vanzin though you indicated this was fine

Test build #59490 has started for PR 13360 at commit d63e421.

Test build #59490 has finished for PR 13360 at commit d63e421.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/59490/
Test PASSed.

LGTM. Merging to master / 2.0 / 1.6 (if no conflicts).

(Didn't merge clean into 1.6, FYI, so gave up.)


[Documentation] - Wrongs StoryBook Docs for Modal Component (No Footer)

Url: https://web3ui.github.io/web3uikit/?path=/docs/5-popup-modal--no-footer
As developer, I do expect to see the prop hasFooter={false} in the docs.

Hi, I am taking this issue. Is this really an issue? @BillyG83

@dani69654 can i get some insight into this issue

i think he means on this story is expecting that Sotrybook will show the prop when he clicks 'show code' button. is that right @dani69654 ?


Add 2fa requirement

In the .env file there is a setting to make 2 factor auth mandatory for all users. The function has however not been implemented yet meaning that everyone can use the service without 2fa, even when they should have it enabled as configured.
I would like to prohibit uploading images when this setting is enabled and the current user does not have 2fa - Both when uploading via the API endpoint and via the website itself. I'd do it myself but considering it's Hacktoberfest 2017 I thought that it'd be nice to give someone else the chance to make this small change.

is goed


Dev container

Möglichkeit hinzugefügt einen Devcontainer zu starten der die Entwicklung von EVCC auf Windows Systemen erleichtert.

I've had a try and couldn't get it to work. It took some 10 minutes to download seemingly a few GB. Starting the container now fails. Not sure how useful this eventually is?

The 10 minute wait is normal when starting for the first time. It is possible to optimise this time by removing the make commands. What error message do you get when starting? Changing the branch when building can also produce errors.

My two cents: For someone who has no idea how to setup a go and node dev env, 10 mins much faster then install all required tools.

@StefanSchoof did you actually try it? Did it help you? It didn't help me, but happy to merge if there is real demand.

As use case I have something like https://github.com/evcc-io/evcc/pull/15348 or an update to docs in mind. Changing the text is something many can, but for running lint and make docs is a thing that needs time to install all deps.
I did a little testing and found some things

I would remove the make commands. I takes much time and maybe someone may not need it, eg to run make docs
I think adding the go extension ("golang.go") to the extensions makes sense
And the imported things: make docs and make lint are not working inside this

I think to make this useful this command should be able to run. I had no time to investigate if this is something can be fixed quick.

A make docs works after an make install. So I think having a "postCreateCommand": "make install" makes sense.

Thank you @StefanSchoof for your addition. Does it work the same way for you now? Then @andig could look into the issue again.

Yes, it worked in my tests.

Thank you for the work put into this. I do lean to not merging this. Apart from not using dev containers myself (I didn't immediately see how to effectively do so) I do not want to take over responsibility for maintaining the container. It may be a small add-on but as team one that we cannot shoulder. Sorry for not being more supportive in this case.


feat(docs): Added documentation for the 'URI-XSS.fuzzdb.txt' wordlist

This PR is part of implementing issue #929

Nice - good add @ItsIgnacioPortal


Warning message and freezeup on Windows 10 / node 7.1.0

When attempting to login on a Windows 10 box running node 7.1, you get:
> mobile-center login
(node:13360) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): Error: This socket is closed
(node:13360) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

and then the CLI freezes up for quite a while waiting for some sort of timeout.

This appears to be a regression in node, see https://github.com/nodejs/node/issues/9542.
Filing this issue here for tracking, won't be attempting further fix / workaround.
This broke a lot more than just us - yeoman, mocha, inquirer in general have all reported same error.

Fixed in node 7.2.0


adding relevant content throughout the website

Starting from here, I wish to add and update good and relatable content throughout the website, so please assign me this issue under Hacktoberfest.

bro when you added your pull request ,  on which date ???


dealing with many different but related graphs

Hi,
I have many graphs that can be indexed by time (weeks),  they represent the same social network. I want to predict some of the features for each of those recorded graphs.
This earlier issue helps somewhat. However, in my case not only feature values change, but also nodes in x and edges in edge_index do. Following the suggestion there
data1 = Data(edge_index=edge_index1, x=x1)
data2 = Data(edge_index=edge_index2, x=x2)
batch = Batch.from_data_list([data1, data2])

is batching all these graphs one on top of another the preferred/only way? I have a lot of them... Or is there some generic structure I can use and reuse?
More importantly, given that nodes and edges change from one graph to another, can I be certain that training will not be effected by nodes (and edges) moving around, changing their order, total number and so on? (To be sure, I set up the Net class generically as if I deal with just one recorded graph that will be summarized in some dataset Data(edge_index=edge_index, x=x).)
Thank you very much for your time.

I have some additional questions on the same topic.
My graph data structure is a list dataAll=[data_1, data_2, data_3, ... data_525], with each data_i having varying nodes and edges. (I tried to use batch = Batch.from_data_list([data_1, data_2, ..., data_525]), but that just merges all my data subsets together, which i don't think is correct, if anything for memory load.)
When defining the network, I added node_dim=1 to let the message passing algorithm understand this.
class Net(torch.nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        nnA = torch.nn.Sequential(torch.nn.Linear(data.num_edge_features, data.num_node_features*num_n1, node_dim=1))
        self.conv = NNConv(data.num_node_features, num_n1, nnA, aggr='mean', node_dim=1)

with the forward function defined without such modifications.
However, when I'm trying to send the data to CUDA with data = dataAll.to(device), it does not work for lists.
device = torch.device('cuda')
data = dataAll.to(device)
model = Net().to(device)
optimizer = torch.optim.Adam(model.parameters(), lr=0.005, weight_decay=2e-5)

Also, I am not sure how to set up the actual training, given this weird data structure. Is it something like below, or do I need to use batches (if the latter, as far as I understand it's not going to be standard mini-batching because my data is quite rigidly structured)?
model.train()
for epoch in range(100):
    optimizer.zero_grad()
    out = model(data_optimize)
    #calculate loss and so on

Lastly, where and how do I define training and testing masks, given that they are different for subsets data_i in dataAll structure?
I would be really grateful for some constructive advice.

As you correctly said, batching all graphs together will usually not work due to memory limitations. I'm not sure what your training objective looks like, but you should consider training in mini-batches (without node_dim=1 since you are not operating on static graphs). For a temporal network (where examples in a batch should be consecutive), this could look like:
loader = torch.utils.DataLoader(range(num_examples - batch_size), batch_size=1, shuffle=True)
for idx in loader:
    batch = Batch.from_data_list(dataset[idx:idx+batch_size)

Hope that this is useful to you! This should work even when nodes are changing their order.
In case examples inside a batch do not need to be consecutive, you can simply use the PyG dataloader though:
from torch_geometric.data import DataLoader
loader = DataLoader(dataset, batch_size=32)

Thank you, @rusty1s, definitely useful!
All right, so I got confused about node_dim=1, and I need your consecutive DataLoader formulation. Here, my training objective is node features.
This is what I get in the end, is it what you had in mind?
device = torch.device('cuda')

num_ep = 100
num_examples = 525
batch_size = 1
loader = torch.utils.data.DataLoader(range(num_examples-batch_size), batch_size=1, shuffle=True)

for epoch in range(num_ep):
    for idx in loader:
        batch = Batch.from_data_list(dataAll[idx:idx+batch_size])

        dataAll[idx].train_mask = torch.tensor(train_set[idx, :, 0], dtype=torch.bool)
        dataAll[idx].test_mask = torch.tensor(test_set[idx, :, 0], dtype=torch.bool)

        data = dataAll[idx].to(device)
        model = Net().to(device)
        optimizer = torch.optim.Adam(model.parameters(), lr=0.005, weight_decay=2e-5)
        model.train()

        optimizer.zero_grad()
        out = model(data)[data.train_mask]
        trg = ( data.y[data.train_mask,0] )
        loss = torch.nn.functional.l1_loss( out, trg )
        loss.backward()
        optimizer.step()

One additional clarification: given (1) such batching and training procedures, and that (2) my Net class in its __init__(self) definition, as you can see from my previous posting, refers to input as data (where data = dataAll[idx].to(device) in the training module) and contains a random initialization of network's parameters self.B = torch.nn.Parameter(torch.randn(num_out_features)), will the learning process be continuous? I'm worried about it being restarted every time I change batch and/or epoch.
Thank you again!

It currently looks like you input a single example into your model, and do not make use of batch information (in particular, because batch is never used). It currently trains the model in a static fashion (one example in -> one prediction out), which I do believe is not what you are trying to achieve. You have two alternatives:

Use batch in model
Apply backpropagation trough time by an additional for-loop

for idx in loader:
    optimizer.zero_grad()
    for b in range(batch_size):
        out = model(dataAll[idx + b]
        loss += ...
    loss.backward()
   optimizer.step()

Nonetheless, your model will not take temporal information into account as long as you do not design it to do so (e.g. via a memory module).

Hmm, I thought my formulation was actually doing something like what your second alternative says. But you are right, the batch was never used and was redundant. Could you please take a look at another attempt?
Given the following Net class (same as above):
class Net(torch.nn.Module):
    def __init__(self):
        super(Net, self).__init__()
        nnA = torch.nn.Sequential(torch.nn.Linear(data.num_edge_features, data.num_node_features*num_n1, node_dim=1))
        self.conv = NNConv(data.num_node_features, num_n1, nnA, aggr='mean', node_dim=1)
        #subsequent layers including
        self.B = torch.nn.Parameter(torch.randn(num_out_features))
        #and so on

I am now explicitly using batch rather than dataAll while constantly redefining data that the Net formulation relies on:
device = torch.device('cuda')

num_ep = 100
num_examples = 525
batch_size = 1
loader = torch.utils.data.DataLoader(range(num_examples-batch_size), batch_size=1, shuffle=True)

for epoch in range(num_ep):
    for idx in loader:
        batch = Batch.from_data_list(dataAll[idx:idx+batch_size])

        batch.train_mask = torch.tensor(train_set[idx, :, 0], dtype=torch.bool)
        batch.test_mask = torch.tensor(test_set[idx, :, 0], dtype=torch.bool)

        data = batch.to(device)
        model = Net().to(device)
        optimizer = torch.optim.Adam(model.parameters(), lr=0.005, weight_decay=2e-5)
        model.train()

        optimizer.zero_grad()
        out = model(data)[data.train_mask]
        trg = ( data.y[data.train_mask,0] )
        loss = torch.nn.functional.l1_loss( out, trg )
        loss.backward()
        optimizer.step()

Understand about the memory module or something like that, for the time being I just want to make sure the plain vanilla formulation is set up correctly. So I don't mind if I feed example graphs one by one as long as after using all num_examples that the loader supplies, my network parameters are optimized with respect to all the data I have (in each epoch, that is).
Thank you so much for your help, really appreciate it!

That looks mostly correct to me, although it seems like the dimensions of model(data) (the output of every node in the batch) and data.train_mask (the mask for the first graph in the batch) do not match.

Thank you! This is interesting. My train_mask is graph-specific and has num_nodes masks. At the same time, my Net returns num_out_features of predictions, so as far as I understand model(data) is returning [num_nodes, num_out_features] of them. In the case considered, every batch is one graph (dataAll[idx] contains exactly one graph), so the dimensions should match.
What am I  missing? (When I run the code, it does not give an error, but of course this does not mean the code is correct.)

Yes, that only works for batch_sizes of 1. In case of larger batch sizes, you need to take a slice of the train_set for masks: train_set[idx:idx+batch_size].

Right, I was thinking solely about batches of 1. Thanks for being pedantic and spotting the potential error!
Very good, thank you very much for your guidance on the problem I raised, @rusty1s! Extremely grateful for your inputs.

Returning to this issue again, I'm having problems with learning: when I run the above procedure, it does seem to optimize and produce output (interim and final losses), but the loss function just moves around without much improvement. Even though I know that my data have a lot of signal. When raising this issue, I was concerned whether the above setup ensures that parameters are not reset randomly from one batch to another and from one epoch to another. It seems like this might be happening now.
Is there some function I need to define or parameter to set that I might have missed? And what would be the best way of tracking whether learning is "continuous" (as opposed to restarting every bacth/epoch)?
Thank you!

Returning to this issue again, I'm having problems with learning: when I run the above procedure, it does seem to optimize and produce output (interim and final losses), but the loss function just moves around without much improvement. Even though I know that my data have a lot of signal. When raising this issue, I was concerned whether the above setup ensures that parameters are not reset randomly from one batch to another and from one epoch to another. It seems like this might be happening now.
Is there some function I need to define or parameter to set that I might have missed? And what would be the best way of tracking whether learning is "continuous" (as opposed to restarting every bacth/epoch)?
Thank you!

That is correct. You need to move the initialization of the model and the optimizer outside the training loop.

That is correct. You need to move the initialization of the model and the optimizer outside the training loop.

Thank you, @rusty1s! Actually, I tried to do that some time ago, but the reason I moved it inside the loop is because I need to define data that my Net() depends on. But now when you said it, I tried again.
So, I moved
model = Net().to(device)
optimizer = torch.optim.Adam(model.parameters(), lr=0.005, weight_decay=2e-5)

outside the training loop. This time, before defining model, I initialize data as the first batch of the dataset:
data = Batch.from_data_list(dataAll[0:0+batch_size])
with the intention of sending new batch to GPU every idx iteration using data = batch.to(device) (same as before).
The results looks not exactly correct, loss function improves a bit and then stalls, so it seems like learning is only happening with respect to that very first batch of data. Basically, my question is how to define data for Net() to use given that my learning happens batch by batch and so I am not sending all the data to GPU at once? (I tried to look at the docs, but those I found consider batching without showing the training part, so the issue never arises.)

Thank you, @rusty1s! Actually, I tried to do that some time ago, but the reason I moved it inside the loop is because I need to define data that my Net() depends on. But now when you said it, I tried again.
So, I moved
model = Net().to(device)
optimizer = torch.optim.Adam(model.parameters(), lr=0.005, weight_decay=2e-5)

outside the training loop. This time, before defining model, I initialize data as the first batch of the dataset:
data = Batch.from_data_list(dataAll[0:0+batch_size])
with the intention of sending new batch to GPU every idx iteration using data = batch.to(device) (same as before).
The results looks not exactly correct, loss function improves a bit and then stalls, so it seems like learning is only happening with respect to that very first batch of data. Basically, my question is how to define data for Net() to use given that my learning happens batch by batch and so I am not sending all the data to GPU at once? (I tried to look at the docs, but those I found consider batching without showing the training part, so the issue never arises.)

I'm not really sure I understand. You model should never be dependent on a specific data object, only based on same attributes of it (e.g., num_nodes, num_features, ...).

I'm not really sure I understand. You model should never be dependent on a specific data object, only based on same attributes of it (e.g., num_nodes, num_features, ...).

I understand this, but here where my problem is. My collection of graphs is a list dataAll. When I'm defining the graph Net() class I refer to data as input, for example self.conv = NNConv(data.num_node_features, num_n1, nnA, aggr='mean', node_dim=1). Then I am changing this data object inside the training loop as data = batch.to(device), slicing the list piece by piece as batch = Batch.from_data_list(dataAll[idx:idx+batch_size]). However, when defining the Net(), I must have the data object initialized somehow.

I tried to use the first element of dataAll, that is data = Batch.from_data_list(dataAll[0:0+batch_size]). This does not give an error, but results seem wrong, I guess because once I initialize data this way, my Net() takes a specific object rather than a placeholder, so it uses only the first graph for learning.
I also tried to define it generically in an obvious way like data=torch_geometric.data.Data(), but model = Net().to(device) returns an error then.

Could you please suggest how to initialize data in such a way that I could define Net(), but then also could supply new concrete inputs from each batch?
The batching examples I've seen so far have one huge graph that they supply to the network class, but which is then split into batches while learning, so my issue never arises there.
Sorry for abusing your patience, @rusty1s! And thank you so much for your time!

I understand this, but here where my problem is. My collection of graphs is a list dataAll. When I'm defining the graph Net() class I refer to data as input, for example self.conv = NNConv(data.num_node_features, num_n1, nnA, aggr='mean', node_dim=1). Then I am changing this data object inside the training loop as data = batch.to(device), slicing the list piece by piece as batch = Batch.from_data_list(dataAll[idx:idx+batch_size]). However, when defining the Net(), I must have the data object initialized somehow.

I tried to use the first element of dataAll, that is data = Batch.from_data_list(dataAll[0:0+batch_size]). This does not give an error, but results seem wrong, I guess because once I initialize data this way, my Net() takes a specific object rather than a placeholder, so it uses only the first graph for learning.
I also tried to define it generically in an obvious way like data=torch_geometric.data.Data(), but model = Net().to(device) returns an error then.

Could you please suggest how to initialize data in such a way that I could define Net(), but then also could supply new concrete inputs from each batch?
The batching examples I've seen so far have one huge graph that they supply to the network class, but which is then split into batches while learning, so my issue never arises there.
Sorry for abusing your patience, @rusty1s! And thank you so much for your time!

I see. That is not a problem. You can define your model that way. A more elegant solution would be to pass the number of input channels as an argument to Net.
Nonetheless, training will take place on all data inputs you pass into the model. As such, your code looks correct to me.

I see. That is not a problem. You can define your model that way. A more elegant solution would be to pass the number of input channels as an argument to Net.
Nonetheless, training will take place on all data inputs you pass into the model. As such, your code looks correct to me.

Thank you, but my question remains open: how do I initialize data object in such a way that I could define Net using data as a placeholder for input graph (and then model could accept this Net), allowing me to use batching and change the concrete graph data refers to?

Thank you, but my question remains open: how do I initialize data object in such a way that I could define Net using data as a placeholder for input graph (and then model could accept this Net), allowing me to use batching and change the concrete graph data refers to?

Yes, that's fine since the number of features do not change across different data objects.

Yes, that's fine since the number of features do not change across different data objects.

Well, it definitely makes sense intuitively, glad that this is also the case in the way PyG works in reality! Okay, will play a bit more with my model to see what goes wrong.
Thank you so much for the help!

Well, it definitely makes sense intuitively, glad that this is also the case in the way PyG works in reality! Okay, will play a bit more with my model to see what goes wrong.
Thank you so much for the help!


Goci#433 on SS import, ignore curation studies that dont have GCST, namely for placeholder s…

…tudies in "Requires Review"

Hi Ala, can see this was a closed issue,https://app.zenhub.com/workspaces/gwas-59df823c4a6feb3786810391/issues/ebispot/goci/438
Something not working as expected ?


BUG: special/cdflib: deal with nan and nonfinite inputs

The CDFLIB code in scipy.special is not safe for non-finite inputs.
In particular, in several places it can enter into nonterminating loops.
Add explicit nan checks to the cdflib wrappers.
Rewrite cdflib code in several parts, mainly changing if (a < b) then terminate to the nan-safe if (.not.(a >= b)) then terminate.
In one place, also check that cast of float to integer retains precision.
I suspect the 32-bit failures on appveyor are related to this. I don't think these changes
will fix the issue, but they should at least convert the hang to a wrong  result computed,
see https://ci.appveyor.com/project/scipy/scipy/build/1.0.111/job/749md249mc77mpbr#L6337
Locally for win32, this PR changes the hang in TestCephes::test_ncfdtridfn to just a wrong
computed value (but note that it is only produced sporadically ie. there is some random
component determining when it occurs). Interestingly, the wrong value is not produced
if compiled with -O0 in gfortran, and does not occur if only tests for scipy.special are
run. So the issue is probably not that simple.

Ok, went with a bigger refactoring of cdf_wrappers.c. It's a mechanical transformation of the code, because the routines were just copypaste of the same call specification, with the varying parts:

distribution parameter number and names
which variable is returned
whether bounds are returned for status=1,2

LGTM and all green, so merging. Thanks @pv


BUILD not find

pls help me where BUILD folder

You have to download visual studio and compile the solution yourself. That being said you also need to update crucial offsets with dumper-7.

vs code or vs 2019, vs 2022


[OTHER] Text in Features is not properly align

What would you like to share or ask?
The text in the Features section is not properly aligned it does not look good.

I would like to work on this issue and align it properly.
Additional information
No response

#311 pullrequest already solves this issue.


User history logs

re-merge PR

:tada: This PR is included in version 4.1.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Opponent's Discard/Dead Window pops out of the Screen

...is visible only a slice of the lower part of the window.
Browser Chrome 65.0.3325.181 (official build) (64 bit)
OS: WIndows 10
To take this screenshot I'm logged in as a spectator (I don't have tryed as a player):

I deployed a fix for this earlier today, refresh and/or clear cache, let me know if it persists.

Clearing cache works. Sorry I should have thought about it before creating a new issue.

Not a problem, I only fixed it this afternoon :)


Change state to 'Ready to Publish

As an IAO analyst
I want to change a general request to 'Ready to Publish
so that the Open Information team can queue requests where the OI Review is complete and they are ready to be published on the Open Information website

Assumptions & Scope
Only general requests are eligible to go into this state as personal requests are never published on the OI website.
When a general request is put into the 'Publication Review' state, the general request will automatically be populated on OI Team Request Queue; this queue will be handled in another story.
When users shift to this state, they will have an option to go back to the 'Closed' state.
This request state will not count towards the LDD as the request has already been 'Closed'.
This additional states will need a new colour pallette from @JHarrietha-AOT
What is IN scope?
New state for 'Ready to Publish.'
Locking the OI layer so it is no longer editable?
What is NOT in scope?
OI Team Queue
OI redaction layer #3735
New state for 'Publication Review.' #4848
Acceptance Criteria
Scenario 1: Change state to Ready to Publish from Publication Review

GIVEN an IAO user is on a GENERAL request in the state 'Publication Review'
AND they have clicked on the state dropdown menue
WHEN they select the 'Ready to Publish'
THEN the state will change to 'Ready to Publish'

Scenario 2: Change state to Ready to Publish from Peer Review

GIVEN an IAO user is on a PERSONAL request in the state 'Peer Review
AND the previous request state was 'Publication Review'
AND they have activated the state drop down
WHEN they select 'Ready to Publish'
THEN the state will update to 'Ready to Publish'

Scenario 3: Ready to Publish - General Request - state options

GIVEN an IAO user is on a GENERAL request
AND the state is 'Ready to Publish'
WHEN they select the state drop down
THEN they will see the following options: Closed, Peer Review, Publication Review, OI Publication

Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
Validation Rules? (If yes, list here)
Design
@xxx - please link the Design here
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

Should the analyst still be able to edit the OI redaction layer when the request is in the 'Ready to Publish' state?


use StringBuilder instead of Buffer in builtin and json package

This PR introduce StringBuilder in builtin package. Thus avoid expensive Buffer operations when use Show trait in js/wasm-gc target.

Pull Request Test Coverage Report for Build 3237
Details

14 of 20 (70.0%)  changed or added relevant lines in 9 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.06%) to 83.014%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

builtin/assert.mbt
0
1
0.0%

builtin/autoloc.mbt
0
1
0.0%

builtin/string.mbt
2
6
33.33%

Totals

Change from base Build 3236:
-0.06%

Covered Lines:
4076

Relevant Lines:
4910

💛  - Coveralls

I was supposed the StringBuilder is a faster (in js backend) and safer abstraction than Buffer. The Byte/Buffer is more suitable to writing binary stuff, programmers use it at their own risk: the Buffer::to_string do not check the output string. While StringBuilder will ensure the result is valid, and the String and Char being writing into are also already checked.
But in this PR StringBuilder::sub_string will write unpaired surrogate into result string, which is not valid in UTF16. Furthermore the StringBuilder is specialized for js backend and in others backends it just a wrapper of Buffer. It seems possible to do the same thing for Buffer's implementation, which leads the StringBuilder becoming a subset of Buffer.
I wonder why we still want to introduce a new abstraction. What functionalities should StringBuilder and Buffer provide separately?

write_sub_string will be removed in StringBuilder. For now, to keep it just to make the diff smaller.

I wonder why we still want to introduce a new abstraction. What functionalities should StringBuilder and Buffer provide separately?

As you said, Buffer is more suitable to writing binary stuff, and StringBuilder only cares string concatenation. Buffer is not always the best approach to concat strings on each targets. It's too slow compared to concat based approach on js platform even wasm-gc platform if we support JsStringBuiltins proposal.
I'll present some data result later to show that.

The test result use this code: https://gist.github.com/hackwaly/24c2c16e25ef660772f3b06625ddb7a4
On my machine. Under js target: buffer based cost 5.7s. concat based cost 1.25s.

and the String and Char being writing into are also already checked.

I was wrong because the invalid UTF16 string (contains unpaired surrogate) can still produced by String::sub_string, or just take a char by String::op_get and write it into StringBuilder. Will StringBuilder validate the input and result string in future?

Probably not. It will align with the javascript's behavior. I think validation should be opt-in for users. It's best placed in unicode package?

By replace the internal StringBuilder previously used in json package. The performance @json.parse also be improved after this MR.

Per discussions offline, we agree to make a reasonably fast StringBuilder package on all platform.

StringBuilder should not depend on Buffer
we will move Buffer out of builtin package

Now StringBuilder doesn't depend on Buffer.


Rework "Functions and classes available to workers" page

See https://bugzilla.mozilla.org/show_bug.cgi?id=1484918 for full details

So IndexedDB is already shown as being supported in workers on this page.
But the bigger question is — how do we make it up-to-date? I mean, this page is out of date, and it will be very hard to make it up to date and keep it up to date manually.
@Elchi3 , do we store any information in BCD about what things are exposed in workers? If so, could we crete some kind of aggregate table to show this information?
Is it even worth it?

@Elchi3 , do we store any information in BCD about what things are exposed in workers? If so, could we crete some kind of aggregate table to show this information?

We have added "worker_support" when we migrated the legacy compat tables into BCD, but we've now realized that this isn't the best representation either as there multiple worker types and soon "worklets". So, a general "supported in workers" statement is very imprecise at this point.

Is it even worth it?

I don't think so right now. Why would a web developer so much about this sort of aggregation? I think it comes up when you use a particular API and the docs for a given API should clearly state in which worker context it's available. The whole landscape of Web API availability to workers is maybe only interesting to spec authors and browser engineers who can also get this picture from WebIDL, I suppose. That's my thinking at least. Alternatively, we can interview users about workers to get a better picture about user needs here.

Thanks for the thoughts on this. I think it is a measure of how worth it is that noone has ever complained (to my knowledge at least) about BCD not showing worker compat, or about specific pages not showing worker compat. Maybe the availableinworkers macro is another one we could kill, and then we could look for a better solution to this later on?


Github workflow CI to cater builds for different OS versions

What would you like to be added:
As per title
Why is this needed:
In order to make sure our binaries are able to run on all the environments that we expect. Our builds should target all those environments.
Reference Conversation

/triage accepted
/area workflows
/assign @DieHard073055 can you work on modifying this via GitHub workflow matrix

/area workflow

/priority urgent-now

What environments do we want to target ?

What environments do we want to target ?

Can you recommend some reasonable defaults?