Skip to content

meshioplusplus, py-meshioplusplus: new packages#5624

Open
loumalouomega wants to merge 7 commits into
spack:developfrom
loumalouomega:meshioplusplus
Open

meshioplusplus, py-meshioplusplus: new packages#5624
loumalouomega wants to merge 7 commits into
spack:developfrom
loumalouomega:meshioplusplus

Conversation

@loumalouomega

Copy link
Copy Markdown
Contributor

Summary

Adds two new packages for meshio++, a C++20 fork of the pure-Python meshio mesh I/O library that adds a native core while keeping full Python-format-fallback compatibility.

  • meshioplusplus (CMakePackage) — the standalone HPC-facing library: an installable libmeshioplusplus C API (pure-C99 header, pkg-config + find_package(meshioplusplus) support) with an optional +fortran variant for the OO Fortran 2008 module. Available from 6.2.0, the first release with a C API/Fortran interface. Variants also cover the optional HDF5/netCDF/zlib format backends, the selectable parallel backend (auto/seq/stl/openmp/tbb), and the in-memory mesh backend (meshio/native/kratos, default native).
  • py-meshioplusplus (PythonPackage, scikit-build-core + pybind11) — the Python bindings (the meshioplusplus PyPI package). Available from 6.0.0, 6.1.0, and 6.2.0. Same hdf5/netcdf/zlib variants, threaded to the CMake configure via config_settings, plus the matching py-h5py/py-netcdf4 Python fallbacks.

Both packages require a C++20 toolchain (conflicts("%gcc@:9")) and are sourced from the GitHub release archive rather than PyPI, since 6.0.0 has no PyPI sdist.

Fixes loumalouomega/meshioplusplus#3

@spackbot-triage spackbot-triage Bot added new-package Additions of new packages to the Spack ecosystem new-version Modifications to packages' `depends_on()` directives python dependencies Modifications with a `depends_on()` directive conflicts Modifications with a `conflicts()` directive maintainers Modifications to a package's `maintainers()` directive licenses Modifications to a package's `license()` directive new-variant Modifications to packages' `variant()` directives labels Jul 17, 2026
CI's prechecks/style job flagged both package.py files for ruff format
non-compliance on the multi-line variant() calls.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Pull request overview

Adds new Spack packages for the meshio++ project: a standalone CMake-built C/C++/Fortran library (meshioplusplus) and its Python bindings (py-meshioplusplus) built via scikit-build-core/pybind11.

Changes:

  • Introduces meshioplusplus (CMakePackage) with variants for optional Fortran interface, HDF5/netCDF/zlib backends, parallel backend selection, and in-memory mesh backend selection.
  • Introduces py-meshioplusplus (PythonPackage) built from GitHub release archives, with variants wired into scikit-build-core config_settings to toggle native backends and add Python fallbacks.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.

File Description
repos/spack_repo/builtin/packages/py_meshioplusplus/package.py Adds Python bindings package with scikit-build-core configuration settings and optional backend/fallback variants.
repos/spack_repo/builtin/packages/meshioplusplus/package.py Adds standalone CMake package with variants for Fortran/C API and optional I/O backends/parallelism.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread repos/spack_repo/builtin/packages/py_meshioplusplus/package.py
Comment thread repos/spack_repo/builtin/packages/meshioplusplus/package.py Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

conflicts Modifications with a `conflicts()` directive dependencies Modifications with a `depends_on()` directive licenses Modifications to a package's `license()` directive maintainers Modifications to a package's `maintainers()` directive new-package Additions of new packages to the Spack ecosystem new-variant Modifications to packages' `variant()` directives new-version Modifications to packages' `depends_on()` directives python

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[REQUEST] Spack package

2 participants