Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
d0ae191
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 13, 2025
ddff7d2
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 13, 2025
9a2163e
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 13, 2025
9fcfce6
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 13, 2025
99808a3
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 13, 2025
e961754
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 13, 2025
feaa5ba
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 13, 2025
9bef5a2
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 13, 2025
5477e5b
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 13, 2025
5cbdfd4
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 14, 2025
ca07100
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 14, 2025
a060259
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 14, 2025
66d602e
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 14, 2025
3ea8968
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 14, 2025
825d900
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 14, 2025
49134f3
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 14, 2025
8010435
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 14, 2025
852dff5
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 14, 2025
be00609
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 14, 2025
5d7069b
fix: upgrade the method of installing LightGBM on MacOS
SunsetWolf Aug 14, 2025
7f77f36
add: comments
SunsetWolf Aug 14, 2025
264de91
test: build package && check package
SunsetWolf Aug 15, 2025
13da92e
test: build package && check package
SunsetWolf Aug 15, 2025
680523b
test: build package && check package
SunsetWolf Aug 15, 2025
84c90d5
optimize yml
SunsetWolf Aug 15, 2025
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
17 changes: 5 additions & 12 deletions .github/workflows/test_qlib_from_pip.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, ubuntu-24.04, ubuntu-22.04, macos-13, macos-14, macos-15]
os: [windows-latest, ubuntu-24.04, ubuntu-22.04, macos-14, macos-15]
# In github action, using python 3.7, pip install will not match the latest version of the package.
# Also, python 3.7 is no longer supported from macos-14, and will be phased out from macos-13 in the near future.
# All things considered, we have removed python 3.7.
Expand Down Expand Up @@ -46,19 +46,12 @@ jobs:
python -m pip install pyqlib
python -m pip install "joblib<=1.4.2"

# install.sh file contents from: https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
# brew_install.sh file contents from: https://raw.githubusercontent.com/Microsoft/qlib/main/.github/brew_install.sh
- name: Install Lightgbm for MacOS
if: ${{ matrix.os == 'macos-13' || matrix.os == 'macos-14' || matrix.os == 'macos-15' }}
if: ${{ matrix.os == 'macos-14' || matrix.os == 'macos-15' }}
run: |
/bin/bash -c "$(curl -fsSL https://github.com/SunsetWolf/qlib_dataset/releases/download/maocs_lightgbm/install.sh)"
/bin/bash -c "$(curl -fsSL https://github.com/SunsetWolf/qlib_dataset/releases/download/maocs_lightgbm/brew_install.sh)"
HOMEBREW_NO_AUTO_UPDATE=1 brew install lightgbm
# FIX MacOS error: Segmentation fault
# reference: https://github.com/microsoft/LightGBM/issues/4229
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/fb8323f2b170bd4ae97e1bac9bf3e2983af3fdb0/Formula/libomp.rb
brew unlink libomp
brew install libomp.rb
brew update
brew install libomp || brew reinstall libomp
python -m pip install --no-binary=:all: lightgbm

# When the new version is released it should be changed to:
# python -m qlib.cli.data qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn
Expand Down
38 changes: 24 additions & 14 deletions .github/workflows/test_qlib_from_source.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, ubuntu-24.04, ubuntu-22.04, macos-13, macos-14, macos-15]
os: [windows-latest, ubuntu-24.04, ubuntu-22.04, macos-14, macos-15]
# In github action, using python 3.7, pip install will not match the latest version of the package.
# Also, python 3.7 is no longer supported from macos-14, and will be phased out from macos-13 in the near future.
# All things considered, we have removed python 3.7.
Expand All @@ -34,7 +34,7 @@ jobs:
python -m pip install --upgrade pip

- name: Installing pytorch for macos
if: ${{ matrix.os == 'macos-13' || matrix.os == 'macos-14' || matrix.os == 'macos-15' }}
if: ${{ matrix.os == 'macos-14' || matrix.os == 'macos-15' }}
run: |
python -m pip install torch torchvision torchaudio

Expand Down Expand Up @@ -83,19 +83,12 @@ jobs:
python scripts/get_data.py qlib_data --name qlib_data_simple --target_dir ~/.qlib/qlib_data/cn_data --interval 1d --region cn
python scripts/get_data.py download_data --file_name rl_data.zip --target_dir tests/.data/rl

# install.sh file contents from: https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
# brew_install.sh file contents from: https://raw.githubusercontent.com/Microsoft/qlib/main/.github/brew_install.sh
- name: Install Lightgbm for MacOS
if: ${{ matrix.os == 'macos-13' || matrix.os == 'macos-14' || matrix.os == 'macos-15' }}
if: ${{ matrix.os == 'macos-14' || matrix.os == 'macos-15' }}
run: |
/bin/bash -c "$(curl -fsSL https://github.com/SunsetWolf/qlib_dataset/releases/download/maocs_lightgbm/install.sh)"
/bin/bash -c "$(curl -fsSL https://github.com/SunsetWolf/qlib_dataset/releases/download/maocs_lightgbm/brew_install.sh)"
HOMEBREW_NO_AUTO_UPDATE=1 brew install lightgbm
# FIX MacOS error: Segmentation fault
# reference: https://github.com/microsoft/LightGBM/issues/4229
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/fb8323f2b170bd4ae97e1bac9bf3e2983af3fdb0/Formula/libomp.rb
brew unlink libomp
brew install libomp.rb
brew update
brew install libomp || brew reinstall libomp
python -m pip install --no-binary=:all: lightgbm

- name: Check Qlib ipynb with nbconvert
run: |
Expand All @@ -106,7 +99,24 @@ jobs:
python -m pip install numba
python qlib/cli/run.py examples/benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml

- name: Unit tests with Pytest
- name: Unit tests with Pytest (MacOS)
if: ${{ matrix.os == 'macos-14' || matrix.os == 'macos-15' }}
uses: nick-fields/retry@v2
with:
timeout_minutes: 60
max_attempts: 3
command: |
# Limit the number of threads in various libraries to prevent Segmentation faults caused by OpenMP multithreading conflicts under macOS.
export OMP_NUM_THREADS=1 # Limit the number of OpenMP threads
export MKL_NUM_THREADS=1 # Limit the number of Intel MKL threads
export NUMEXPR_NUM_THREADS=1 # Limit the number of NumExpr threads
export OPENBLAS_NUM_THREADS=1 # Limit the number of OpenBLAS threads
export VECLIB_MAXIMUM_THREADS=1 # Limit the number of macOS Accelerate/vecLib threads
cd tests
python -m pytest . -m "not slow" --durations=0

- name: Unit tests with Pytest (Ubuntu and Windows)
if: ${{ matrix.os != 'macos-13' && matrix.os != 'macos-14' && matrix.os != 'macos-15' }}
uses: nick-fields/retry@v2
with:
timeout_minutes: 60
Expand Down
15 changes: 5 additions & 10 deletions .github/workflows/test_qlib_from_source_slow.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [windows-latest, ubuntu-24.04, ubuntu-22.04, macos-13, macos-14, macos-15]
os: [windows-latest, ubuntu-24.04, ubuntu-22.04, macos-14, macos-15]
# In github action, using python 3.7, pip install will not match the latest version of the package.
# Also, python 3.7 is no longer supported from macos-14, and will be phased out from macos-13 in the near future.
# All things considered, we have removed python 3.7.
Expand All @@ -40,16 +40,11 @@ jobs:
# install.sh file contents from: https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh
# brew_install.sh file contents from: https://raw.githubusercontent.com/Microsoft/qlib/main/.github/brew_install.sh
- name: Install Lightgbm for MacOS
if: ${{ matrix.os == 'macos-13' || matrix.os == 'macos-14' || matrix.os == 'macos-15' }}
if: ${{ matrix.os == 'macos-14' || matrix.os == 'macos-15' }}
run: |
/bin/bash -c "$(curl -fsSL https://github.com/SunsetWolf/qlib_dataset/releases/download/maocs_lightgbm/install.sh)"
/bin/bash -c "$(curl -fsSL https://github.com/SunsetWolf/qlib_dataset/releases/download/maocs_lightgbm/brew_install.sh)"
HOMEBREW_NO_AUTO_UPDATE=1 brew install lightgbm
# FIX MacOS error: Segmentation fault
# reference: https://github.com/microsoft/LightGBM/issues/4229
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/fb8323f2b170bd4ae97e1bac9bf3e2983af3fdb0/Formula/libomp.rb
brew unlink libomp
brew install libomp.rb
brew update
brew install libomp || brew reinstall libomp
python -m pip install --no-binary=:all: lightgbm

- name: Unit tests with Pytest
uses: nick-fields/retry@v2
Expand Down
4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -97,10 +97,14 @@ analysis = [
"statsmodels",
]

# In the process of releasing a new version, when checking the manylinux package with twine, an error is reported:
# InvalidDistribution: Invalid distribution metadata: unrecognized or malformed field 'license-file'
# To solve this problem, we added license-files here. Refs: https://github.com/pypa/twine/issues/1216
[tool.setuptools]
packages = [
"qlib",
]
license-files = []

[project.scripts]
qrun = "qlib.cli.run:run"
Loading