Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removing support for Python 3.8 #294

Merged
merged 4 commits into from
Mar 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/deploy_conda_package.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: 3.8
python-version: 3.9

- name: Build FUNtoFEM package
run: |
Expand Down
10 changes: 4 additions & 6 deletions .github/workflows/reform_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,19 +67,17 @@ jobs:
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: 3.8
python-version: 3.9

- name: Install TACS
run: |
git clone https://github.com/smdogroup/tacs.git /home/runner/work/tacs;
export TACS_DIR=/home/runner/work/tacs;
conda install zlib=1.2.11;
conda install -c anaconda openmpi -q -y;
conda install gxx_linux-64=9.3.0 -q -y;
conda install -c conda-forge sysroot_linux-64=2.17 -q -y;
conda install -c conda-forge openmpi openmpi-mpicxx -q -y;
conda install -c anaconda openblas -q -y;
conda install -c conda-forge lapack -q -y;
conda install -c conda-forge metis -q -y;
pip install cython;
conda install -c conda-forge metis=5.1.0 -q -y;
cd $TACS_DIR;
cp Makefile.in.info Makefile.in;
make ${{ matrix.OPTIONAL }} TACS_DIR=$TACS_DIR METIS_INCLUDE=-I${CONDA_PREFIX}/include/ METIS_LIB="-L${CONDA_PREFIX}/lib/ -lmetis";
Expand Down
12 changes: 5 additions & 7 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,20 +70,18 @@ jobs:
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: 3.8
python-version: 3.9

- name: Install TACS
run: |
git clone https://github.com/smdogroup/tacs.git /home/runner/work/tacs;
export TACS_DIR=/home/runner/work/tacs;
conda install zlib=1.2.11;
conda install -c anaconda openmpi -q -y;
conda install gxx_linux-64=9.3.0 -q -y;
conda install -c conda-forge sysroot_linux-64=2.17 -q -y;
conda install -c conda-forge openmpi openmpi-mpicxx -q -y;
conda install -c anaconda openblas -q -y;
conda install -c conda-forge lapack -q -y;
conda install -c conda-forge metis -q -y;
conda install -c conda-forge petsc=3.12 petsc4py -q -y;
pip install cython;
conda install -c conda-forge metis=5.1.0 -q -y;
conda install -c conda-forge petsc=3.19 petsc4py -q -y;
cd $TACS_DIR;
cp Makefile.in.info Makefile.in;
make ${{ matrix.OPTIONAL }} TACS_DIR=$TACS_DIR METIS_INCLUDE=-I${CONDA_PREFIX}/include/ METIS_LIB="-L${CONDA_PREFIX}/lib/ -lmetis";
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ For those intending to be users of funtofem and not developers, the easiest way
Conda packages of funtofem are available for the Linux and Mac OS from our smdogroup channel. The user should first open a terminal and create
a conda environment, such as `F2F`, and then install funtofem as follows with conda install.
```
conda create -n F2F python=3.8
conda create -n F2F python=3.9
conda activate F2F
conda install -c conda-forge -c smdogroup funtofem
```
Expand Down
2 changes: 1 addition & 1 deletion conda/conda_build_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ scalar:
- complex

python:
- 3.8
- 3.9
- 3.10
- 3.11
- 3.12
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last time I tested python 3.12 with the conda build of funtofem it didn't work.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also ran into issues building against 3.12 when it first came out. It tends to take a while for all of our dependencies to upgrade their conda packages for new Python versions.

That said, a 3.12 build for funtofem will definitely fail at the moment since TACS doesn't have any Python 3.12 conda packages (and tacs is listed as a dependency for funtofem in the conda recipe). I tested out building a conda package for tacs on 3.12 this morning and seemed to have success. So 3.12 support should be available on the tacs side with the new tacs version bump this week.


target_platform:
- osx-64 # [osx]
Expand Down
23 changes: 14 additions & 9 deletions conda/meta.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ source:

build:
number: {{ build }}
skip: true # [py<=37]
skip: true # [py<=38]
string: py{{ CONDA_PY }}_{{ scalar }}_h{{ PKG_HASH }}_{{ build }}
track_features:
- funtofem_complex # [scalar == "complex"]
Expand All @@ -38,32 +38,37 @@ requirements:
- make
- python {{ python }} # [build_platform != target_platform]
- cross-python_{{ target_platform }} # [build_platform != target_platform]
- numpy 1.23 # [build_platform != target_platform]
- {{ mpi }} # [build_platform != target_platform]
- mpi4py # [build_platform != target_platform]
- numpy >=1.25 # [build_platform != target_platform]
- openmpi >=4.1.4 # [mpi == "openmpi" and build_platform != target_platform]
- mpich # [mpi == "mpich" and build_platform != target_platform]
- openmpi-mpicxx # [mpi == "openmpi" and build_platform != target_platform]
- mpich-mpicxx # [mpi == "mpich" and build_platform != target_platform]
- mpi4py >=3.1.1 # [build_platform != target_platform]
- cython >=0.29,<3.0 # [build_platform != target_platform]
- setuptools # [build_platform != target_platform]
- tacs >=3.4.0 # [build_platform != target_platform]

host:
- python {{ python }}
- pip
- numpy 1.23
- {{ mpi }}
- numpy >=1.25
- openmpi >=4.1.4 # [mpi == "openmpi"]
- mpich # [mpi == "mpich"]
- libopenblas
- lapack
- mpi4py
- mpi4py >=3.1.1
- cython >=0.29,<3.0
- tacs >=3.4.0

run:
- python
- {{ pin_compatible("numpy") }}
- scipy
- {{ mpi }}
- openmpi >=4.1.4 # [mpi == "openmpi"]
- mpich # [mpi == "mpich"]
- libopenblas
- lapack
- mpi4py
- mpi4py >=3.1.1
- tacs >=3.4.0

test:
Expand Down
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#pyproject.toml
[build-system]
# Minimum requirements for the build system to execute.
requires = ['setuptools>=45.0', 'wheel', 'cython>=0.29,<3.0', 'oldest-supported-numpy',
requires = ['setuptools>=45.0', 'wheel', 'cython>=0.29,<3.0', 'numpy>=1.25,<2.0.0',
# Build against an old version (3.1.1) of mpi4py for forward compatibility
"mpi4py==3.1.1; python_version<'3.11'",
# Python 3.11 requires 3.1.4+
Expand Down
3 changes: 2 additions & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,8 +96,9 @@ def get_mpi_flags():
description="Aerothermoelastic coupling framework and transfer schemes",
author="Graeme J. Kennedy",
author_email="graeme.kennedy@ae.gatech.edu",
python_requires=">=3.9.0",
extras_require=optional_dependencies,
install_requires=["numpy", "mpi4py>=3.1.1"],
install_requires=["numpy<2.0.0", "mpi4py>=3.1.1"],
packages=find_packages(include=["funtofem*"]),
ext_modules=cythonize(exts, include_path=inc_dirs),
)
Loading