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

JDBetteridge/python3.13 #3791

Merged
merged 16 commits into from
Oct 9, 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
4 changes: 2 additions & 2 deletions docs/source/download.rst
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ packages can be installed into an existing Firedrake installation using
System requirements
-------------------

Firedrake requires Python 3.9 to 3.12. The installation script is
Firedrake requires Python 3.9 to 3.13. The installation script is
tested by CI on Ubuntu 24.04 LTS. On Ubuntu 22.04 or later, the system
installed Python 3 is supported. On MacOS, the homebrew_ installed
Python 3 is supported::
Expand All @@ -126,7 +126,7 @@ they have the system dependencies:
* A Fortran compiler (for PETSc)
* Blas and Lapack
* Git, Mercurial
* Python version 3.9-3.12
* Python version 3.9-3.13
* The Python headers
* autoconf, automake, libtool
* CMake
Expand Down
2 changes: 1 addition & 1 deletion docs/source/install-debug.dot
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ digraph triage {

activate_venv [label="Activate the\nvenv first."];
uninstall_anaconda [label="Deactivate\nAnaconda."];
update_python [label="Get Python 3.9-3.12"];
update_python [label="Get Python 3.9-3.13"];
update_install_script [label="Fetch new\ninstall script"];
get_homebrew [label="Use Homebrew."];
brew_doctor [label="brew doctor"];
Expand Down
1 change: 0 additions & 1 deletion requirements-ext.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
cached_property
cachetools
ipython
nbval
packaging
pkgconfig
Expand Down
21 changes: 15 additions & 6 deletions scripts/firedrake-install
Original file line number Diff line number Diff line change
Expand Up @@ -132,10 +132,10 @@ log = logging.getLogger()

log.info("Running %s" % " ".join(sys.argv))

if sys.version_info >= (3, 13):
print("""\nCan not install Firedrake with Python 3.13 at the moment:
Some wheels are not yet available for Python 3.13 for some required package(s).
Please install with Python 3.12 (or an earlier version >= 3.9).""")
if sys.version_info >= (3, 14):
JDBetteridge marked this conversation as resolved.
Show resolved Hide resolved
print("""\nCan not install Firedrake with Python 3.14 at the moment:
Some wheels are not yet available for Python 3.14 for some required package(s).
Please install with Python 3.13 (or an earlier version >= 3.9).""")
sys.exit(1)
elif sys.version_info < (3, 9):
if mode == "install":
Expand Down Expand Up @@ -306,6 +306,7 @@ honoured.""",
parser.add_argument("--mpiexec", type=str,
action="store", default=None,
help="MPI launcher. If not set, MPICH will be downloaded and used.")
parser.add_argument("--mpi4py-version", help="Specify an exact version of mpi4py to install")
parser.add_argument("--show-petsc-configure-options", action="store_true",
help="Print out the configure options passed to PETSc and exit")
parser.add_argument("--show-dependencies", action="store_true",
Expand Down Expand Up @@ -442,6 +443,7 @@ else:
help="Specify path to system BLAS directory. Use '--with-blas=download' to download openblas")
parser.add_argument("--netgen", action="store_true", dest="netgen", default=config["options"].get("netgen", False),
help="Install Netgen.")
parser.add_argument("--mpi4py-version", help="Specify an exact version of mpi4py to install")

args = parser.parse_args()

Expand Down Expand Up @@ -1703,6 +1705,7 @@ if mode == "install":

# Ensure pip, setuptools, hatchling and wheel are at the latest version.
run_pip(["install", "-U", "setuptools"])
run_pip(["install", "cffi"])
run_pip(["install", "-U", "hatch"])
run_pip(["install", "-U", "editables"])
run_pip(["install", "-U", "pip"])
Expand Down Expand Up @@ -1856,7 +1859,10 @@ if mode == "install":

# Install mpi4py
with environment(**compiler_env, **link_env):
run_pip_install(["--no-cache-dir", "mpi4py==3.1.6"])
if args.mpi4py_version:
run_pip_install(["--no-cache-dir", "mpi4py==" + args.mpi4py_version])
else:
run_pip_install(["--no-cache-dir", "mpi4py"])

for p in packages:
pip_requirements(p, compiler_env)
Expand Down Expand Up @@ -2001,7 +2007,10 @@ else:

# Install mpi4py
with environment(**compiler_env, **link_env):
run_pip_install(["--no-cache-dir", "mpi4py==3.1.6"])
if args.mpi4py_version:
run_pip_install(["--no-cache-dir", "mpi4py==" + args.mpi4py_version])
else:
run_pip_install(["--no-cache-dir", "mpi4py"])

# update dependencies.
for p in packages:
Expand Down
1 change: 1 addition & 0 deletions tests/output/test_pvd_output.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from firedrake import *

try:
import vtkmodules.vtkCommonDataModel # noqa: F401
from firedrake.output import VTKFile
except ImportError:
# VTK is not installed
Expand Down
Loading