Skip to content

Conversation

@jameslamb
Copy link
Collaborator

@jameslamb jameslamb commented Jan 17, 2026

It has been almost 1 year since the last release of LightGBM: https://github.com/microsoft/LightGBM/releases/tag/v4.6.0

Many changes have built up on master since then. Let's use this PR to decide on a list of what else we want to get into a release, then try to put up a release soon.

Release checklist:

Copied from #66796 with a few changes.

deadline

None that I know of yet, though there are WARNINGs on the check results at https://cran.r-project.org/web/checks/check_results_lightgbm.html which might turn into errors or a CRAN threat request.

before merge

after merge

code to update tags (click me)
NEW_VERSION="4.7.0"
git checkout master
git pull upstream master
git fetch upstream --tags
git tag -d stable
git push upstream :refs/tags/stable
git tag stable
git tag "v${NEW_VERSION}"
git push upstream stable "v${NEW_VERSION}"

after the release is created by Azure DevOps job

code to publish to PyPI (summary)
mkdir /tmp/lgb-release
cd /tmp/lgb-release

NEW_VERSION="4.7.0"

# NOTE: requires a GitHub personal access token with "repo" scope
git checkout v${NEW_VERSION}
bash .ci/download-artifacts.sh $(git rev-parse HEAD)

# NOTE: manually downloaded arm64 wheels from CI

# config docs: https://packaging.python.org/en/latest/specifications/pypirc/
twine upload \
    -r testpypi \
    ./release-artifacts/*.whl

twine upload \
    -r testpypi \
    ./release-artifacts/lightgbm-${NEW_VERSION}.tar.gz

(gh is the GitHub CLI, see https://cli.github.com/manual/gh_release_download)

Then confirmed that installing the latest wheel works.

pip install -i https://test.pypi.org/simple/ "lightgbm==${NEW_VERSION}"
python ./examples/python-guide/logistic_regression.py

Then pushed them to real PyPI.

cd /tmp/lgb-release

twine upload \
    ./release-artifacts/*.whl

twin upload \
    ./release-artifacts/lightgbm-${NEW_VERSION}.tar.gz
code to open that dev version PR (click me)
RELEASE_PR_NUMBER="6439"
RELEASE_VERSION=$(cat ./VERSION.txt)
DEV_VERSION="${RELEASE_VERSION}.99"

git checkout -b ci/dev-version

echo "${DEV_VERSION}" > ./VERSION.txt
sed \
    -i .bak \
    "s|${RELEASE_VERSION}|${DEV_VERSION}|g" \
    .appveyor.yml

sed \
    -i .bak \
    "s|version = \"${RELEASE_VERSION}\"|version = \"${DEV_VERSION}\"|g" \
    ./python-package/pyproject.toml

sed \
    -i .bak \
    's|mode\: release|mode\: unreleased|g' \
    ./R-package/pkgdown/_pkgdown.yml

docker run \
    --rm \
    -v $(pwd):/opt/LightGBM \
    -w /opt/LightGBM \
    ubuntu:22.04 \
    ./R-package/recreate-configure.sh

git add \
    ./.appveyor.yml \
    ./R-package/configure \
    ./R-package/pkgdown/_pkgdown.yml \
    ./VERSION.txt \
    ./python-package/pyproject.toml

commit_msg="bump development version to ${DEV_VERSION}"
git commit -m "${commit_msg}"
git push upstream ci/dev-version

gh pr create \
    --repo microsoft/LightGBM \
    --base 'master' \
    --label 'maintenance' \
    --title "${commit_msg}" \
    --body "now that v${RELEASE_VERSION} has been released: #${RELEASE_PR_NUMBER}"

Notes for Reviewers

I believe this should be v4.7.0 instead of v4.6.1 because of some small breaking changes:

See https://github.com/microsoft/LightGBM/releases.

@jameslamb
Copy link
Collaborator Author

@StrikerRUS @shiyu1994 @guolinke @borchero @jmoralez please edit the description if you want to add other items for the release.

@shiyu1994 will you be able to help with these soon?

I'm not sure we have other maintainers / contributors who are available to help with them. If you cannot help get them merged, we may have to skip them for the release.

@borchero
Copy link
Collaborator

Looks great, thanks for the summary! I would have loved to include proper polars support in the next release but I think this will be a little tight on my end 🙈

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants