diff --git a/.github/workflows/build_workflow.yml b/.github/workflows/build_workflow.yml index fb6af7f8a..91942e69c 100644 --- a/.github/workflows/build_workflow.yml +++ b/.github/workflows/build_workflow.yml @@ -16,6 +16,11 @@ on: env: CANCEL_OTHERS: false PATHS_IGNORE: '["**/README.md", "**/docs/**"]' + # mpich >=5 is built as ch4:ucx,ofi, so UCX is the default netmod. Azure-hosted + # GitHub runners expose a MANA RDMA device that UCX tries (and fails) to open, + # so MPI_Init() aborts inside ESMF_RegridWeightGen. Restrict UCX to transports + # that actually work on the runners. + UCX_TLS: "tcp,self,sm" jobs: build: @@ -25,9 +30,6 @@ jobs: strategy: matrix: include: - - python-version: "3.10" - pixi-environment: py310 - variant-file: ci/python3.10.yaml - python-version: "3.11" pixi-environment: py311 variant-file: ci/python3.11.yaml @@ -83,9 +85,6 @@ jobs: strategy: matrix: include: - - python-version: "3.10" - pixi-environment: py310 - variant-file: ci/python3.10.yaml - python-version: "3.11" pixi-environment: py311 variant-file: ci/python3.11.yaml diff --git a/ci/python3.10.yaml b/ci/python3.10.yaml deleted file mode 100644 index ba317ae3c..000000000 --- a/ci/python3.10.yaml +++ /dev/null @@ -1,8 +0,0 @@ -channel_sources: -- conda-forge -pin_run_as_build: - python: - min_pin: x.x - max_pin: x.x -python: -- 3.10.* *_cpython diff --git a/ci/recipe/recipe.yaml b/ci/recipe/recipe.yaml index 8997328a2..380593b76 100644 --- a/ci/recipe/recipe.yaml +++ b/ci/recipe/recipe.yaml @@ -3,7 +3,7 @@ schema_version: 1 context: name: MPAS-Analysis version: "1.15.0" - python_min: "3.10" + python_min: "3.11" package: name: ${{ name|lower }} @@ -39,7 +39,7 @@ requirements: - lxml - mache >=1.11.0 - matplotlib-base >=3.9.0 - - mpas_tools >=1.3.0,<2.0.0 + - mpas_tools >=2.0.0,<3.0.0 - nco >=4.8.1,!=5.2.6,!=5.3.7 - netcdf4 - numpy >=2.0,<3.0 diff --git a/dev-spec.txt b/dev-spec.txt index b6fda53a5..4328f2d9d 100644 --- a/dev-spec.txt +++ b/dev-spec.txt @@ -2,7 +2,7 @@ # $ conda create --name --file # Base -python >=3.10 +python >=3.11 cartopy >=0.18.0 cartopy_offlinedata cmocean @@ -15,7 +15,7 @@ gsw lxml mache >=1.11.0 matplotlib-base >=3.9.0 -mpas_tools >=1.3.0,<2.0.0 +mpas_tools >=2.0.0,<3.0.0 nco >=4.8.1,!=5.2.6,!=5.3.7 netcdf4 numpy >=2.0,<3.0 @@ -38,8 +38,7 @@ setuptools >=60 # Documentation mock -m2r2 >=0.3.3 -mistune <2 sphinx +sphinx-mdinclude >=0.6.2 sphinx_rtd_theme tabulate diff --git a/docs/conf.py b/docs/conf.py index 607ca70ed..7047035b3 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -13,7 +13,7 @@ # serve to show the default. import os -import m2r2 +from sphinx_mdinclude import convert from glob import glob import mpas_analysis.version on_rtd = os.environ.get('READTHEDOCS', None) == 'True' @@ -209,7 +209,8 @@ for mdFileName in glob('design_docs/*.md'): if os.path.basename(mdFileName) == 'template.md': continue - output = m2r2.parse_from_file(mdFileName) + with open(mdFileName, 'r') as inFile: + output = convert(inFile.read()) rstFileName = os.path.splitext(mdFileName)[0]+'.rst' with open(rstFileName, 'w') as outFile: outFile.write(output) diff --git a/mpas_analysis/docs/parse_quick_start.py b/mpas_analysis/docs/parse_quick_start.py index f0691dda9..ae26b7283 100644 --- a/mpas_analysis/docs/parse_quick_start.py +++ b/mpas_analysis/docs/parse_quick_start.py @@ -4,7 +4,7 @@ in the documentation """ -from m2r2 import convert +from sphinx_mdinclude import convert def build_quick_start(): diff --git a/pixi.toml b/pixi.toml index 738e6fd0d..1343103b0 100644 --- a/pixi.toml +++ b/pixi.toml @@ -4,7 +4,7 @@ name = "mpas-analysis" platforms = ["linux-64"] [dependencies] -python = ">=3.10" +python = ">=3.11" cartopy = ">=0.18.0" cartopy_offlinedata = "*" cmocean = "*" @@ -16,7 +16,7 @@ gsw = "*" lxml = "*" mache = ">=1.11.0" matplotlib-base = ">=3.9.0" -mpas_tools = ">=1.3.0,<2.0.0" +mpas_tools = ">=2.0.0,<3.0.0" nco = ">=4.8.1,!=5.2.6,!=5.3.7" netcdf4 = "*" numpy = ">=2.0,<3.0" @@ -41,19 +41,15 @@ pytest = "*" setuptools = ">=60" [feature.docs.dependencies] -m2r2 = ">=0.3.3" -mistune = "<2" mock = "*" sphinx = "*" +sphinx-mdinclude = ">=0.6.2" sphinx_rtd_theme = "*" tabulate = "*" [feature.build.dependencies] rattler-build = "*" -[feature.py310.dependencies] -python = "3.10.*" - [feature.py311.dependencies] python = "3.11.*" @@ -68,7 +64,6 @@ python = "3.14.*" [environments] default = ["dev", "docs", "build"] -py310 = ["py310", "dev", "docs", "build"] py311 = ["py311", "dev", "docs", "build"] py312 = ["py312", "dev", "docs", "build"] py313 = ["py313", "dev", "docs", "build"] diff --git a/pyproject.toml b/pyproject.toml index ffab97d4f..fd4881ef5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -27,10 +27,9 @@ description = """\ """ license = { file = "LICENSE" } readme = "README.md" -requires-python = ">=3.10" +requires-python = ">=3.11" classifiers = [ # these are only for searching/browsing projects on PyPI - "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", @@ -69,9 +68,8 @@ dependencies = [ docs = [ # building documentation "mock", - "m2r2>=0.3.3", - "mistune<2", "sphinx", + "sphinx-mdinclude>=0.6.2", "sphinx_rtd_theme", "tabulate", ] diff --git a/suite/run_suite.bash b/suite/run_suite.bash index 4030c8259..b42119284 100755 --- a/suite/run_suite.bash +++ b/suite/run_suite.bash @@ -146,8 +146,9 @@ conda build ci/recipe for py in "${main_py}" "${alt_py}"; do env="test_mpas_analysis_py${py}" conda create -y -n "${env}" --use-local python="${py}" mpas-analysis \ - sphinx mock sphinx_rtd_theme "tabulate>=0.8.2" "m2r2>=0.3.3" \ - "mistune<2" pytest "mache>=1.11.0" "esmf=*=mpi_mpich_*" jinja2 + sphinx mock sphinx_rtd_theme "tabulate>=0.8.2" \ + "sphinx-mdinclude>=0.6.2" pytest "mache>=1.11.0" \ + "esmf=*=mpi_mpich_*" jinja2 conda activate "${env}" pytest conda deactivate