Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP: release v4.4.0 #6439

Draft
wants to merge 1 commit into
base: master
Choose a base branch
from
Draft

WIP: release v4.4.0 #6439

wants to merge 1 commit into from

Conversation

jameslamb
Copy link
Collaborator

@jameslamb jameslamb commented May 1, 2024

Release checklist:

Copied from #6277, with a few changes.

before merge

  • Update VERSION.txt number.
  • Update version in Appveyor config file.
  • Update version in configure file of R-package: /gha run r-configure.
  • Change development.mode from unreleased to release in pkgdown config file.
  • Update version in python-package/pyproject.toml
  • Add release branch to RTD versions, trigger a new build, check docs
  • All docs for new behavior have Sphinx versionadded:: annotations (docs on those)
    • nothing in this release requires those
  • All new parameters in config.h have *New in version {version}* comments added
    • no new parameters added in config.h in this release
  • Run the valgrind checks with /gha run r-valgrind (docs link)
  • test Python and R packages on M1/M2 Mac

Items to be addressed before merging:

I'd really like for this to be the first release with arm64 macOS wheels, if we can get there. But let's not delay the release waiting on that if everything else above is done.

after merge

code to update tags (click me)
NEW_VERSION="4.4.0"
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}"
  • Add release notes from release-drafter to the automatically-created GitHub release, convert it from Draft to published.
  • Add new tag to RTD versions and trigger a new build.
  • Upload release to CRAN
  • Remove the release branch from RTD versions
  • Upload release to test PyPI
  • Upload release to PyPI.
code to publish to PyPI (summary)
mkdir /tmp/lgb-release
cd /tmp/lgb-release

NEW_VERSION="4.4.0"

# NOTE: requires a GitHub personal access token with "repo" scope
gh release download \
    --repo microsoft/LightGBM \
    --dir ./artifacts \
    --pattern 'lightgbm*-py3-*.whl' \
    --pattern "lightgbm-${NEW_VERSION}.tar.gz" \
    "v${NEW_VERSION}"

twine upload \
    -r testpypi \
    ./artifacts/*

(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.

twine upload \
    ./artifacts/*
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.4.0 instead of v4.3.1 because of some small breaking changes:

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

@jameslamb
Copy link
Collaborator Author

@shiyu1994 @guolinke @jmoralez @borchero @btrotta to help with the release, could you please do the following?

Thank you!

@borchero
Copy link
Collaborator

borchero commented May 1, 2024

Plan sounds great to me, thanks a lot for taking care of the release @jameslamb!

I think that v4.4.0 makes sense as the next version since we're introducing a few new features :)

@shiyu1994
Copy link
Collaborator

Thank you @jameslamb for the releasing. I don't think we have anything urgent to be included in v4.4.0 for now.

@celestinoxp
Copy link

Please add verbose fix in this new version...

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.

None yet

4 participants