Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .env
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,8 @@ VCPKG="66c0373dc7fca549e5803087b9487edfe3aca0a1" # 2026.01.16 Release
# ci/docker/python-*-windows-*.dockerfile or the vcpkg config.
# This is a workaround for our CI problem that "archery docker build" doesn't
# use pulled built images in dev/tasks/python-wheels/github.windows.yml.
PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2026-02-07
PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION=2026-02-07
PYTHON_WHEEL_WINDOWS_IMAGE_REVISION=2026-02-13
PYTHON_WHEEL_WINDOWS_TEST_IMAGE_REVISION=2026-02-13

# Use conanio/${CONAN_BASE}:{CONAN_VERSION} for "docker compose run --rm conan".
# See https://github.com/conan-io/conan-docker-tools#readme and
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ jobs:
shell: bash
run: |
gem install test-unit openssl
pip install "cython>=3.1" setuptools pytest requests setuptools-scm
pip install build "cython>=3.1" pytest requests scikit-build-core setuptools-scm
- name: Run Release Test
shell: bash
run: |
Expand Down
2 changes: 1 addition & 1 deletion ci/conda_env_python.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@ numpy>=1.16.6
pytest
pytest-faulthandler
s3fs>=2023.10.0
setuptools>=77
scikit-build-core
setuptools_scm>=8
4 changes: 4 additions & 0 deletions ci/scripts/python_wheel_windows_build.bat
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,10 @@ set CMAKE_PREFIX_PATH=C:\arrow-dist
pushd C:\arrow\python

@REM Build wheel
%PYTHON_CMD% -c "import scikit_build_core; print(scikit_build_core.__version__)"
%PYTHON_CMD% -c "import sys; print(sys.executable); print(sys.path)"
%PYTHON_CMD% -m pip list
%PYTHON_CMD% -m pip show scikit-build-core
%PYTHON_CMD% -m build --sdist --wheel . --no-isolation || exit /B 1

@REM Repair the wheel with delvewheel
Expand Down
2 changes: 1 addition & 1 deletion dev/release/02-source-test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ def test_symbolic_links
def test_python_version
source
Dir.chdir("#{@tag_name_no_rc}/python") do
sh("python3", "setup.py", "sdist")
sh("python", "-m", "build", "--sdist")
if on_release_branch?
pyarrow_source_archive = "dist/pyarrow-#{@release_version}.tar.gz"
else
Expand Down
4 changes: 0 additions & 4 deletions python/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,3 @@ manylinux1/arrow
nm_arrow.log
visible_symbols.log

# the purpose of the custom SDist class in setup.py is to include these files
# in the sdist tarball, but we don't want to track duplicates
LICENSE.txt
NOTICE.txt
16 changes: 15 additions & 1 deletion python/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,21 @@ set(PYARROW_CPP_ROOT_DIR pyarrow/src)
set(PYARROW_CPP_SOURCE_DIR ${PYARROW_CPP_ROOT_DIR}/arrow/python)

# Write out compile-time configuration constants
string(TOUPPER ${CMAKE_BUILD_TYPE} UPPERCASE_PYBUILD_TYPE)
if(CMAKE_BUILD_TYPE)
string(TOUPPER "${CMAKE_BUILD_TYPE}" UPPERCASE_PYBUILD_TYPE)
else()
# For multi-config generators (XCode and Visual Studio),
# CMAKE_BUILD_TYPE is not set at configure time.
# scikit-build-core does the right thing with cmake.build-type and
# adds the corresponding --config but does not populate CMAKE_BUILD_TYPE
# for those. On this specific case, we set the default to "RELEASE"
# as it's the most common build type for users building from source.
# This is mainly relevant for our Windows wheels, which are built with
# Visual Studio and thus use a multi-config generator with Release.
# As a note this is only to populate config_internal.h.cmake.
set(UPPERCASE_PYBUILD_TYPE "RELEASE")
endif()

configure_file("${PYARROW_CPP_SOURCE_DIR}/config_internal.h.cmake"
"${PYARROW_CPP_SOURCE_DIR}/config_internal.h" ESCAPE_QUOTES)

Expand Down
1 change: 1 addition & 0 deletions python/LICENSE.txt
1 change: 1 addition & 0 deletions python/NOTICE.txt
26 changes: 13 additions & 13 deletions python/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,16 +17,14 @@

[build-system]
requires = [
"scikit-build-core",
"cython >= 3.1",
# Needed for build-time stub docstring extraction
"libcst>=1.8.6",
"numpy>=1.25",
# configuring setuptools_scm in pyproject.toml requires
# versions released after 2022
"setuptools_scm[toml]>=8",
"setuptools>=77",
]
build-backend = "setuptools.build_meta"
build-backend = "scikit_build_core.build"

[project]
name = "pyarrow"
Expand Down Expand Up @@ -81,16 +79,18 @@ exclude = [
'\._.*$',
]

[tool.setuptools]
zip-safe=false
include-package-data=true
[tool.scikit-build]
cmake.build-type = "Release"
metadata.version.provider = "scikit_build_core.metadata.setuptools_scm"
sdist.include = ["pyarrow/_generated_version.py", "cmake_modules/"]
wheel.packages = ["pyarrow"]
wheel.install-dir = "pyarrow"

[tool.setuptools.packages.find]
include = ["pyarrow"]
namespaces = false

[tool.setuptools.package-data]
pyarrow = ["*.pxd", "*.pyi", "*.pyx", "includes/*.pxd", "py.typed"]
[tool.scikit-build.cmake.define]
PYARROW_BUNDLE_ARROW_CPP = {env = "PYARROW_BUNDLE_ARROW_CPP", default = "OFF"}
PYARROW_BUNDLE_CYTHON_CPP = {env = "PYARROW_BUNDLE_CYTHON_CPP", default = "OFF"}
PYARROW_GENERATE_COVERAGE = {env = "PYARROW_GENERATE_COVERAGE", default = "OFF"}
PYARROW_CXXFLAGS = {env = "PYARROW_CXXFLAGS", default = ""}

[tool.setuptools_scm]
root = '..'
Expand Down
2 changes: 1 addition & 1 deletion python/requirements-build.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
cython>=3.1
libcst>=1.8.6
numpy>=1.25
scikit-build-core
setuptools_scm>=8
setuptools>=77
2 changes: 1 addition & 1 deletion python/requirements-wheel-build.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@ cython>=3.1
# Needed for build-time stub docstring extraction
libcst>=1.8.6
numpy>=2.0.0
scikit-build-core
setuptools_scm
setuptools>=77
wheel
Loading
Loading