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

Prepare Release 10.2.3 #442

Merged
merged 67 commits into from
Nov 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
67 commits
Select commit Hold shift + click to select a range
adcfcc0
Add build for ubuntu 2404 (#340) (#342)
bruno-at-orange Aug 5, 2024
ed5d7e9
update khiops-env to display error (#284) (#346)
bruno-at-orange Aug 12, 2024
d677d5e
Remove unmantained setup-ninja action (#365)
folmos-at-orange Sep 2, 2024
580bf23
Add support for Python scripts to update-copyright
folmos-at-orange Sep 2, 2024
76ea25c
Add copyright banner to Python scripts
folmos-at-orange Sep 2, 2024
b467a88
Update yamlfix
folmos-at-orange Sep 2, 2024
4cd80cc
Merge pull request #366 from KhiopsML/150-backport-dev-v10
folmos-at-orange Sep 3, 2024
f6217fe
Uniformize pre-release messages in CI
folmos-at-orange Sep 2, 2024
775443c
Remove obsolete checkout code in pack-nsis
folmos-at-orange Sep 2, 2024
42035d9
Add a tag/source version consistency check in CI
folmos-at-orange Aug 30, 2024
59b865b
Merge pull request #368 from KhiopsML/100-backport-dev-v10
folmos-at-orange Sep 4, 2024
13a25cc
Fix update-copyright.py tmp file failure in windows (#374)
folmos-at-orange Sep 10, 2024
205e090
Fix slice memory estimation
folmos-at-orange Sep 17, 2024
9f6b886
Silence SNB temporary dictionary file deletion
folmos-at-orange Sep 17, 2024
cdc7a0f
Merge pull request #381 from KhiopsML/fix-slice-memory-dev-v10
folmos-at-orange Sep 17, 2024
19eb88f
Add cmake script to detect mpi implentation (in both standard and con…
bruno-at-orange Aug 5, 2024
9d35ecd
Add khiops_env in conda packages
bruno-at-orange Aug 5, 2024
3910bb2
Add a new binary _khiopsgetprocnumber
bruno-at-orange Aug 29, 2024
4f5955c
Improve khiops_env (cluster ready and more)
bruno-at-orange Sep 6, 2024
b52b9c2
Put tests results in artifacts on action test-khiops-on-iris
bruno-at-orange Sep 25, 2024
4b6d509
search cmake modules in scripts/
bruno-at-orange Sep 30, 2024
1a580f9
Remove KHIOPS_API_MODE
bruno-at-orange Sep 30, 2024
4a32f31
Merge pull request #386 from KhiopsML/258-backport-to-v10
bruno-at-orange Oct 1, 2024
94ab350
Use only conda-forge when building and testing the Conda packages
popescu-v Jun 28, 2024
01c3886
Build Windows Conda packages on the latest (windows-2022) Windows Git…
popescu-v Jul 2, 2024
c9e3e6e
Set Windows CXX compiler dependency on the Conda recipe
popescu-v Jul 31, 2024
2102766
Specify empty target platform and generator toolset for CMake with Ni…
popescu-v Aug 1, 2024
5b8223c
Disable math optimisation on clang and gcc for all UNIX build targets
bruno-at-orange Sep 17, 2024
ff7444c
Update Khiops version to 10.2.3-b.2
popescu-v Jul 2, 2024
74911ec
Merge pull request #341 from KhiopsML/for_testing_conda-forge_only
popescu-v Oct 2, 2024
57186d5
Use absolute path to `mpiexec` in `khiops_env` on all UNIX installations
popescu-v Oct 7, 2024
f6ab2a4
Merge pull request #395 from KhiopsML/392-use-absolute-path-to-mpiexe…
popescu-v Oct 7, 2024
c8c28bd
Look for drivers in KHIOPS_DRIVERS_LOCATION, if it is set (#398)
bruno-at-orange Oct 10, 2024
354b7e9
Fix "Max number of processor cores" in the GUI
bruno-at-orange Oct 1, 2024
f237ce5
Simplification of the computation of MaxSlaveProcessNumber in DTDecis…
bruno-at-orange Oct 1, 2024
0a561ef
Corrects the computation of the number of slaves
bruno-at-orange Oct 1, 2024
77b091e
Merge pull request #399 from KhiopsML/384-backport-to-v10
bruno-at-orange Oct 10, 2024
c5ccade
Run MODL in parallel in run-standard-tests (fix) (#400)
bruno-at-orange Oct 11, 2024
f321be4
Fix typo in KHIOPS_DRIVER_PATH listing: add space between var name an…
popescu-v Oct 11, 2024
a7820f3
Merge pull request #408 from KhiopsML/fix_khiops_env_KHIOPS_DRIVERS_P…
popescu-v Oct 11, 2024
76a3734
Set hostname to localhost on MacOS
popescu-v Oct 11, 2024
03ff081
Merge pull request #404 from KhiopsML/401-mpi-fails-on-macos-in-some-…
popescu-v Oct 11, 2024
3a9e8e4
Fix return code in SystemFile and SystemFileDriverANSI (#329) (#417)
bruno-at-orange Oct 18, 2024
803b719
Improve khiops_env on fedora like distros
bruno-at-orange Oct 15, 2024
c29250e
Add KHIOPS_MPI_VERBOSE in khiops_env (UNIXes only)
bruno-at-orange Oct 15, 2024
521217d
Merge pull request #414 from KhiopsML/383-bis-khiops-command-return-e…
bruno-at-orange Oct 18, 2024
700e374
Use Python 3.8-compatible string suffix removal idiom
popescu-v Oct 29, 2024
42bd4a9
Merge pull request #420 from KhiopsML/support_py38_in_learningtest_tool
popescu-v Oct 29, 2024
7e10d40
CMake presets are no longer used in Conda packaging
bruno-at-orange Oct 11, 2024
b7d7a41
Remove the test on MPI_BIN on conda
bruno-at-orange Oct 11, 2024
5ed83ec
Simplify conda build
bruno-at-orange Oct 11, 2024
abbc204
Add property in KNI target to build lib file
bruno-at-orange Oct 14, 2024
56c18c2
Merge pull request #426 from KhiopsML/407-backport-v10
popescu-v Nov 4, 2024
8467e5b
Update README and WHATSNEW files
popescu-v Nov 4, 2024
e9d8832
Update Khiops version to 10.2.3-rc.1
popescu-v Nov 5, 2024
a7ebaf6
Merge pull request #428 from KhiopsML/prepare-release-10.2.3
popescu-v Nov 5, 2024
c4c2a14
Fix typo in comment
popescu-v Nov 6, 2024
f0f7e67
Remove duplicate code: the exact same lines are present before the re…
popescu-v Nov 6, 2024
03f4d7c
Add the `--allow-run-as-root` option to the OpenMPI executable
popescu-v Nov 6, 2024
7bebb2e
Merge pull request #430 from KhiopsML/429-learningtesttool-fails-on-d…
popescu-v Nov 6, 2024
cb64317
Update Khiops version to 10.2.3-rc.2
popescu-v Nov 6, 2024
2833019
Update documentation for Khiops executables' paths variables in `khio…
popescu-v Nov 7, 2024
73c2721
Fix CMake install script @SET_DRIVERS_PATH@ substitution on Conda / W…
popescu-v Nov 6, 2024
bf701bd
Use the instantiated `khiops_env` template in the Windows NSIS script
popescu-v Nov 6, 2024
f46c096
Merge pull request #433 from KhiopsML/431-on-windows-cmake-variable-s…
popescu-v Nov 7, 2024
12e7d0d
Update Khiops version to 10.2.3
popescu-v Nov 8, 2024
2e0a23f
Merge pull request #438 from KhiopsML/427-prepare-release-10-2-3
popescu-v Nov 12, 2024
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
4 changes: 4 additions & 0 deletions .cmake-format.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Copyright (c) 2024 Orange. All rights reserved.
# This software is distributed under the BSD 3-Clause-clear License, the text of which is available
# at https://spdx.org/licenses/BSD-3-Clause-Clear.html or see the "LICENSE" file for more details.

with section("format"):
line_width = 120
tab_size = 2
Expand Down
15 changes: 11 additions & 4 deletions .github/actions/build-khiops/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ inputs:
runs:
using: composite
steps:
- name: Setup MPI (windows)
- name: Setup MPI (Windows)
if: runner.os == 'Windows'
uses: mpi4py/setup-mpi@v1
- name: Setup MPI (macOS)
Expand All @@ -29,9 +29,16 @@ runs:
sudo apt-get install openmpi-bin libopenmpi-dev
sudo update-alternatives --set mpi /usr/bin/mpicc.openmpi
sudo update-alternatives --set mpirun /usr/bin/mpirun.openmpi
- name: Setup Ninja
uses: ashutoshvarma/[email protected]
- name: Load Visual C++ Environment Variables (Windows only)
- name: Setup Ninja (Linux)
if: runner.os == 'Linux'
shell: bash
run: sudo apt-get install ninja-build
- name: Setup Ninja (macOS)
if: runner.os == 'macOS'
shell: bash
run: brew install ninja
# This step is required to have ninja and cmake in the path for windows
- name: Load Visual C++ Environment Variables (Windows)
if: runner.os == 'Windows'
shell: cmd
run: |
Expand Down
17 changes: 17 additions & 0 deletions .github/actions/check-tag-version/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: Check tag/version consistency
description: Check that the Khiops source version matches a tag
runs:
using: composite
steps:
- name: Check that the Khiops source version matches the input tag
shell: bash
run: |-
SOURCE_VERSION=$(./scripts/khiops-version)
if [[ "$SOURCE_VERSION" != "${{ github.ref_name }}" ]]
then
echo "::error::Incompatible source version '$SOURCE_VERSION' with tag '${{ github.ref_name }}'. Either change the tag to match the source version or modify the KHIOPS_VERSION macro in src/Learning/KWUtils/KWKhiopsVersion.h."
exit 1
else
echo "Tag '${{ github.ref_name }}' OK"
fi
126 changes: 112 additions & 14 deletions .github/actions/test-khiops-install/action.yml
Original file line number Diff line number Diff line change
@@ -1,27 +1,100 @@
---
name: Test Khiops Installation
description: Check the outputs of Khiops in the console
description: Test khiops' scripts (khiops_env, khiops and khiops_coclustering)
runs:
using: composite
# Test if the output of Khiops in the console is as expected (no mpi or java errors)
# We expect only one line in stdout+stderr when running 'khiops -v'
steps:
- name: Print status for debugging
shell: bash
# We force the process number to 4 because the runner has only 2 proc.
# With 2 proc khiops-env switches to serial and mpi is not used.
- name: Test that the executables are installed (Linux/macOS)
# We call khiops_env a first time to test the calling of _khiopsgetprocnumber
# then we play with KHIOPS_PROC_NUMBER:
# - with KHIOPS_PROC_NUMBER=2, khiops should not use MPI, we check that KHIOPS_MPI_COMMAND is empty
# - with KHIOPS_PROC_NUMBER=8, khiops should use MPI, we check that KHIOPS_MPI_COMMAND is not empty and KHIOPS_MPI_ERROR is empty
#
# The env var OMPI_MCA_rmaps_base_oversubscribe is for openmpi it corresponds to
# the flag --oversubscribe (Nodes are allowed to be oversubscribed)
# KHIOPS_MPI_VERBOSE is set to true to detect errors from MPI
if: runner.os != 'Windows'
shell: bash
env:
KHIOPS_PROC_NUMBER: 4
OMPI_MCA_rmaps_base_oversubscribe: true
KHIOPS_MPI_VERBOSE: true
run: |
khiops-env --env
- name: Check Khiops output
echo
echo --- Khiops environment with KHIOPS_PROC_NUMBER not set
khiops_env --env
echo
export KHIOPS_PROC_NUMBER=2
echo --- Khiops environment with KHIOPS_PROC_NUMBER=$KHIOPS_PROC_NUMBER
source khiops_env --env
if [ ! -z "$KHIOPS_MPI_COMMAND" ];
then
echo "::error::MPI is used even though there are only 2 procs available"
false
fi
echo
export KHIOPS_PROC_NUMBER=8
echo --- Khiops environment with KHIOPS_PROC_NUMBER=$KHIOPS_PROC_NUMBER
source khiops_env --env
if [ ! -z "$KHIOPS_MPI_ERROR" ];
then
echo "::error::Unexpected MPI error: $KHIOPS_MPI_ERROR"
false
fi
if [ -z "$KHIOPS_MPI_COMMAND" ];
then
echo "::error::KHIOPS_MPI_COMMAND is not set"
false
fi
echo
echo --- Khiops status
khiops -s
echo
echo --- Khiops Coclustering status
khiops_coclustering -s
- name: Test that the executables are installed (windows)
if: runner.os == 'Windows'
shell: cmd /C call {0}
run: |
echo.
echo --- Khiops environment with KHIOPS_PROC_NUMBER not set
call khiops_env --env
echo.
set KHIOPS_PROC_NUMBER=2
echo --- Khiops environment with KHIOPS_PROC_NUMBER=%KHIOPS_PROC_NUMBER%
call khiops_env --env
call khiops_env
if not "%KHIOPS_MPI_COMMAND%". == "". (
echo "::error::MPI is used even though there are only 2 procs available"
exit 1
)
set KHIOPS_PROC_NUMBER=8
echo.
echo --- Khiops environment with KHIOPS_PROC_NUMBER=%KHIOPS_PROC_NUMBER%
call khiops_env --env
call khiops_env
if not "%KHIOPS_MPI_ERROR%".=="". (
echo "::error::Unexpected MPI error: %KHIOPS_MPI_ERROR%"
exit 1
)
if "%KHIOPS_MPI_COMMAND%". == "". (
echo "::error::KHIOPS_MPI_COMMAND is not set"
exit 1
)
echo.
echo --- Khiops status
khiops -s
echo.
echo --- Khiops Coclustering status
khiops_coclustering -s
- name: Check Khiops output [UNIXes]
# Test if the output of Khiops in the console is as expected (no mpi or java errors)
# We expect only one line in stdout+stderr when running 'khiops -v'
if: runner.os != 'Windows'
shell: bash
env:
KHIOPS_PROC_NUMBER: 4
OMPI_MCA_rmaps_base_oversubscribe: true
KHIOPS_MPI_VERBOSE: true
run: |
khiops -s
khiops -v &> output
Expand All @@ -31,7 +104,20 @@ runs:
echo "::error::Unexpected output in khiops scripts"
false
fi
- name: Check Khiops coclustering output
- name: Check Khiops output [Windows]
if: runner.os == 'Windows'
shell: cmd /C call {0}
env:
KHIOPS_PROC_NUMBER: 4
run: |
khiops -s
for /f %%i in (' khiops -v ^| find /c /v "" ') do set "LINE_NUMBER=%%i"
if not "%LINE_NUMBER%" == "1" (
echo "::error::Unexpected output in khiops scripts"
exit 1
)
- name: Check Khiops coclustering output [UNIXes]
if: runner.os != 'Windows'
shell: bash
run: |-
khiops_coclustering -s
Expand All @@ -42,14 +128,26 @@ runs:
echo "::error::Unexpected output in khiops_coclustering scripts"
false
fi
- name: Check process number
- name: Check Khiops coclustering output [Windows]
if: runner.os == 'Windows'
shell: cmd /C call {0}
run: |
khiops_coclustering -s
for /f %%i in (' khiops_coclustering -v ^| find /c /v "" ') do set "LINE_NUMBER=%%i"
if not "%LINE_NUMBER%" == "1" (
echo "::error::Unexpected output in khiops_coclustering scripts"
exit 1
)
- name: Check process number [UNIXes]
# Test if Khiops has the right number of logical processes
# (it's obvious but you never know)
if: runner.os != 'Windows'
shell: bash
env:
KHIOPS_PROC_NUMBER: 4
OMPI_MCA_rmaps_base_oversubscribe: true
run: |-
PROC_NUMBER_LIST=($(khiops -s | grep 'Logical processes on system'))
PROC_NUMBER=${PROC_NUMBER_LIST[-1]}
PROC_NUMBER=$(khiops -s | grep "Logical processes" | awk '{print $NF}')
if [ "$PROC_NUMBER" != "$KHIOPS_PROC_NUMBER" ] ;
then
echo "::error::Wrong proc number ($PROC_NUMBER vs $KHIOPS_PROC_NUMBER)"
Expand Down
41 changes: 26 additions & 15 deletions .github/actions/test-khiops-on-iris/action.yml
Original file line number Diff line number Diff line change
@@ -1,21 +1,29 @@
---
name: Test Khiops on Iris
description: Tests a Khiops installation on the Iris dataset
inputs:
os-decription:
description: OS description (os +arch) used to name artifacts (error reports)
required: true
runs:
using: composite
steps:
# Python install: we don't use the setup-python action because of the following error:
# python3: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by python3)
- name: Python setup for Linux
if: runner.os == 'Linux'
shell: bash
run: |
# Detect Debian based OS
if [ -d "/etc/apt" ]
# Install Python 3 if not present (already present in conda environment)
if ! command -v python3 &> /dev/null
then
apt-get install -y python3 > /dev/null
else
yum install -y python3.11
# Python install: we don't use the setup-python action because of the following error:
# python3: /lib64/libc.so.6: version `GLIBC_2.34' not found (required by python3)
# Detect Debian based OS
if [ -d "/etc/apt" ]
then
apt-get install -y python3 > /dev/null
else
yum install -y python3.11
fi
fi
echo "PYTHON=python3" >> "$GITHUB_ENV"
- name: Python setup for Windows or macOS
Expand All @@ -39,19 +47,12 @@ runs:
echo "KHIOPS_SCRIPT=khiops" >> "$GITHUB_ENV"
echo "KHIOPS_CC_SCRIPT=khiops_coclustering" >> "$GITHUB_ENV"
fi
- name: Check Khiops installation
shell: bash
env:
KHIOPS_PROC_NUMBER: 4
OMPI_MCA_rmaps_base_oversubscribe: true
run: |
"$KHIOPS_SCRIPT" -s
"$KHIOPS_CC_SCRIPT" -s
- name: Run Khiops tests
shell: bash
env:
KHIOPS_PROC_NUMBER: 4
OMPI_MCA_rmaps_base_oversubscribe: true
KHIOPS_MPI_VERBOSE: true
run: |
cd test/LearningTest/TestKhiops/Standard/Iris/
"$KHIOPS_SCRIPT" -b -i test.prm -e results/err.txt
Expand All @@ -73,7 +74,17 @@ runs:
$PYTHON kht_test.py ../../LearningTest/TestCoclustering/Standard/Iris check
$PYTHON kht_apply.py ../../LearningTest/TestKhiops/Standard/Iris errors | tee /tmp/khiops-log.txt
$PYTHON kht_apply.py ../../LearningTest/TestCoclustering/Standard/Iris errors | tee /tmp/coclustering-log.txt
$PYTHON kht_collect_results.py ../../LearningTest/TestKhiops/Standard/Iris $GITHUB_WORKSPACE/results/khiops --collect-type warnings
$PYTHON kht_collect_results.py ../../LearningTest/TestCoclustering/Standard/Iris $GITHUB_WORKSPACE/results/coclustering --collect-type warnings
if (grep -q error /tmp/khiops-log.txt || grep -q error /tmp/coclustering-log.txt); then
echo "::error::Errors in Khiops run"
false
fi
- name: Upload test results
if: failure()
uses: actions/upload-artifact@v3
with:
name: test-results-${{ inputs.os-decription}}
retention-days: 7
path: |-
results/
1 change: 1 addition & 0 deletions .github/workflows/build-linux-pack-containers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ jobs:
- ubuntu18.04
- ubuntu20.04
- ubuntu22.04
- ubuntu24.04
permissions:
packages: write # Allows writing in the container registry
steps:
Expand Down
Loading
Loading