Change Log

This document lists the changes made during each release of PlasmaPy, including bug fixes and changes to the application programming interface (API). The Release Notes summarize the changes for each version.

Version 0.2.0

Version 0.2.0 is the second development release of PlasmaPy. Alongside a few new features, it brings plentiful refactoring, documentation and back stage improvements.

New Features

  • Implement machinery for a Plasma class factory based on PLEP 6

  • Create an openPMD Plasma subclass

  • Create classes to represent ionization state distributions for one or more elements or isotopes.

  • Add basic particle drifts to plasmapy.physics.drifts

  • Turn most dependencies into optional, subpackage-specific ones

Bug Fixes

  • Improve handling of NumPy arrays for plasma parameter and transport functions.

  • Vendor the roman package so as to allow installation via Conda

  • Decrease strictness of check_quantity to allow nan and inf by default

Changes to API

Version 0.1.1

Version 0.1.1 is a bugfix patch release correcting a number of issues that arose during the release process and adding two minor convenience features.

New Features

  • Add plasmapy.online_help()

  • Add plasmapy.__citation__ containing a BibTeX reference.

Bug Fixes

  • Bring back mistakenly removed Cython versions of plasma parameters.

  • Optimize check_relativistic.

  • Correct a failing import statement.

  • Fix a number of issues with the Maxwellian distribution in physics.distribution.

Version 0.1.0

Version 0.1.0 is the initial development release of PlasmaPy. This version is a prototype and a preview, and is not feature complete. Significant changes to the API are expected to occur between versions 0.1.0 and 0.2.0, including backward incompatible changes.

New Features

  • Composed PlasmaPy’s Vision Statement.

  • Adopted the PlasmaPy Community Code of Conduct.

  • Created a guide on Contributing to PlasmaPy.

  • Adopted a permissive BSD 3-clause license with protections against software patents.

  • Set up continuous integration testing with Travis CI, CircleCI, and AppVeyor, along with test coverage checks with Coveralls.

  • Decided upon code and docstring style conventions and set up automated code style checks with pep8speaks.

  • Developed online documentation for PlasmaPy that is hosted by Read the Docs.

    • Automated documentation builds with Sphinx.

    • Wrote narrative documentation for each subpackage.

  • Adopted use of units as a units package.

  • Created the atomic subpackage to provide easy access to commonly used atomic data.

    • Created a functional interface to access particle properties and find the energy released from nuclear reactions.

    • Created the Particle class as an object-oriented interface to the atomic subpackage.

    • Created the particle_input decorator.

  • Created the classes subpackage that includes the prototype Plasma3D, PlasmaBlob, and Species classes.

  • Created the constants subpackage.

  • Created the mathematics subpackage that contains analytical functions commonly used in plasma physics.

  • Created the physics subpackage with its transport module to calculate plasma parameters, transport coefficients, dielectric tensor elements, collision rates, and relativity/quantum physics parameters used in plasma physics.

  • Created the utils subpackage.

    • Created check_quantity and check_relativistic decorators.

    • Created custom exceptions.

    • Added import helper and test helper functionality.

  • Began development of the diagnostics subpackage.

    • Created a module to interpret Langmuir probe data.

  • Created a repository for PlasmaPy Enhancement Proposals.

  • Began using type hint annotations.

  • Set up architecture to incorporate Cython into performance-critical sections of code.

  • Incorporated import and setup tools from the astropy_helpers package.

  • Set up a page describing the Stability of Subpackages.

Changes to API

  • PlasmaPy now has an API.

Bug Fixes

  • Fixed bug in universe that cause solar neutrinos to oscillate between different flavors.