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

release v4.3.0 #6277

Merged
merged 3 commits into from
Jan 25, 2024
Merged

release v4.3.0 #6277

merged 3 commits into from
Jan 25, 2024

Conversation

jameslamb
Copy link
Collaborator

@jameslamb jameslamb commented Jan 17, 2024

Release checklist:

Copied from #6191, 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)
  • manually test Python and R packages on M1/M2 Mac

PRs that should be merged before releasing:

None

after merge

code to update tags (click me)
NEW_VERSION="4.3.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.3.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="6277"
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.3.0 instead of v4.2.1 because of the two breaking changes:

This release is being put up so soon after v4.2.0 mainly to try to prevent CRAN from archiving the package

@jameslamb
Copy link
Collaborator Author

jameslamb commented Jan 17, 2024

/gha run r-valgrind

Workflow R valgrind tests has been triggered! 🚀
https://github.com/microsoft/LightGBM/actions/runs/7551841465

Status: success ✔️.

@jameslamb jameslamb changed the title WIP: (DO NOT MERGE) release v4.3.0 (DO NOT MERGE) release v4.3.0 Jan 18, 2024
@jameslamb jameslamb marked this pull request as ready for review January 18, 2024 07:55
@jameslamb
Copy link
Collaborator Author

Since all of the R tests (including valgrind and a few I submitted via rhub) are passing here, I've built the CRAN package and submitted it to CRAN as v4.3.0.

Submitted with this note:

This version contains changes which we believe will fix the issues reported in CRAN's 'clang18' checks (https://www.stats.ox.ac.uk/pub/bdr/clang18/lightgbm.log). We've tested those changes using images from rhub (#6265), configured based on CRAN's "Additional Issues" notes at https://cran.r-project.org/web/checks/check_issue_kinds.html.

In the future I don't want to do that outside of the normal release process with approvals and review, but I thought it was necessary to act quickly given the short deadline from CRAN.

@jameslamb
Copy link
Collaborator Author

Separately, there are some non-R CI failures blocking this PR. I think they may be blocking all PRs... I see them on the most recent master build, for example. (build link)

I have limited time to spend on LightGBM the next few days, but can try to look into those (and document them in a separate issue) if no one else is able to get to them first.

@jameslamb
Copy link
Collaborator Author

I've built the CRAN package and submitted it to CRAN as v4.3.0

Happy to say the package was accepted to CRAN! The clang18 check warning is gone at https://cran.r-project.org/web/checks/check_results_lightgbm.html and the package is passing almost all of CRAN's checks (just r-patched-linux-x84_64 has not been run yet).

Updated cran-comments.md in 63d71f6.

there are some non-R CI failures blocking this PR

Documented in #6282.

Investigating in #6283.

@jameslamb
Copy link
Collaborator Author

Add release branch to RTD versions, trigger a new build, check docs

docs build for this release is passing: https://readthedocs.org/projects/lightgbm/builds/23200920/

and the docs look good to me:

@jameslamb
Copy link
Collaborator Author

... test on M1/M2 Mac

The R package is passing CRAN's checks on an arm64 mac: https://www.r-project.org/nosvn/R.check/r-release-macos-arm64/lightgbm-00install.html

I'll test on my M2 laptop in a bit (just waiting on some software updates).

@jameslamb
Copy link
Collaborator Author

@guolinke @jmoralez @shiyu1994 @borchero could you please take a look and let me know if you agree with releasing the current state of this branch (which is up to date with master) as v4.3.0?

@jameslamb
Copy link
Collaborator Author

Built and tested the Python package on my M2 Mac (macOS Sonoma 14.3) tonight.

sh build-python.sh bdist_wheel --nomp
pip install dist/lightgbm*.whl
pytest tests/python_package_test

I used --nomp because I was finding deadlocks that I think might have been caused by different libomp being found at build time vs. runtime (#4229 (comment)).

All tests except the Arrow ones passed. The Arrow tests all failed.

logs (click me)
=========================================== short test summary info ============================================
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_fuzzy[<lambda>-dataset_params0] - AssertionError: assert False
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_fuzzy[<lambda>-dataset_params1] - AssertionError: assert False
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_fuzzy[<lambda>-dataset_params2] - AssertionError: assert False
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_fuzzy[<lambda>-dataset_params3] - AssertionError: assert False
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_fuzzy[<lambda>-dataset_params4] - AssertionError: assert False
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_fuzzy[<lambda>-dataset_params5] - AssertionError: assert False
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_fields_fuzzy - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type0-array-label_data0] - TypeError: Wrong type(Int8Array) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type0-chunked_array-label_data1] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type0-chunked_array-label_data2] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type0-chunked_array-label_data3] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type1-array-label_data0] - TypeError: Wrong type(Int16Array) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type1-chunked_array-label_data1] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type1-chunked_array-label_data2] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type1-chunked_array-label_data3] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type2-array-label_data0] - TypeError: Wrong type(Int32Array) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type2-chunked_array-label_data1] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type2-chunked_array-label_data2] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type2-chunked_array-label_data3] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type3-array-label_data0] - TypeError: Wrong type(Int64Array) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type3-chunked_array-label_data1] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type3-chunked_array-label_data2] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type3-chunked_array-label_data3] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type4-array-label_data0] - TypeError: Wrong type(UInt8Array) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type4-chunked_array-label_data1] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type4-chunked_array-label_data2] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type4-chunked_array-label_data3] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type5-array-label_data0] - TypeError: Wrong type(UInt16Array) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type5-chunked_array-label_data1] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type5-chunked_array-label_data2] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type5-chunked_array-label_data3] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type6-array-label_data0] - TypeError: Wrong type(UInt32Array) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type6-chunked_array-label_data1] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type6-chunked_array-label_data2] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type6-chunked_array-label_data3] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type7-array-label_data0] - TypeError: Wrong type(UInt64Array) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type7-chunked_array-label_data1] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type7-chunked_array-label_data2] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type7-chunked_array-label_data3] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type8-array-label_data0] - TypeError: Wrong type(FloatArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type8-chunked_array-label_data1] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type8-chunked_array-label_data2] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type8-chunked_array-label_data3] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type9-array-label_data0] - TypeError: Wrong type(DoubleArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type9-chunked_array-label_data1] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type9-chunked_array-label_data2] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_labels[arrow_type9-chunked_array-label_data3] - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_weights_none - TypeError: Wrong type(Int64Array) for weight.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_weights[arrow_type0-array-weight_data0] - TypeError: Wrong type(FloatArray) for weight.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_weights[arrow_type0-chunked_array-weight_data1] - TypeError: Wrong type(ChunkedArray) for weight.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_weights[arrow_type0-chunked_array-weight_data2] - TypeError: Wrong type(ChunkedArray) for weight.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_weights[arrow_type0-chunked_array-weight_data3] - TypeError: Wrong type(ChunkedArray) for weight.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_weights[arrow_type1-array-weight_data0] - TypeError: Wrong type(DoubleArray) for weight.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_weights[arrow_type1-chunked_array-weight_data1] - TypeError: Wrong type(ChunkedArray) for weight.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_weights[arrow_type1-chunked_array-weight_data2] - TypeError: Wrong type(ChunkedArray) for weight.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_weights[arrow_type1-chunked_array-weight_data3] - TypeError: Wrong type(ChunkedArray) for weight.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type0-array-group_data0] - TypeError: Wrong type(Int8Array) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type0-chunked_array-group_data1] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type0-chunked_array-group_data2] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type0-chunked_array-group_data3] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type1-array-group_data0] - TypeError: Wrong type(Int16Array) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type1-chunked_array-group_data1] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type1-chunked_array-group_data2] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type1-chunked_array-group_data3] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type2-array-group_data0] - TypeError: Wrong type(Int32Array) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type2-chunked_array-group_data1] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type2-chunked_array-group_data2] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type2-chunked_array-group_data3] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type3-array-group_data0] - TypeError: Wrong type(Int64Array) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type3-chunked_array-group_data1] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type3-chunked_array-group_data2] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type3-chunked_array-group_data3] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type4-array-group_data0] - TypeError: Wrong type(UInt8Array) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type4-chunked_array-group_data1] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type4-chunked_array-group_data2] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type4-chunked_array-group_data3] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type5-array-group_data0] - TypeError: Wrong type(UInt16Array) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type5-chunked_array-group_data1] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type5-chunked_array-group_data2] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type5-chunked_array-group_data3] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type6-array-group_data0] - TypeError: Wrong type(UInt32Array) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type6-chunked_array-group_data1] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type6-chunked_array-group_data2] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type6-chunked_array-group_data3] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type7-array-group_data0] - TypeError: Wrong type(UInt64Array) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type7-chunked_array-group_data1] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type7-chunked_array-group_data2] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_groups[arrow_type7-chunked_array-group_data3] - TypeError: Wrong type(ChunkedArray) for group.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type0-array-init_score_data0] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type0-chunked_array-init_score_data1] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type0-chunked_array-init_score_data2] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type0-chunked_array-init_score_data3] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type1-array-init_score_data0] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type1-chunked_array-init_score_data1] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type1-chunked_array-init_score_data2] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type1-chunked_array-init_score_data3] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type2-array-init_score_data0] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type2-chunked_array-init_score_data1] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type2-chunked_array-init_score_data2] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type2-chunked_array-init_score_data3] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type3-array-init_score_data0] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type3-chunked_array-init_score_data1] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type3-chunked_array-init_score_data2] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type3-chunked_array-init_score_data3] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type4-array-init_score_data0] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type4-chunked_array-init_score_data1] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type4-chunked_array-init_score_data2] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type4-chunked_array-init_score_data3] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type5-array-init_score_data0] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type5-chunked_array-init_score_data1] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type5-chunked_array-init_score_data2] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type5-chunked_array-init_score_data3] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type6-array-init_score_data0] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type6-chunked_array-init_score_data1] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type6-chunked_array-init_score_data2] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type6-chunked_array-init_score_data3] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type7-array-init_score_data0] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type7-chunked_array-init_score_data1] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type7-chunked_array-init_score_data2] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type7-chunked_array-init_score_data3] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type8-array-init_score_data0] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type8-chunked_array-init_score_data1] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type8-chunked_array-init_score_data2] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type8-chunked_array-init_score_data3] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type9-array-init_score_data0] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type9-chunked_array-init_score_data1] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type9-chunked_array-init_score_data2] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_array[arrow_type9-chunked_array-init_score_data3] - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_dataset_construct_init_scores_table - TypeError: init_score must be list, numpy 1-D array or pandas Series.
FAILED tests/python_package_test/test_arrow.py::test_predict_regression - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_predict_binary_classification - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_predict_multiclass_classification - TypeError: Wrong type(ChunkedArray) for label.
FAILED tests/python_package_test/test_arrow.py::test_predict_ranking - TypeError: Wrong type(ChunkedArray) for label.
==================== 133 failed, 540 passed, 33 skipped, 2 xfailed, 147 warnings in 40.24s ====================

I don't think the changeset in v4.3.0 here is the cause of either of these issues, and they seem limited to the arm64 Macs.

I don't think they should delay this release, and that we can focus on fixing them (and various other macOS support issues) in the next release.

@jameslamb jameslamb changed the title (DO NOT MERGE) release v4.3.0 release v4.3.0 Jan 23, 2024
@shiyu1994
Copy link
Collaborator

LGTM. Thanks!

@jameslamb
Copy link
Collaborator Author

Thanks all! I'll continue with the release.

@jameslamb jameslamb merged commit 252828f into master Jan 25, 2024
44 checks passed
@jameslamb jameslamb deleted the release/v4.3.0 branch January 25, 2024 05:19
@jameslamb
Copy link
Collaborator Author

Ran the following to create the v4.3.0 tag and update the stable tag.

git fetch upstream --tags
git tag -d stable
git push upstream :refs/tags/stable
git tag stable
git tag v4.3.0
git push upstream stable v4.3.0

(NOTE: I alias this repo to upstream and my fork to origin in my git settings)

https://github.com/microsoft/LightGBM/tags

image

That triggered an Azure DevOps build which should create the release automatically:https://dev.azure.com/lightgbm-ci/lightgbm-ci/_build/results?buildId=15709&view=results. This takes around 90 minutes (because of the QEMU CI job).

I'll do the remaining tasks tomorrow.

@jameslamb
Copy link
Collaborator Author

v4.3.0 release has been created: https://github.com/microsoft/LightGBM/releases/tag/v4.3.0

@jameslamb
Copy link
Collaborator Author

Update version and commit hash in Homebrew formula

Homebrew/homebrew-core#160920

@jameslamb
Copy link
Collaborator Author

Upload release to test PyPI
Upload release to PyPI.

This is done, and tested that the wheels installed from there work (on my intel mac).

image

https://pypi.org/project/lightgbm/#files

@jameslamb
Copy link
Collaborator Author

Add new tag to RTD versions and trigger a new build.

These are done. v4.3.0 now available on readthedocs.

@jameslamb
Copy link
Collaborator Author

Upload release to NuGet.

done

@jameslamb
Copy link
Collaborator Author

put up another PR incrementing development version here in GitHub

#6287

And with that, this release is done. Thanks everyone!

@jameslamb
Copy link
Collaborator Author

For future reference... I added some code snippets to the PR description here to hopefully make it a little easier to cut the ext release.

Maybe in the future if we start releasing more frequently, it'd make sense to check those into the repo.

@jameslamb jameslamb mentioned this pull request May 1, 2024
33 tasks
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

3 participants