diff --git a/buildconfig/Jenkins/Conda/package-conda b/buildconfig/Jenkins/Conda/package-conda index 72650a3a42ae..55ed9edd059e 100755 --- a/buildconfig/Jenkins/Conda/package-conda +++ b/buildconfig/Jenkins/Conda/package-conda @@ -142,7 +142,7 @@ if [[ $ENABLE_BUILD_WORKBENCH == true ]]; then if [[ $BUILD_WORKBENCH_WITH_DOCS == false ]]; then export INCLUDE_MANTIDDOCS=False fi - conda mambabuild ./mantidworkbench/ $EXTRA_BUILD_OPTIONS + conda mambabuild ./mantidworkbench/ -c mantid/label/main $EXTRA_BUILD_OPTIONS fi # elapsed time with second resolution diff --git a/conda/recipes/conda_build_config.yaml b/conda/recipes/conda_build_config.yaml index c313dbf23fea..68a5ce357f05 100644 --- a/conda/recipes/conda_build_config.yaml +++ b/conda/recipes/conda_build_config.yaml @@ -68,6 +68,9 @@ numpy: matplotlib: - 3.8.* +mslice: + - '2.10' + ninja: - '>=1.10.2' diff --git a/conda/recipes/mantidworkbench/meta.yaml b/conda/recipes/mantidworkbench/meta.yaml index 9ec8fb21a0c1..d371bc47edf9 100644 --- a/conda/recipes/mantidworkbench/meta.yaml +++ b/conda/recipes/mantidworkbench/meta.yaml @@ -41,6 +41,7 @@ requirements: - psutil {{ psutil }} - {{ pin_compatible("python", max_pin="x.x") }} - matplotlib {{ matplotlib }} + - mslice {{ mslice }} - python.app # [osx] - qtconsole {{ qtconsole }} - {{ pin_compatible("setuptools", max_pin="x.x") }} diff --git a/dev-docs/source/ReleaseChecklist.rst b/dev-docs/source/ReleaseChecklist.rst index 5c3b2386da72..34306a6d9426 100644 --- a/dev-docs/source/ReleaseChecklist.rst +++ b/dev-docs/source/ReleaseChecklist.rst @@ -482,9 +482,6 @@ have been fixed. Then: * Check the release notes and verify that the "Under Construction" paragraph on the main index page has been removed. Remove the paragraph if it still exists. * Ensure that all changes, including release notes, have been merged into the ``release-next`` branch. -* On the ``release-next`` branch, check whether the `git SHA - `__ - for MSlice is up to date. If not, create a PR to update it and ask a gatekeeper to merge it. * Make sure the ``release-next`` branch is fully merged into ``main``. If required, manually run the `GitHub workflow `__ using the ``release-next`` branch to merge the changes. @@ -525,7 +522,9 @@ Create Final Release Candidates ############################### Check with the Quality Assurance Manager that the Smoke testing has been completed, and any issues -have been fixed. The release candidates must now be recreated with their final version numbers. To do this, build the +have been fixed. Additionally, ensure that the version of the ``mslice`` package in ``conda_build_config.yaml`` is correct. +If there have been any updates to MSlice since the last release, it must be released first. The release candidates must +now be recreated with their final version numbers. To do this, build the `release-next_nightly_deployment Jenkins pipeline `__ with the following parameters (most are already defaulted to the correct values): diff --git a/docs/source/release/v6.12.0/Direct_Geometry/MSlice/New_features/38299.rst b/docs/source/release/v6.12.0/Direct_Geometry/MSlice/New_features/38299.rst new file mode 100644 index 000000000000..8d03377f9b57 --- /dev/null +++ b/docs/source/release/v6.12.0/Direct_Geometry/MSlice/New_features/38299.rst @@ -0,0 +1 @@ +- MSlice is now installed via Conda as part of Mantid workbench and not compiled as an external project anymore. diff --git a/installers/conda/linux/create_tarball.sh b/installers/conda/linux/create_tarball.sh index f2916665d61a..eb9e1f24757a 100755 --- a/installers/conda/linux/create_tarball.sh +++ b/installers/conda/linux/create_tarball.sh @@ -134,7 +134,7 @@ bundle_conda_prefix="$bundle_contents" echo "Creating Conda environment in '$bundle_conda_prefix'" "$CONDA_EXE" create --quiet --prefix "$bundle_conda_prefix" --copy \ - --channel "$conda_channel" --channel conda-forge --yes \ + --channel "$conda_channel" --channel conda-forge --channel mantid --yes \ mantidworkbench \ jq # used for processing the version string echo diff --git a/installers/conda/osx/create_bundle.sh b/installers/conda/osx/create_bundle.sh index 790642365403..cc2f24583ec1 100755 --- a/installers/conda/osx/create_bundle.sh +++ b/installers/conda/osx/create_bundle.sh @@ -203,7 +203,7 @@ bundle_conda_prefix="$bundle_contents"/Resources echo "Creating Conda environment in '$bundle_conda_prefix'" "$CONDA_EXE" create --quiet --prefix "$bundle_conda_prefix" --copy --platform osx-64 \ - --channel "$conda_channel" --channel conda-forge --yes \ + --channel "$conda_channel" --channel conda-forge --channel mantid --yes \ mantidworkbench \ jq # used for processing the version string echo diff --git a/installers/conda/win/create_package.sh b/installers/conda/win/create_package.sh index e2d733d2a282..2225f4a93395 100755 --- a/installers/conda/win/create_package.sh +++ b/installers/conda/win/create_package.sh @@ -74,7 +74,7 @@ mkdir $COPY_DIR echo "Creating conda env from mantidworkbench and jq" "$CONDA_EXE" create --prefix $CONDA_ENV_PATH \ - --copy --channel $CONDA_CHANNEL --channel conda-forge -y \ + --copy --channel $CONDA_CHANNEL --channel conda-forge --channel mantid -y \ mantidworkbench \ m2w64-jq echo "Conda env created" diff --git a/qt/python/mantidqtinterfaces/mantidqtinterfaces/MSlice.py b/qt/python/mantidqtinterfaces/mantidqtinterfaces/MSlice.py index 77eb5ac96f72..94b52b115692 100755 --- a/qt/python/mantidqtinterfaces/mantidqtinterfaces/MSlice.py +++ b/qt/python/mantidqtinterfaces/mantidqtinterfaces/MSlice.py @@ -1,15 +1,23 @@ #!/usr/bin/python # Mantid Repository : https://github.com/mantidproject/mantid # -# Copyright © 2018 ISIS Rutherford Appleton Laboratory UKRI, +# Copyright © 2024 ISIS Rutherford Appleton Laboratory UKRI, # NScD Oak Ridge National Laboratory, European Spallation Source, # Institut Laue - Langevin & CSNS, Institute of High Energy Physics, CAS # SPDX - License - Identifier: GPL - 3.0 + import sys -from mslice.app import show_gui from mantidqt.gui_helper import get_qapplication -app, within_mantid = get_qapplication() -show_gui() -if not within_mantid: - sys.exit(app.exec_()) +try: + from mslice.app import show_gui +except ImportError: + from mantid.kernel import logger + + logger.warning("MSlice is not available") + show_gui = None + +if show_gui is not None: + app, within_mantid = get_qapplication() + show_gui() + if not within_mantid: + sys.exit(app.exec_()) diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt index 776e1e522de5..112610d4ff88 100644 --- a/scripts/CMakeLists.txt +++ b/scripts/CMakeLists.txt @@ -1,6 +1,3 @@ -# External GUIs -add_subdirectory(ExternalInterfaces) - # External projects include(PyStoG) @@ -29,8 +26,6 @@ foreach(_dir ${_pth_dirs}) list(APPEND _pth_list_install "${_scripts_rel_path}/${_dir}") endforeach() list(APPEND _pth_list_dev ${CMAKE_CURRENT_BINARY_DIR}) -list(APPEND _pth_list_dev ${MSLICE_DEV}) -list(APPEND _pth_list_install "${_scripts_rel_path}/ExternalInterfaces") # development copy set(_scripts_pth_src "${CMAKE_CURRENT_BINARY_DIR}/mantid-scripts.pth.src") diff --git a/scripts/ExternalInterfaces/CMakeLists.txt b/scripts/ExternalInterfaces/CMakeLists.txt deleted file mode 100644 index eebefb879b98..000000000000 --- a/scripts/ExternalInterfaces/CMakeLists.txt +++ /dev/null @@ -1,45 +0,0 @@ -# Fetch any externally-managed interfaces -include(ExternalProject) - -# mslice -set(_mslice_external_root ${CMAKE_CURRENT_BINARY_DIR}/src/mslice) -externalproject_add( - mslice - PREFIX ${_mslice_external_root} - UPDATE_DISCONNECTED "false" - GIT_REPOSITORY "https://github.com/mantidproject/mslice.git" - GIT_TAG 94705e4fd83f15548d230fee6f2df76b350fc815 - EXCLUDE_FROM_ALL 1 - CONFIGURE_COMMAND "" - BUILD_COMMAND "" - TEST_COMMAND "" - INSTALL_COMMAND "" -) -message(STATUS "Fetching/updating mslice") -execute_process( - COMMAND ${CMAKE_COMMAND} ARGS -P ${_mslice_external_root}/tmp/mslice-gitclone.cmake RESULT_VARIABLE _exit_code -) -if(_exit_code EQUAL 0) - execute_process( - COMMAND ${CMAKE_COMMAND} ARGS -P ${_mslice_external_root}/tmp/mslice-gitupdate.cmake RESULT_VARIABLE _exit_code - ) - if(NOT _exit_code EQUAL 0) - message(FATAL_ERROR "Unable to update mslice.") - endif() -else() - message(FATAL_ERROR "Unable to clone mslice") -endif() -# Let the parent lists file know where dev copy of mslice is -set(MSLICE_DEV - ${_mslice_external_root}/src/mslice/src - PARENT_SCOPE -) - -# Installation MSLICE_DEV is only set in PARENT_SCOPE! so don't use it here -foreach(_bundle ${BUNDLES}) - install( - DIRECTORY ${_mslice_external_root}/src/mslice/src/mslice/ - DESTINATION ${_bundle}scripts/ExternalInterfaces/mslice - COMPONENT Runtime - ) -endforeach()