PlasmaPy v2026.2.0 (2026-02-20)

Documentation Improvements

  • The mamba-org/setup-micromamba GitHub action is now used to install graphviz and pandoc during documentation build workflows. Because this action caches installed packages between runs, this change speeds up documentation builds on GitHub by ∼1–2 minutes. (#3140)

  • Updated the acknowledgements page to include a new NASA award supporting work on PlasmaPy infrastructure and maintenance. (#3148)

  • The Getting Ready to Contribute page of the Contributor Guide has been updated to show how to set up a virtual environment for development purposes using uv and install the dependency groups used for development. (#3157)

  • Bumped documentation builds from using Python 3.13 to using Python 3.14. (#3159)

  • Made minor documentation updates and fixed a configuration issue with the Read the Docs build. (#3188)

  • Updated subpackage headers and docstrings in plasmapy.formulary. (#3190)

  • Updated submodule headings in plasmapy.formulary.collisions. (#3191)

  • Switched the documentation builds from using the sphinx-collapse extension to using sphinx_toolbox.collapse. (#3203)

  • Fixed a typo in a formula in the plasma_frequency docstring. (#3216)

  • Fixed a typo in two_fluid_dispersion.ipynb. (#3218)

  • Fixed a typo in the docstring of em_wavelength. (#3219)

Backwards Incompatible Changes

  • Development dependencies are now defined using dependency groups (see PEP 735) rather than via optional dependencies. Commands like pip install plasmapy[docs,tests] will no longer install the dependencies used for documentation and test builds. (#3157)

Bug Fixes

  • Dropped usage of the newshape parameter from numpy.reshape that was deprecated in the v2.1.0 and removed in the v2.4.0 releases of NumPy. Usage of this parameter led to an error in merge_voltage_clusters. (#3172)

  • Fixed bug in tests for thomson with NumPy 2.4 where numpy.random.uniform returned an array that needed to be cast as a float. (#3186)

  • Corrected plasma_frequency_lite to take the absolute value of the charge number Z. Because the absolute value of Z had not previously been taken, the plasma frequency was able to be negative. This bug did not occur in plasma_frequency. (#3216)

Internal Changes and Refactorings

  • Updated the release checklist following the v2025.10.0 release. (#3131)

  • Updated the workflow to verify that a PlasmaPy release can be installed via conda-forge. (#3134)

  • Renamed .github/workflows/conda.yml to .github/workflows/installability.yml, and added workflows to test that a new release of PlasmaPy can be installed from the Python Package Index with pip and uv, and from conda-forge with miniconda. (#3136)

  • Updated the GitHub workflow for labeling pull requests that do not need changelog entries. (#3146)

  • Updated the Nox session that upgrades uv.lock to only delete uv.lock beforehand if the file is invalid. (#3150)

  • Simplified the Nox session to regenerate the uv.lock lockfile. (#3174)

  • Renamed and revised Nox sessions for updating uv.lock and validating uv.lock against the requirements defined in pyproject.toml. (#3179)

  • Adopted uv build as the build frontend and uv_build as the build backend. (#3202)

Updates to Software Testing

  • Switched the pytest configuration in pyproject.toml to use the modern TOML configuration (available for pytest>=9) rather than the legacy INI compatibility mode. (#3147)

  • Began using nox-uv in noxfile.py to simplify installation of developer dependency groups. (#3157)

  • Removed several tests that were checking that passing a wrong type into certain functions raised a TypeError. These tests had been issuing a deprecation warning from Astropy related to multiplication of a unit and str instance. (#3187)

  • Updated the pytest configuration in pyproject.toml and noxfile.py. (#3194)

  • Separated the continuous integration checks for running tests and building documentation against unreleased versions of upstream dependencies into separate GitHub workflows. (#3195)

  • Added continuous integration workflows to check PHEP 3 compliance and compatibility with the Python in Heliophysics Community environment. (#3211)