44[project ]
55name = " optimagic"
66description = " Tools to solve difficult numerical optimization problems."
7- requires-python = " >=3.10 "
7+ requires-python = " >=3.12 "
88dependencies = [
99 " cloudpickle" ,
1010 " joblib" ,
@@ -40,10 +40,9 @@ classifiers = [
4040 " Operating System :: MacOS :: MacOS X" ,
4141 " Operating System :: Microsoft :: Windows" ,
4242 " Operating System :: POSIX" ,
43- " Programming Language :: Python :: 3.10" ,
44- " Programming Language :: Python :: 3.11" ,
4543 " Programming Language :: Python :: 3.12" ,
4644 " Programming Language :: Python :: 3.13" ,
45+ " Programming Language :: Python :: 3.14" ,
4746 " Topic :: Scientific/Engineering" ,
4847]
4948authors = [
@@ -96,7 +95,7 @@ allow-direct-references = true
9695# Ruff configuration
9796# ======================================================================================
9897[tool .ruff ]
99- target-version = " py310 "
98+ target-version = " py312 "
10099fix = true
101100
102101[tool .ruff .lint ]
@@ -403,7 +402,7 @@ platforms = ["linux-64", "osx-arm64", "win-64"]
403402
404403# --- Base dependencies (all environments) -------------------------------------------
405404[tool .pixi .dependencies ]
406- python = " >=3.10 ,<3.14 "
405+ python = " >=3.12 ,<3.15 "
407406# Prefer conda-forge builds for compiled scientific packages
408407numpy = " *"
409408scipy = " >=1.2.1"
@@ -436,14 +435,12 @@ gradient-free-optimizers = ">=1.6.0"
436435pyswarms = " *"
437436
438437# --- Python version features --------------------------------------------------------
439- [tool .pixi .feature .py310 .dependencies ]
440- python = " ~=3.10.0"
441- [tool .pixi .feature .py311 .dependencies ]
442- python = " ~=3.11.0"
443438[tool .pixi .feature .py312 .dependencies ]
444439python = " ~=3.12.0"
445440[tool .pixi .feature .py313 .dependencies ]
446441python = " ~=3.13.0"
442+ [tool .pixi .feature .py314 .dependencies ]
443+ python = " ~=3.14.0"
447444
448445# --- Feature: test (test infrastructure) ---------------------------------------------
449446[tool .pixi .feature .test .dependencies ]
@@ -475,7 +472,7 @@ mypy = "mypy"
475472platforms = [" linux-64" ]
476473[tool .pixi .feature .linux .dependencies ]
477474jax = " >=0.4.1"
478- petsc4py = " <=3.23.4 "
475+ petsc4py = " * "
479476
480477# --- Feature: docs -------------------------------------------------------------------
481478[tool .pixi .feature .docs .dependencies ]
@@ -500,10 +497,6 @@ intersphinx-registry = "*"
500497build-docs = { cmd = " make html" , cwd = " docs" }
501498
502499# --- Compat features (version overrides for backward-compat CI) ---------------------
503- [tool .pixi .feature .old-pandas .dependencies ]
504- numpy = " <2"
505- pandas = " <2"
506-
507500[tool .pixi .feature .old-numpy .dependencies ]
508501numpy = " <2"
509502pandas = " >=2"
@@ -520,28 +513,24 @@ nevergrad = "*"
520513
521514# --- Environments --------------------------------------------------------------------
522515[tool .pixi .environments ]
523- # Default dev environment (Python 3.12 , everything)
524- default = { features = [" test" , " py312 " ], solve-group = " py312 " }
516+ # Default dev environment (Python 3.14 , everything)
517+ default = { features = [" test" , " py314 " ], solve-group = " py314 " }
525518# Linux CI (with JAX + PETSc)
526- test-linux-py310 = { features = [" test" , " linux" , " py310" ], solve-group = " linux-py310" }
527- test-linux-py311 = { features = [" test" , " linux" , " py311" ], solve-group = " linux-py311" }
528519test-linux-py312 = { features = [" test" , " linux" , " py312" ], solve-group = " linux-py312" }
529520test-linux-py313 = { features = [" test" , " linux" , " py313" ], solve-group = " linux-py313" }
521+ test-linux-py314 = { features = [" test" , " linux" , " py314" ], solve-group = " linux-py314" }
530522# macOS/Windows CI
531- test-py310 = { features = [" test" , " py310" ], solve-group = " py310" }
532- test-py311 = { features = [" test" , " py311" ], solve-group = " py311" }
533523test-py312 = { features = [" test" , " py312" ], solve-group = " py312" }
534524test-py313 = { features = [" test" , " py313" ], solve-group = " py313" }
535- # Backward-compat CI (Python 3.10 only)
536- test-old-pandas = { features = [ " test " , " old-pandas " , " py310 " ] }
537- test-old-numpy = { features = [" test" , " old-numpy" , " py310 " ] }
538- test-old-plotly = { features = [" test" , " old-plotly" , " py310 " ] }
525+ test-py314 = { features = [ " test " , " py314 " ], solve-group = " py314 " }
526+ # Backward-compat CI (Python 3.12, lowest supported)
527+ test-old-numpy = { features = [" test" , " old-numpy" , " py312 " ] }
528+ test-old-plotly = { features = [" test" , " old-plotly" , " py312 " ] }
539529# Nevergrad CI (bayesian-optimization==1.4.0)
540- test-nevergrad-py310 = { features = [" test" , " nevergrad" , " py310" ] }
541- test-nevergrad-py311 = { features = [" test" , " nevergrad" , " py311" ] }
542530test-nevergrad-py312 = { features = [" test" , " nevergrad" , " py312" ] }
543531test-nevergrad-py313 = { features = [" test" , " nevergrad" , " py313" ] }
532+ test-nevergrad-py314 = { features = [" test" , " nevergrad" , " py314" ] }
544533# Type checking
545- typecheck = { features = [" typecheck" , " py310 " ], solve-group = " py310 " }
534+ typecheck = { features = [" typecheck" , " py314 " ], solve-group = " py314 " }
546535# Docs
547- docs = { features = [" docs" , " py312 " ], solve-group = " py312 " }
536+ docs = { features = [" docs" , " py314 " ], solve-group = " py314 " }
0 commit comments