diff --git a/.circleci/config.yml b/.circleci/config.yml index 3fb73c4eb1..80fef9be96 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -41,7 +41,8 @@ commands: command: | . /opt/conda/etc/profile.d/conda.sh conda activate esmvaltool - mamba --version + # Add existing Julia to PATH + export PATH=/root/.juliaup/bin:$PATH pytest -n 4 --junitxml=test-reports/report.xml esmvaltool version esmvaltool -- --help @@ -96,6 +97,9 @@ commands: conda activate esmvaltool mamba list >> /logs/conda.txt pip install << parameters.flags >> ".[<>]"> /logs/install.txt 2>&1 + curl -fsSL https://install.julialang.org | sh -s -- --yes + export PATH=/root/.juliaup/bin:$PATH + julia --version esmvaltool install Julia > /logs/install_julia.txt 2>&1 if [[ "<>" != *'--editable'* ]] then @@ -137,6 +141,8 @@ jobs: conda activate esmvaltool mkdir /logs pip install .[test] > /logs/install.txt 2>&1 + curl -fsSL https://install.julialang.org | sh -s -- --yes + julia --version esmvaltool install Julia > /logs/install_julia.txt 2>&1 - run: name: Check Python code style and mistakes @@ -209,6 +215,10 @@ jobs: conda activate esmvaltool mamba list >> /logs/conda.txt pip install --editable .[develop] + # Install Julia from source and add to PATH + curl -fsSL https://install.julialang.org | sh -s -- --yes + export PATH=/root/.juliaup/bin:$PATH + julia --version esmvaltool install Julia > /logs/install_julia.txt 2>&1 git clone https://github.com/ESMValGroup/ESMValCore $HOME/ESMValCore pip install --editable $HOME/ESMValCore[develop] @@ -275,6 +285,10 @@ jobs: mamba create -y --name esmvaltool -c conda-forge esmvaltool julia 'python=3.11' >> /logs/conda.txt 2>&1 # Activate the environment set +x; conda activate esmvaltool; set -x + # install Julia from source and add to PATH + curl -fsSL https://install.julialang.org | sh -s -- --yes + export PATH=/root/.juliaup/bin:$PATH + julia --version # install the Julia dependencies esmvaltool install Julia > /logs/install_Julia.txt 2>&1 # Log versions diff --git a/.github/workflows/run-tests-monitor.yml b/.github/workflows/run-tests-monitor.yml index a5cb111dcc..6581ed1c21 100644 --- a/.github/workflows/run-tests-monitor.yml +++ b/.github/workflows/run-tests-monitor.yml @@ -49,6 +49,8 @@ jobs: run: pip install pytest-monitor - name: Install ESMValTool run: pip install -e .[develop] 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/install.txt + - name: Install Julia from source + run: curl -fsSL https://install.julialang.org | sh -s -- --yes - name: Install Julia dependencies run: esmvaltool install Julia - name: Run tests diff --git a/.github/workflows/test-development.yml b/.github/workflows/test-development.yml index 03264b5afa..2283a8abdb 100644 --- a/.github/workflows/test-development.yml +++ b/.github/workflows/test-development.yml @@ -48,6 +48,8 @@ jobs: python -V 2>&1 | tee develop_test_linux_artifacts_python_${{ matrix.python-version }}/python_version.txt - name: Install ESMValTool run: pip install -e .[develop] 2>&1 | tee develop_test_linux_artifacts_python_${{ matrix.python-version }}/install.txt + - name: Install Julia from source + run: curl -fsSL https://install.julialang.org | sh -s -- --yes - name: Install Julia dependencies run: esmvaltool install Julia - name: Install development version of ESMValCore diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 22306b35b4..d2369a3041 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -46,8 +46,10 @@ jobs: run: conda list - name: Install ESMValTool run: pip install -e .[develop] 2>&1 | tee test_linux_artifacts_python_${{ matrix.python-version }}/install.txt - - name: Examine conda environment + - name: Inspect environment run: conda list + - name: Install Julia from source + run: curl -fsSL https://install.julialang.org | sh -s -- --yes - name: Install Julia dependencies run: esmvaltool install Julia - name: Export Python minor version @@ -60,6 +62,10 @@ jobs: exit 1 - name: Inspect environment run: conda list + - name: Check Julia and NCL + run: | + ncl -V + julia --version - name: Check code quality run: pre-commit run -a - name: Run tests diff --git a/doc/sphinx/source/quickstart/installation.rst b/doc/sphinx/source/quickstart/installation.rst index 10f9f81834..41b0be6393 100644 --- a/doc/sphinx/source/quickstart/installation.rst +++ b/doc/sphinx/source/quickstart/installation.rst @@ -217,7 +217,7 @@ environment is activated and then execute .. code-block:: bash - mamba install julia + curl -fsSL https://install.julialang.org | sh -s -- --yes esmvaltool install Julia .. _install_on_macosx: @@ -397,10 +397,11 @@ the source code will immediately be available in the installed version of the tool. If you would like to run Julia diagnostic scripts, you will need to -install the ESMValTool Julia dependencies: +install Julia and the ESMValTool Julia dependencies: .. code-block:: bash + curl -fsSL https://install.julialang.org | sh -s -- --yes esmvaltool install Julia If you are planning to do any coding, install the :ref:`esmvaltool:pre-commit` @@ -664,10 +665,11 @@ ESMValTool and any remaining Python dependencies with the command: pip install esmvaltool If you would like to run Julia diagnostic scripts, you will also need to -install the Julia dependencies: +install Julia and the ESMValTool Julia dependencies: .. code-block:: bash + curl -fsSL https://install.julialang.org | sh -s -- --yes esmvaltool install Julia .. _installation_from_the_conda_lock_file: diff --git a/environment.yml b/environment.yml index 9e54c20215..972bfd1cab 100644 --- a/environment.yml +++ b/environment.yml @@ -17,7 +17,6 @@ dependencies: - cfgrib - cftime - cmocean - - curl <8.10 # https://github.com/ESMValGroup/ESMValTool/issues/3758 - cython - dask !=2024.8.0 # https://github.com/dask/dask/issues/11296 - distributed @@ -29,7 +28,6 @@ dependencies: - fire - fsspec - gdal >=3.9.0 - - importlib_metadata <8 # https://github.com/ESMValGroup/ESMValTool/issues/3699 only for Python 3.11 and esmpy<8.6 - ipython <9.0 # github.com/ESMValGroup/ESMValCore/issues/2680 ; remove ipython when solved - iris >=3.11 - iris-esmf-regrid >=0.10.0 # github.com/SciTools-incubator/iris-esmf-regrid/pull/342 @@ -133,6 +131,3 @@ dependencies: - r-git2r # dependency of lintr - r-lintr ==3.1.2 - r-styler ==1.10.3 - - # Julia (dependencies installed by separate script) - - julia diff --git a/tests/integration/test_diagnostic_run.py b/tests/integration/test_diagnostic_run.py index 7b70270444..73dd10c50c 100644 --- a/tests/integration/test_diagnostic_run.py +++ b/tests/integration/test_diagnostic_run.py @@ -72,9 +72,8 @@ def check(result_file): ), pytest.param( "diagnostic.jl", - marks=pytest.mark.skipif( - sys.platform == "darwin", - reason="ESMValTool Julia not supported on OSX", + marks=pytest.mark.skip( + reason="Julia is not installed by default.", ), ), ]