Unverified Commit 69b5bd31 authored by James Lamb's avatar James Lamb Committed by GitHub
Browse files

[python-package] drop Python 3.6 support, add Python 3.12 (#6459)

parent 7d152984
# [description]
#
# Similar to ci-core.txt, but specific to Python 3.8.
#
# Unlike ci-core.txt, this includes a Python version and uses
# `=` and `<=` pins to make solves faster and prevent against
# issues like https://github.com/microsoft/LightGBM/pull/6370.
#
# [usage]
#
# conda create \
# --name test-env \
# --file ./.ci/conda-envs/ci-core-py38.txt
#
# python
python=3.8.*
# direct imports
cffi=1.15.*
dask=2023.5.*
distributed=2023.5.*
joblib=1.4.*
matplotlib-base=3.7.*
numpy=1.24.*
pandas=1.5.*
pyarrow-core=16.1.*
python-graphviz=0.20.*
scikit-learn=1.3.*
scipy=1.10.*
# testing-only dependencies
cloudpickle=3.0.*
pluggy=1.5.*
psutil=5.9.8
pytest=8.2.*
# other recursive dependencies, just
# pinned here to help speed up solves
bokeh=3.1.*
fsspec=2024.5.*
msgpack-python=1.0.*
pluggy=1.5.*
pytz=2024.1
setuptools=69.5.*
snappy=1.2.*
tomli=2.0.*
tornado=6.4.*
wheel=0.43.*
zict=3.0.*
zipp=3.17.*
...@@ -3,19 +3,20 @@ ...@@ -3,19 +3,20 @@
set -e -E -u -o pipefail set -e -E -u -o pipefail
# oldest versions of dependencies published after # oldest versions of dependencies published after
# minimum supported Python version's first release # minimum supported Python version's first release,
# for which there are wheels compatible with the
# python:{version} image
# #
# see https://devguide.python.org/versions/ # see https://devguide.python.org/versions/
# #
echo "installing lightgbm's dependencies" echo "installing lightgbm's dependencies"
pip install \ pip install \
'cffi==1.15.1' \ 'cffi==1.15.1' \
'dataclasses' \ 'numpy==1.19.0' \
'numpy==1.16.6' \ 'pandas==1.1.3' \
'pandas==0.24.0' \
'pyarrow==6.0.1' \ 'pyarrow==6.0.1' \
'scikit-learn==0.18.2' \ 'scikit-learn==0.24.0' \
'scipy==0.19.0' \ 'scipy==1.6.0' \
|| exit 1 || exit 1
echo "done installing lightgbm's dependencies" echo "done installing lightgbm's dependencies"
......
...@@ -132,6 +132,8 @@ fi ...@@ -132,6 +132,8 @@ fi
if [[ $PYTHON_VERSION == "3.7" ]]; then if [[ $PYTHON_VERSION == "3.7" ]]; then
CONDA_REQUIREMENT_FILES="--file ${BUILD_DIRECTORY}/.ci/conda-envs/ci-core-py37.txt" CONDA_REQUIREMENT_FILES="--file ${BUILD_DIRECTORY}/.ci/conda-envs/ci-core-py37.txt"
elif [[ $PYTHON_VERSION == "3.8" ]]; then
CONDA_REQUIREMENT_FILES="--file ${BUILD_DIRECTORY}/.ci/conda-envs/ci-core-py38.txt"
else else
CONDA_REQUIREMENT_FILES="--file ${BUILD_DIRECTORY}/.ci/conda-envs/ci-core.txt" CONDA_REQUIREMENT_FILES="--file ${BUILD_DIRECTORY}/.ci/conda-envs/ci-core.txt"
fi fi
......
...@@ -55,6 +55,8 @@ conda update -q -y conda ...@@ -55,6 +55,8 @@ conda update -q -y conda
if ($env:PYTHON_VERSION -eq "3.7") { if ($env:PYTHON_VERSION -eq "3.7") {
$env:CONDA_REQUIREMENT_FILE = "$env:BUILD_SOURCESDIRECTORY/.ci/conda-envs/ci-core-py37.txt" $env:CONDA_REQUIREMENT_FILE = "$env:BUILD_SOURCESDIRECTORY/.ci/conda-envs/ci-core-py37.txt"
} elseif ($env:PYTHON_VERSION -eq "3.8") {
$env:CONDA_REQUIREMENT_FILE = "$env:BUILD_SOURCESDIRECTORY/.ci/conda-envs/ci-core-py38.txt"
} else { } else {
$env:CONDA_REQUIREMENT_FILE = "$env:BUILD_SOURCESDIRECTORY/.ci/conda-envs/ci-core.txt" $env:CONDA_REQUIREMENT_FILE = "$env:BUILD_SOURCESDIRECTORY/.ci/conda-envs/ci-core.txt"
} }
......
...@@ -82,19 +82,19 @@ jobs: ...@@ -82,19 +82,19 @@ jobs:
include: include:
- method: wheel - method: wheel
compiler: gcc compiler: gcc
python_version: "3.11" python_version: "3.10"
cuda_version: "11.8.0" cuda_version: "11.8.0"
image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu20.04 image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu20.04
task: cuda task: cuda
- method: source - method: source
compiler: gcc compiler: gcc
python_version: "3.9" python_version: "3.12"
cuda_version: "12.2.0" cuda_version: "12.2.0"
image: nvcr.io/nvidia/cuda:12.2.0-devel-ubuntu22.04 image: nvcr.io/nvidia/cuda:12.2.0-devel-ubuntu22.04
task: cuda task: cuda
- method: pip - method: pip
compiler: clang compiler: clang
python_version: "3.10" python_version: "3.11"
cuda_version: "11.8.0" cuda_version: "11.8.0"
image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu20.04 image: nvcr.io/nvidia/cuda:11.8.0-devel-ubuntu20.04
task: cuda task: cuda
......
...@@ -10,7 +10,7 @@ on: ...@@ -10,7 +10,7 @@ on:
env: env:
CONDA_ENV: test-env CONDA_ENV: test-env
OS_NAME: 'linux' OS_NAME: 'linux'
PYTHON_VERSION: '3.11' PYTHON_VERSION: '3.12'
TASK: 'check-links' TASK: 'check-links'
jobs: jobs:
......
...@@ -29,30 +29,30 @@ jobs: ...@@ -29,30 +29,30 @@ jobs:
include: include:
- os: macos-13 - os: macos-13
task: regular task: regular
python_version: '3.9' python_version: '3.10'
- os: macos-13 - os: macos-13
task: sdist task: sdist
python_version: '3.10' python_version: '3.11'
- os: macos-13 - os: macos-13
task: bdist task: bdist
python_version: '3.7' python_version: '3.8'
- os: macos-13 - os: macos-13
task: if-else task: if-else
python_version: '3.9' python_version: '3.10'
# We're currently skipping MPI jobs on macOS, see https://github.com/microsoft/LightGBM/pull/6425 # We're currently skipping MPI jobs on macOS, see https://github.com/microsoft/LightGBM/pull/6425
# for further details. # for further details.
# - os: macos-13 # - os: macos-13
# task: mpi # task: mpi
# method: source # method: source
# python_version: '3.10' # python_version: '3.11'
# - os: macos-13 # - os: macos-13
# task: mpi # task: mpi
# method: pip # method: pip
# python_version: '3.11' # python_version: '3.12'
# - os: macos-13 # - os: macos-13
# task: mpi # task: mpi
# method: wheel # method: wheel
# python_version: '3.8' # python_version: '3.9'
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
...@@ -101,7 +101,7 @@ jobs: ...@@ -101,7 +101,7 @@ jobs:
--rm \ --rm \
-v $(pwd):/opt/lgb-build \ -v $(pwd):/opt/lgb-build \
-w /opt/lgb-build \ -w /opt/lgb-build \
python:3.6 \ python:3.7 \
/bin/bash ./.ci/test-python-oldest.sh /bin/bash ./.ci/test-python-oldest.sh
all-python-package-jobs-successful: all-python-package-jobs-successful:
if: always() if: always()
......
...@@ -20,7 +20,7 @@ env: ...@@ -20,7 +20,7 @@ env:
COMPILER: 'gcc' COMPILER: 'gcc'
CONDA_ENV: test-env CONDA_ENV: test-env
OS_NAME: 'linux' OS_NAME: 'linux'
PYTHON_VERSION: '3.11' PYTHON_VERSION: '3.12'
jobs: jobs:
test: test:
......
...@@ -10,8 +10,8 @@ pr: ...@@ -10,8 +10,8 @@ pr:
- release/* - release/*
variables: variables:
AZURE: 'true' AZURE: 'true'
PYTHON_VERSION: '3.11'
CMAKE_BUILD_PARALLEL_LEVEL: 4 CMAKE_BUILD_PARALLEL_LEVEL: 4
PYTHON_VERSION: '3.12'
CONDA_ENV: test-env CONDA_ENV: test-env
runCodesignValidationInjection: false runCodesignValidationInjection: false
skipComponentGovernanceDetection: true skipComponentGovernanceDetection: true
...@@ -62,19 +62,19 @@ jobs: ...@@ -62,19 +62,19 @@ jobs:
matrix: matrix:
regular: regular:
TASK: regular TASK: regular
PYTHON_VERSION: '3.9' PYTHON_VERSION: '3.10'
sdist: sdist:
TASK: sdist TASK: sdist
PYTHON_VERSION: '3.7' PYTHON_VERSION: '3.8'
bdist: bdist:
TASK: bdist TASK: bdist
PYTHON_VERSION: '3.8' PYTHON_VERSION: '3.9'
inference: inference:
TASK: if-else TASK: if-else
mpi_source: mpi_source:
TASK: mpi TASK: mpi
METHOD: source METHOD: source
PYTHON_VERSION: '3.8' PYTHON_VERSION: '3.9'
gpu_source: gpu_source:
TASK: gpu TASK: gpu
METHOD: source METHOD: source
...@@ -127,7 +127,7 @@ jobs: ...@@ -127,7 +127,7 @@ jobs:
TASK: sdist TASK: sdist
bdist: bdist:
TASK: bdist TASK: bdist
PYTHON_VERSION: '3.9' PYTHON_VERSION: '3.10'
inference: inference:
TASK: if-else TASK: if-else
mpi_source: mpi_source:
...@@ -136,23 +136,23 @@ jobs: ...@@ -136,23 +136,23 @@ jobs:
mpi_pip: mpi_pip:
TASK: mpi TASK: mpi
METHOD: pip METHOD: pip
PYTHON_VERSION: '3.10' PYTHON_VERSION: '3.11'
mpi_wheel: mpi_wheel:
TASK: mpi TASK: mpi
METHOD: wheel METHOD: wheel
PYTHON_VERSION: '3.8' PYTHON_VERSION: '3.9'
gpu_source: gpu_source:
TASK: gpu TASK: gpu
METHOD: source METHOD: source
PYTHON_VERSION: '3.10' PYTHON_VERSION: '3.11'
gpu_pip: gpu_pip:
TASK: gpu TASK: gpu
METHOD: pip METHOD: pip
PYTHON_VERSION: '3.9' PYTHON_VERSION: '3.10'
gpu_wheel: gpu_wheel:
TASK: gpu TASK: gpu
METHOD: wheel METHOD: wheel
PYTHON_VERSION: '3.8' PYTHON_VERSION: '3.9'
cpp_tests: cpp_tests:
TASK: cpp-tests TASK: cpp-tests
METHOD: with-sanitizers METHOD: with-sanitizers
......
...@@ -15,10 +15,10 @@ classifiers = [ ...@@ -15,10 +15,10 @@ classifiers = [
"Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Scientific/Engineering :: Artificial Intelligence" "Topic :: Scientific/Engineering :: Artificial Intelligence"
] ]
dependencies = [ dependencies = [
"dataclasses ; python_version < '3.7'",
"numpy", "numpy",
"scipy" "scipy"
] ]
...@@ -29,7 +29,7 @@ maintainers = [ ...@@ -29,7 +29,7 @@ maintainers = [
] ]
name = "lightgbm" name = "lightgbm"
readme = "README.rst" readme = "README.rst"
requires-python = ">=3.6" requires-python = ">=3.7"
version = "4.3.0.99" version = "4.3.0.99"
[project.optional-dependencies] [project.optional-dependencies]
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment