diff --git a/.github/workflows/cpu-tests.yml b/.github/workflows/cpu-tests.yml index f0c11f6e2..5795e182d 100644 --- a/.github/workflows/cpu-tests.yml +++ b/.github/workflows/cpu-tests.yml @@ -170,12 +170,19 @@ jobs: # install mala package pip --no-cache-dir install -e .[opt,test] --no-build-isolation + - name: Check if Conda environment meets the specified requirements shell: 'bash -c "docker exec -i mala-cpu bash < {0}"' run: | # export Conda environment _with_ mala package installed in it (and extra dependencies) conda env export -n mala-cpu > env_after.yml + # This command is necessary because conda includes even editable + # packages in an export, at least in the versions we recently used. + # That of course leads to the diff failing, since MALA can never + # be there before it has been installed. + sed -i '/materials-learning-algorithms/d' ./env_after.yml + # if comparison fails, `install/mala_cpu_[base]_environment.yml` needs to be aligned with # `requirements.txt` and/or extra dependencies are missing in the Docker Conda environment @@ -183,7 +190,7 @@ jobs: then echo "Files env_before.yml and env_after.yml do not differ." else - diff --side-by-side --color-always env_before.yml env_after.yml + diff --side-by-side env_before.yml env_after.yml fi - name: Download test data repository from RODARE diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 945017c6e..651359eda 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -26,7 +26,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.12' + python-version: '3.10.4' - name: Upgrade pip run: python3 -m pip install --upgrade pip @@ -50,7 +50,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 with: - python-version: '3.12' + python-version: '3.10.4' - name: Upgrade pip run: python3 -m pip install --upgrade pip diff --git a/docs/source/install/installing_mala.rst b/docs/source/install/installing_mala.rst index d9d740a95..fd58087b7 100644 --- a/docs/source/install/installing_mala.rst +++ b/docs/source/install/installing_mala.rst @@ -4,8 +4,8 @@ Installing MALA Prerequisites ************** -MALA does not depend on a specific Python version. The most recent Python -version it has been tested with successfully is Python ``3.10.4``. +MALA supports any Python version starting from ``3.10.4``. No upper limit on +Python versions are enforced. The most recent *tested* version is ``3.10.12``. MALA requires ``torch`` in order to function. As the installation of torch depends highly on the architecture you are using, ``torch`` will not diff --git a/install/mala_cpu_base_environment.yml b/install/mala_cpu_base_environment.yml index f8309f5b9..ee106d7b3 100644 --- a/install/mala_cpu_base_environment.yml +++ b/install/mala_cpu_base_environment.yml @@ -3,7 +3,7 @@ channels: - conda-forge - defaults dependencies: - - python>=3.6, <3.9 + - python=3.10.4 - pip - numpy - scipy diff --git a/install/mala_cpu_environment.yml b/install/mala_cpu_environment.yml index eaf4b88bc..94d8d3a15 100644 --- a/install/mala_cpu_environment.yml +++ b/install/mala_cpu_environment.yml @@ -5,154 +5,137 @@ channels: dependencies: - _libgcc_mutex=0.1 - _openmp_mutex=4.5 - - absl-py=1.3.0 - - aiohttp=3.8.3 - - aiosignal=1.3.1 - - alembic=1.9.1 - - ase=3.22.1 - - async-timeout=4.0.2 - - attrs=22.2.0 - - autopage=0.5.1 - - backports=1.0 - - backports.functools_lru_cache=1.6.4 - - blinker=1.5 - - brotli=1.0.9 - - brotli-bin=1.0.9 - - brotlipy=0.7.0 + - absl-py=2.1.0 + - alembic=1.14.0 + - ase=3.23.0 + - blinker=1.9.0 + - brotli-bin=1.1.0 + - brotli-python=1.0.9 - bzip2=1.0.8 - - c-ares=1.18.1 - - ca-certificates=2022.12.7 - - cachetools=5.2.0 - - certifi=2022.12.7 - - cffi=1.15.1 - - charset-normalizer=2.1.1 - - click=8.1.3 - - cliff=3.10.1 - - cmaes=0.9.0 - - cmd2=2.4.2 + - c-ares=1.34.3 + - ca-certificates=2024.9.24 + - click=8.1.7 - colorama=0.4.6 - - colorlog=6.7.0 - - contourpy=1.0.6 - - cryptography=38.0.4 - - cycler=0.11.0 - - flask=2.2.2 - - fonttools=4.38.0 + - colorlog=6.9.0 + - cycler=0.12.1 + - filelock=3.16.1 + - flask=3.1.0 - freetype=2.12.1 - - frozenlist=1.3.3 - - google-auth=2.15.0 - - google-auth-oauthlib=0.4.6 - - greenlet=2.0.1 - - grpcio=1.51.1 - - icu=70.1 - - idna=3.4 - - importlib-metadata=4.11.4 - - importlib_resources=5.10.1 - - itsdangerous=2.1.2 - - jinja2=3.1.2 - - jpeg=9e - - kiwisolver=1.4.4 - - lcms2=2.14 - - ld_impl_linux-64=2.39 + - fsspec=2024.10.0 + - gmp=6.3.0 + - importlib-metadata=8.5.0 + - importlib_resources=6.4.5 + - itsdangerous=2.2.0 + - jinja2=3.1.4 + - lcms2=2.16 + - ld_impl_linux-64=2.43 - lerc=4.0.0 - - libabseil=20220623.0 + - libabseil=20240722.0 - libblas=3.9.0 - - libbrotlicommon=1.0.9 - - libbrotlidec=1.0.9 - - libbrotlienc=1.0.9 + - libbrotlicommon=1.1.0 + - libbrotlidec=1.1.0 + - libbrotlienc=1.1.0 - libcblas=3.9.0 - - libdeflate=1.14 + - libdeflate=1.22 - libffi=3.4.2 - - libgcc-ng=12.2.0 - - libgfortran-ng=12.3.0 - - libgfortran5=12.3.0 - - libgrpc=1.51.1 - - libhwloc=2.8.0 + - libgcc=14.2.0 + - libgcc-ng=14.2.0 + - libgfortran=14.2.0 + - libgfortran5=14.2.0 + - libgrpc=1.67.1 + - libhwloc=2.11.1 - libiconv=1.17 + - libjpeg-turbo=3.0.0 - liblapack=3.9.0 - - libnsl=2.0.0 - - libopenblas=0.3.21 - - libpng=1.6.39 - - libprotobuf=3.21.12 - - libsqlite=3.40.0 - - libstdcxx-ng=12.2.0 - - libtiff=4.5.0 - - libuuid=2.32.1 - - libwebp-base=1.2.4 - - libxcb=1.13 - - libxml2=2.10.3 - - libzlib=1.2.13 - - llvm-openmp=15.0.6 - - mako=1.2.4 - - markdown=3.4.1 - - markupsafe=2.1.1 - - matplotlib-base=3.6.2 - - mkl=2022.2.1 - - mpmath=1.2.1 - - multidict=6.0.2 + - libnsl=2.0.1 + - libopenblas=0.3.28 + - libpng=1.6.44 + - libprotobuf=5.28.2 + - libre2-11=2024.07.02 + - libsqlite=3.47.0 + - libstdcxx=14.2.0 + - libstdcxx-ng=14.2.0 + - libtiff=4.7.0 + - libtorch=2.5.1 + - libuuid=2.38.1 + - libuv=1.49.2 + - libwebp-base=1.4.0 + - libxcb=1.17.0 + - libxml2=2.13.5 + - libzlib=1.3.1 + - llvm-openmp=19.1.4 + - mako=1.3.6 + - markdown=3.6 + - matplotlib-base=3.9.2 + - mkl=2024.2.2 + - mpc=1.3.1 + - mpfr=4.2.1 + - mpmath=1.3.0 - munkres=1.1.4 - - ncurses=6.3 - - ninja=1.11.0 - - numpy=1.24.0 - - oauthlib=3.2.2 - - openjpeg=2.5.0 - - openssl=3.3.1 - - optuna=3.0.5 - - packaging=22.0 - - pandas=1.5.2 - - pbr=5.11.0 - - pillow=9.2.0 - - pip=22.3.1 - - prettytable=3.5.0 - - protobuf=4.21.12 + - ncurses=6.5 + - networkx=3.4.2 + - openjpeg=2.5.2 + - openssl=3.4.0 + - optuna=4.1.0 + - packaging=24.2 + - pip=24.3.1 - pthread-stubs=0.4 - - pyasn1=0.4.8 - - pyasn1-modules=0.2.7 - - pycparser=2.21 - - pyjwt=2.6.0 - - pyopenssl=22.1.0 - - pyparsing=3.0.9 - - pyperclip=1.8.2 - - pysocks=1.7.1 - - python=3.8.16 - - python-dateutil=2.8.2 - - python_abi=3.8 - - pytorch=1.13.0 - - pytorch-cpu=1.13.0 - - pytz=2022.7 - - pyu2f=0.1.5 - - pyyaml=6.0 - - re2=2022.06.01 - - readline=8.1.2 - - requests=2.28.1 - - requests-oauthlib=1.3.1 - - rsa=4.9 - - scipy=1.8.1 - - scikit-spatial=6.8.1 - - setuptools=59.8.0 + - pyparsing=3.2.0 + - python=3.10.4 + - python-dateutil=2.9.0.post0 + - python-tzdata=2024.2 + - python_abi=3.10 + - pytorch=2.5.1 + - pytorch-cpu=2.5.1 + - pytz=2024.1 + - qhull=2020.2 + - re2=2024.07.02 + - readline=8.2 + - scikit-spatial=8.0.0 + - setuptools=75.6.0 - six=1.16.0 - - sleef=3.5.1 - - sqlalchemy=1.4.45 - - stevedore=4.1.1 - - tbb=2021.7.0 - - tensorboard=2.11.0 - - tensorboard-data-server=0.6.1 - - tensorboard-plugin-wit=1.8.1 - - tk=8.6.12 - - tqdm=4.64.1 - - typing-extensions=4.4.0 - - typing_extensions=4.4.0 - - unicodedata2=15.0.0 - - urllib3=1.26.13 - - wcwidth=0.2.5 - - werkzeug=2.2.2 - - wheel=0.38.4 - - xorg-libxau=1.0.9 - - xorg-libxdmcp=1.1.3 + - sleef=3.7 + - sqlite=3.47.0 + - sympy=1.13.3 + - tbb=2021.13.0 + - tensorboard=2.18.0 + - tk=8.6.13 + - tqdm=4.67.1 + - typing-extensions=4.12.2 + - typing_extensions=4.12.2 + - tzdata=2024b + - werkzeug=3.1.3 + - wheel=0.45.1 + - xorg-libxau=1.0.11 + - xorg-libxdmcp=1.1.5 - xz=5.2.6 - yaml=0.2.5 - - yarl=1.8.1 - - zipp=3.11.0 - - zlib=1.2.13 - - zstd=1.5.5 + - zipp=3.21.0 + - zstd=1.5.6 - pip: - - openpmd-api==0.15.2 + - brotli==1.0.9 + - certifi==2024.8.30 + - charset-normalizer==3.4.0 + - contourpy==1.3.1 + - fonttools==4.55.0 + - gmpy2==2.1.5 + - greenlet==3.1.1 + - grpcio==1.67.1 + - idna==3.10 + - kiwisolver==1.4.7 + - markupsafe==3.0.2 + - matplotlib==3.9.2 + - numpy==1.26.4 + - oauthlib==3.2.2 + - openpmd-api==0.15.2 + - pandas==2.2.3 + - pillow==11.0.0 + - protobuf==3.19.6 + - pysocks==1.7.1 + - pyyaml==6.0.2 + - requests==2.32.3 + - scipy==1.14.1 + - sqlalchemy==2.0.36 + - tensorboard-data-server==0.7.0 + - torch==2.5.1.post103 + - unicodedata2==15.1.0 diff --git a/setup.py b/setup.py index 7ce1509ff..e75b47906 100644 --- a/setup.py +++ b/setup.py @@ -41,4 +41,5 @@ zip_safe=False, install_requires=open("requirements.txt").read().splitlines(), extras_require=extras, + python_requires=">=3.10.4", )