Skip to content

Commit b25fa95

Browse files
authored
Merge pull request #278 from KhiopsML/dev
Finalize release 10.2.3.0
2 parents 427c1d8 + ff3b61f commit b25fa95

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+5130
-4243
lines changed

.github/workflows/api-docs.yml

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ on:
88
required: true
99
type: boolean
1010
default: false
11+
image-tag:
12+
default: 10.2.3.0
13+
description: Development Docker Image Tag
1114
pull_request:
1215
paths:
1316
- doc/**.rst
@@ -32,7 +35,11 @@ jobs:
3235
build:
3336
runs-on: ubuntu-22.04
3437
container:
35-
image: ghcr.io/khiopsml/khiops-python/khiopspydev-ubuntu22.04:latest
38+
# 'latest' default image tag cannot be set as an environment variable,
39+
# because the `env` context is only accessible at the step level;
40+
# hence, it is hard-coded
41+
image: |-
42+
ghcr.io/khiopsml/khiops-python/khiopspydev-ubuntu22.04:${{ inputs.image-tag || '10.2.3.0' }}
3643
# Use the 'runner' user (1001) from github so checkout actions work properly
3744
# https://github.com/actions/runner/issues/2033#issuecomment-1598547465
3845
options: --user 1001

.github/workflows/conda.yml

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ env:
44
DEFAULT_SAMPLES_VERSION: 10.2.0
55
# Note: The default Khiops version must never be an alpha release as they are
66
# ephemeral. To test alpha versions run the workflow manually.
7-
DEFAULT_KHIOPS_CORE_VERSION: 10.2.2
7+
DEFAULT_KHIOPS_CORE_VERSION: 10.2.3
88
on:
99
workflow_dispatch:
1010
inputs:
1111
khiops-core-version:
12-
default: 10.2.2
12+
default: 10.2.3
1313
description: khiops-core version for testing
1414
khiops-samples-version:
1515
default: 10.2.0
@@ -39,19 +39,18 @@ jobs:
3939
# Checkout the full repository to have the tags so versioneer works properly
4040
# See issue https://github.com/actions/checkout/issues/701
4141
fetch-depth: 0
42-
- name: Install Miniconda
42+
- name: Install Miniforge
4343
uses: conda-incubator/setup-miniconda@v3
4444
with:
45-
miniconda-version: latest
45+
miniforge-version: latest
4646
python-version: '3.12'
4747
- name: Install Dependency Requirements for Building Conda Packages
4848
run: conda install -y conda-build
4949
- name: Build the Conda Package
5050
# Note: The "khiops-dev" conda channel is needed to retrieve the "khiops-core" package.
5151
# The "test" part of the conda recipe needs this package.
5252
run: |
53-
conda build --channel conda-forge --channel khiops-dev \
54-
--output-folder ./khiops-conda ./packaging/conda
53+
conda build --channel khiops-dev --output-folder ./khiops-conda ./packaging/conda
5554
- name: Upload Conda Package Artifact
5655
uses: actions/upload-artifact@v4
5756
with:
@@ -78,10 +77,10 @@ jobs:
7877
runs-on: ${{ matrix.env.os }}
7978
container: ${{ fromJSON(matrix.env.json-image) }}
8079
steps:
81-
- name: Install Miniconda
80+
- name: Install Miniforge
8281
uses: conda-incubator/setup-miniconda@v3
8382
with:
84-
miniconda-version: latest # needed for macOS 13
83+
miniforge-version: latest # needed for macOS 13
8584
python-version: ${{ matrix.python-version }}
8685
- name: Download Conda Package Artifact
8786
uses: actions/download-artifact@v4
@@ -92,16 +91,9 @@ jobs:
9291
run: |
9392
KHIOPS_CORE_VERSION="${{ inputs.khiops-core-version || env.DEFAULT_KHIOPS_CORE_VERSION }}"
9493
echo "KHIOPS_CORE_VERSION=$KHIOPS_CORE_VERSION" >> "$GITHUB_ENV"
95-
- name: Install the Khiops Conda package (Windows)
96-
if: runner.os == 'Windows'
94+
- name: Install the Khiops Conda package
9795
run: |
9896
conda install --channel khiops-dev khiops-core=$KHIOPS_CORE_VERSION
99-
conda install --override-channels --channel conda-forge --channel ./khiops-conda/ khiops
100-
# In Linux/macOS we need the conda-forge channel to install their pinned versions
101-
- name: Install the Khiops Conda package (Linux/macOS)
102-
if: runner.os != 'Windows'
103-
run: |
104-
conda install --channel conda-forge --channel khiops-dev khiops-core=$KHIOPS_CORE_VERSION
10597
conda install --channel ./khiops-conda/ khiops
10698
- name: Test Khiops Installation Status
10799
run: kh-status
@@ -135,10 +127,10 @@ jobs:
135127
# See the upload-artifact step in the build job for the explanation of this pattern
136128
name: khiops-conda
137129
path: ./khiops-conda
138-
- name: Install Miniconda
130+
- name: Install Miniforge
139131
uses: conda-incubator/setup-miniconda@v3
140132
with:
141-
miniconda-version: latest
133+
miniforge-version: latest
142134
python-version: '3.12'
143135
- name: Install Requirement Packages
144136
run: conda install -y anaconda-client conda-index

.github/workflows/dev-docker.yml

Lines changed: 32 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
---
22
name: Dev Docker
33
env:
4-
DEFAULT_KHIOPS_REVISION: 10.2.2
4+
DEFAULT_KHIOPS_REVISION: 10.2.3
5+
DEFAULT_IMAGE_INCREMENT: 0
56
DEFAULT_SERVER_REVISION: main
67
DEFAULT_PYTHON_VERSIONS: 3.8 3.9 3.10 3.11 3.12
78
on:
@@ -11,20 +12,28 @@ on:
1112
inputs:
1213
khiops-revision:
1314
type: string
14-
default: main
15+
default: 10.2.3
1516
description: Khiops Revision
16-
server-revision:
17-
type: string
18-
default: main
19-
description: Khiops Server Revision
17+
image-increment:
18+
type: number
19+
default: 0
20+
description: Image Tag Increment
2021
push:
2122
type: boolean
22-
default: true
23+
default: false
2324
description: Push to GH Registry
25+
set-latest:
26+
type: boolean
27+
default: false
28+
description: Set as 'latest'
2429
python-versions:
2530
type: string
2631
default: 3.8 3.9 3.10 3.11 3.12
27-
description: Python versions supported by khiops-python
32+
description: Python versions to support
33+
server-revision:
34+
type: string
35+
default: main
36+
description: Khiops Server Revision
2837
concurrency:
2938
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
3039
cancel-in-progress: true
@@ -39,12 +48,13 @@ jobs:
3948
packages: write # to write in the Github package registry
4049
steps:
4150
- name: Set input parameters as env or output
42-
id: set-parameters
4351
run: |
4452
set -x
4553
echo "KHIOPS_REVISION=${{ inputs.khiops-revision || env.DEFAULT_KHIOPS_REVISION }}" >> "$GITHUB_ENV"
54+
echo "IMAGE_INCREMENT=${{ inputs.image-increment || env.DEFAULT_IMAGE_INCREMENT }}" >> "$GITHUB_ENV"
4655
echo "KHIOPSDEV_OS_CODENAME=$(echo '${{ matrix.khiopsdev-os }}' | tr -d '0-9.')" >> "$GITHUB_ENV"
4756
echo "SERVER_REVISION=${{ inputs.server-revision || env.DEFAULT_SERVER_REVISION }}" >> "$GITHUB_ENV"
57+
echo "IMAGE_URL=ghcr.io/khiopsml/khiops-python/khiopspydev-${{ matrix.khiopsdev-os }}" >> "$GITHUB_ENV"
4858
- name: Checkout khiops-python sources
4959
uses: actions/checkout@v4
5060
- name: Set up Docker Buildx
@@ -56,6 +66,18 @@ jobs:
5666
registry: ghcr.io
5767
username: ${{ github.actor }}
5868
password: ${{ secrets.GITHUB_TOKEN }}
69+
- name: Set up the Docker Image Tags
70+
run: |
71+
set -x
72+
# Set latest only if requested and on "dev" or "main" branch
73+
if [[ "${{ inputs.set-latest }}" == "true" &&
74+
("$GITHUB_REF_NAME" == "dev" || "$GITHUB_REF_NAME" == "main") ]]
75+
then
76+
DOCKER_IMAGE_TAGS="$IMAGE_URL:latest,$IMAGE_URL:$KHIOPS_REVISION.$IMAGE_INCREMENT"
77+
else
78+
DOCKER_IMAGE_TAGS="$IMAGE_URL:$KHIOPS_REVISION.$IMAGE_INCREMENT"
79+
fi
80+
echo "DOCKER_IMAGE_TAGS=$DOCKER_IMAGE_TAGS" >> "$GITHUB_ENV"
5981
- name: Build image and push it to GitHub Container Registry
6082
uses: docker/build-push-action@v5
6183
with:
@@ -66,24 +88,8 @@ jobs:
6688
"KHIOPSDEV_OS=${{ matrix.khiopsdev-os }}"
6789
"SERVER_REVISION=${{ env.SERVER_REVISION }}"
6890
"PYTHON_VERSIONS=${{ inputs.python-versions || env.DEFAULT_PYTHON_VERSIONS }}"
69-
tags: ghcr.io/khiopsml/khiops-python/khiopspydev-${{ matrix.khiopsdev-os }}:latest
91+
tags: ${{ env.DOCKER_IMAGE_TAGS }}
7092
# Push only on manual request
7193
push: ${{ inputs.push || false }}
7294
- name: Display the image digest
7395
run: echo ${{ steps.docker-build.outputs.digest }}
74-
test:
75-
# Test only when manually pushed an requested
76-
if: ${{ inputs.push || false }}
77-
needs: build-push
78-
runs-on: ubuntu-22.04
79-
strategy:
80-
fail-fast: false
81-
matrix:
82-
khiopsdev-os: [ubuntu22.04, rocky8, rocky9]
83-
container:
84-
image: ghcr.io/khiopsml/khiops-python/khiopspydev-${{ matrix.khiopsdev-os }}:latest
85-
steps:
86-
- name: Check Khiops executables
87-
run: |-
88-
khiops -v
89-
khiops_coclustering -v

.github/workflows/pip.yml

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ on:
88
samples-revision:
99
default: main
1010
description: khiops-samples repo revision
11+
image-tag:
12+
default: 10.2.3.0
13+
description: Development Docker Image Tag
1114
pull_request:
1215
push:
1316
tags: ['*']
@@ -49,7 +52,11 @@ jobs:
4952
matrix:
5053
container: [ubuntu22.04, rocky9]
5154
container:
52-
image: ghcr.io/khiopsml/khiops-python/khiopspydev-${{ matrix.container }}:latest
55+
# 'latest' default image tag cannot be set as an environment variable,
56+
# because the `env` context is only accessible at the step level;
57+
# hence, it is hard-coded
58+
image: |-
59+
ghcr.io/khiopsml/khiops-python/khiopspydev-${{ matrix.container }}:${{ inputs.image-tag || '10.2.3.0' }}
5360
steps:
5461
- name: Set parameters as env
5562
run: |
@@ -77,7 +84,6 @@ jobs:
7784
rmaps_base_oversubscribe: true
7885
# Oversubscribe for MPI > 4.x
7986
OMPI_MCA_rmaps_base_oversubscribe: true
80-
PRTE_MCA_rmaps_default_mapping_policy: :oversubscribe
8187
run: |-
8288
# Make sure MPI support is not loaded through env modules
8389
# Note: As the Docker container's shell is non-interactive, environment
@@ -93,11 +99,8 @@ jobs:
9399
kh-samples sklearn -i khiops_classifier -e
94100
95101
# Test that the line containing "MPI command" also contains
96-
# an executable name under a /bin directory
97-
# Note: this executable name can be different, depending on the MPI
98-
# backend and OS; for instance, "orterun" for OpenMPI on Ubuntu Linux, but
99-
# "mpiexec" for OpenMPI on Rocky Linux
100-
kh-status | grep "MPI command" | grep -Ewq "(/.+?)/bin/.+"
102+
# an executable named "mpiexec"
103+
kh-status | grep "MPI command" | grep -wq "mpiexec"
101104
release:
102105
if: github.ref_type == 'tag'
103106
needs: [build, test]

0 commit comments

Comments
 (0)