diff --git a/.github/workflows/builder-unit-test.yml b/.github/workflows/builder-unit-test.yml index dc15602a..a16403a2 100644 --- a/.github/workflows/builder-unit-test.yml +++ b/.github/workflows/builder-unit-test.yml @@ -33,7 +33,7 @@ jobs: shell: bash -l {0} run: | conda install -y pylint=2.16.2 \ - conda-build \ + conda-build=24.9.0 \ networkx \ matplotlib=3.7.* \ junit-xml \ diff --git a/.github/workflows/conda-recipe-test.yml b/.github/workflows/conda-recipe-test.yml index b310bef4..08f2139b 100644 --- a/.github/workflows/conda-recipe-test.yml +++ b/.github/workflows/conda-recipe-test.yml @@ -20,7 +20,7 @@ jobs: run: | conda install -y conda-build sh ./packaging_scripts/create_conda_package.sh - conda create -y -n test_opence python=3.10 + conda create -y -n test_opence python=3.11 source /home/runner/.profile conda activate test_opence conda install -y open-ce-builder -c file://$(pwd)/open-ce-conda-pkg diff --git a/.github/workflows/xgboost-build.yml b/.github/workflows/xgboost-build.yml index c07f4644..5e332c60 100644 --- a/.github/workflows/xgboost-build.yml +++ b/.github/workflows/xgboost-build.yml @@ -13,7 +13,7 @@ jobs: strategy: matrix: - python-version: ["3.10", "3.11"] + python-version: ["3.11"] steps: - uses: actions/checkout@v2 diff --git a/README.md b/README.md index 9fd7ebaa..e537a28e 100644 --- a/README.md +++ b/README.md @@ -75,6 +75,7 @@ pip install -e . | 1.10.0 | 12.0.3 | | 1.11.4 | 13.0.3 | | 1.11.5 | 13.0.3 | +| 1.11.6 | 13.0.4 | ### Building a Collection of Packages To build an entire integrated and functional conda channel using Open-CE, start by installing the needed tools in the [Requirements](#requirements) section above. diff --git a/conda/recipe/meta.yaml b/conda/recipe/meta.yaml index 3ba1a8a7..6d9405a1 100644 --- a/conda/recipe/meta.yaml +++ b/conda/recipe/meta.yaml @@ -1,5 +1,5 @@ {% set name = "open-ce-builder" %} -{% set version = "13.0.3" %} +{% set version = "13.0.4" %} package: name: {{ name }} @@ -16,7 +16,7 @@ build: requirements: build: - python - - setuptools + - setuptools 75.* run: - conda-build - conda diff --git a/doc/README.open_ce_build.md b/doc/README.open_ce_build.md index 14d9babc..d1b9e8a1 100644 --- a/doc/README.open_ce_build.md +++ b/doc/README.open_ce_build.md @@ -468,22 +468,24 @@ check the Dockerfile for details. * System: RHEL 8.5 or above * OS: Linux * Power Architecture: Power9/Power10 -* GCC Compiler: GCC12 +* GCC Compiler: GCC12 and GCC13 One can build Power10 enabled packages with above system requirements. Note that Power10 is not required on your build system. The libraries can be built on Power9 as well. -To install GCC 12, following command can be used - +To install GCC 12 or GCC 13, following command can be used - ```shell - yum install -y gcc-toolset-12 + yum install -y gcc-toolset-12 gcc-toolset-13 ``` -Set GCC_HOME environment variables to proceed with the builds on baremetal, if GCC12 is installed at a non-default location. +Set GCC_HOME and GCC_13_HOME environment variables to proceed with the builds on baremetal, if GCC12 or GCC13 is installed at a non-default location. For example: ```shell export GCC_HOME=/opt/rh/gcc-toolset-12/root/usr ``` -GCC 12 setup is automated if the builds are done in a podman container using `--container_build` option. Please see [`Dockerfile`](https://github.com/open-ce/open-ce-builder/blob/main/open_ce/images/builder/Dockerfile-p10) used for containerized build of these packages. +Currently GCC 13 is used to build only `llama.cpp` [`llama.cpp-feedstock`](https://github.com/open-ce/open-ce/blob/open-ce-v1.11.6/envs/llama-env.yaml). All other Open-CE recipes can be built using GCC 12. + +GCC 12/13 setup is automated if the builds are done in a podman container using `--container_build` option. Please see [`Dockerfile`](https://github.com/open-ce/open-ce-builder/blob/main/open_ce/images/builder/Dockerfile-p10) used for containerized build of these packages. #### Build packages Power10 MMA Optimization is applicable for cpu only builds. To build Power10 packages, use one of the following options: diff --git a/open_ce/__init__.py b/open_ce/__init__.py index 1b799e18..f2a38ef3 100644 --- a/open_ce/__init__.py +++ b/open_ce/__init__.py @@ -15,4 +15,4 @@ # limitations under the License. # ***************************************************************** """ -__version__ = "13.0.3" +__version__ = "13.0.4" diff --git a/open_ce/errors.py b/open_ce/errors.py index 80532c31..be8b4c0d 100644 --- a/open_ce/errors.py +++ b/open_ce/errors.py @@ -89,9 +89,9 @@ class Error(Enum): TEMP_BUILD_IMAGE_FILES = (37, "Error removing temporary files created during build image.") UNABLE_DOWNLOAD_SOURCE = (38, "Unable to download source for '{}'.") UNABLE_CLONE_SOURCE = (39, "Unable to clone source for '{}'.") - GCC12_COMPILER_NOT_FOUND = (40, "Please check if GCC12 is installed. If not, install" + - " gcc-toolset-11. Also, set environment variables" + - " GCC_HOME to point to the installed location." + + GCC12_13_COMPILER_NOT_FOUND = (40, "Please check if GCC12 and GCC13 are installed. If not, install" + + " gcc-toolset-12 and gcc-toolset-13. Also, set environment variables" + + " GCC_HOME and GCC_13_HOME to point to the installed location." + " For e.g. GCC_HOME=\"/opt/rh/gcc-toolset-11/root/usr\"") GIT_TAG_MISSING = (41, "git_tag attribute is missing for '{}'") diff --git a/open_ce/images/builder/ubi8/Dockerfile-p10 b/open_ce/images/builder/ubi8/Dockerfile-p10 index 0ac14f1c..c8140bdb 100644 --- a/open_ce/images/builder/ubi8/Dockerfile-p10 +++ b/open_ce/images/builder/ubi8/Dockerfile-p10 @@ -17,7 +17,7 @@ ARG LIMIT_BUILD_RESOURCES=0 ENV LIMIT_BUILD_RESOURCES=${LIMIT_BUILD_RESOURCES} RUN export ARCH="$(uname -m)" && \ - yum install -y yum-utils rsync openssh-clients diffutils procps git-lfs gcc-toolset-12 glibc-devel file psmisc libX11-devel openssl openssl-libs openssl-devel && \ + yum install -y yum-utils rsync openssh-clients diffutils procps git-lfs gcc-toolset-12 gcc-toolset-13 glibc-devel file psmisc libX11-devel openssl openssl-libs openssl-devel && \ yum install -y libtirpc-devel && \ # Create CICD Group groupadd --non-unique --gid ${GROUP_ID} ${CICD_GROUP} && \ @@ -43,9 +43,11 @@ RUN export ARCH="$(uname -m)" && \ echo "export LIMIT_BUILD_RESOURCES=${LIMIT_BUILD_RESOURCES}" >> ${HOME}/.bashrc && \ export PATH="/opt/rh/gcc-toolset-12/root/usr/bin:${PATH}" && \ export GCC_HOME="/opt/rh/gcc-toolset-12/root/usr" && \ + export GCC_13_HOME="/opt/rh/gcc-toolset-13/root/usr" && \ echo "PATH="${PATH}"" >> ${HOME}/.profile && \ echo "PATH="${PATH}"" >> ${HOME}/.bashrc && \ echo "GCC_HOME="${GCC_HOME}"" >> ${HOME}/.bashrc && \ + echo "GCC_13_HOME="${GCC_13_HOME}"" >> ${HOME}/.bashrc && \ chown -R ${BUILD_USER}:${CICD_GROUP} ${CONDA_HOME} && \ git config --global http.version HTTP/1.1 && \ git config --global http.postBuffer 157286400 @@ -54,9 +56,11 @@ RUN export ARCH="$(uname -m)" && \ USER ${BUILD_USER} RUN export PATH="/opt/rh/gcc-toolset-12/root/usr/bin:${PATH}" && \ export GCC_HOME="/opt/rh/gcc-toolset-12/root/usr" && \ + export GCC_13_HOME="/opt/rh/gcc-toolset-13/root/usr" && \ echo "PATH="${PATH}"" >> ${HOME}/.profile && \ echo "PATH="${PATH}"" >> ${HOME}/.bashrc && \ echo "GCC_HOME="${GCC_HOME}"" >> ${HOME}/.bashrc && \ + echo "GCC_13_HOME="${GCC_13_HOME}"" >> ${HOME}/.bashrc && \ mkdir -p $HOME/.cache && \ echo ". $CONDA_HOME/etc/profile.d/conda.sh" >> ${HOME}/.bashrc && \ echo "export PYTHONPATH=${PYTHONPATH}:$HOME/open_ce" >> ${HOME}/.bashrc && \ diff --git a/open_ce/inputs.py b/open_ce/inputs.py index 108df2c0..9827864d 100644 --- a/open_ce/inputs.py +++ b/open_ce/inputs.py @@ -412,11 +412,11 @@ def _check_ppc_arch(args): os.environ["PATH"] = f"{os.path.join(os.environ['GCC_HOME'], 'bin')}:{PATH}" print("Path variable set to : ", os.environ["PATH"]) if not os.path.exists(constants.DEFAULT_GCC_HOME_DIR): - raise OpenCEError(Error.GCC12_COMPILER_NOT_FOUND) + raise OpenCEError(Error.GCC12_13_COMPILER_NOT_FOUND) if "GCC_13_HOME" not in os.environ: os.environ["GCC_13_HOME"] = constants.DEFAULT_GCC_13_HOME_DIR - if not os.path.exists(constants.DEFAULT_GCC_HOME_DIR): - raise OpenCEError(Error.GCC13_COMPILER_NOT_FOUND) + if not os.path.exists(constants.DEFAULT_GCC_13_HOME_DIR): + raise OpenCEError(Error.GCC12_13_COMPILER_NOT_FOUND) def parse_args(parser, arg_strings=None): diff --git a/tests/inputs_test.py b/tests/inputs_test.py index 861896f5..7e8734b1 100644 --- a/tests/inputs_test.py +++ b/tests/inputs_test.py @@ -117,5 +117,5 @@ def test_check_ppc_arch_for_p10_with_no_gcc_path(mocker): with pytest.raises(OpenCEError) as exc: _check_ppc_arch(args) - assert Error.GCC12_COMPILER_NOT_FOUND.value[1] in str(exc.value) + assert Error.GCC12_13_COMPILER_NOT_FOUND.value[1] in str(exc.value)