Skip to content

Latest commit

 

History

History
528 lines (402 loc) · 28.3 KB

affiliated.rst

File metadata and controls

528 lines (402 loc) · 28.3 KB

Affiliated Packages

Affiliated packages are well-maintained, open source software packages that are useful to solar physicists and integrate well with the SunPy ecosystem. To aid discoverability, all affiliated packages are listed on the SunPy website, and the SunPy project tries to advertise them at national and international conferences and workshops.

Current packages

sunpy core

The core package for solar physics in Python.

Documentation, Source code

package_general integration_full docs_extensive tests_excellent duplication_none community_excellent dev_stable

Maintainer: The SunPy Project

Version reviewed: v1.1.4

ndcube

Base package for multi-dimensional (non)contiguous coordinate-aware arrays.

Documentation, Source code

Maintainers: The SunPy Project

package_general integration_full docs_extensive tests_excellent duplication_none community_excellent dev_stable

Version reviewed: v1.3.2

drms

Provides search capability for the JSOC DRMS server which enables complex queries of HMI, AIA and MDI data.

Documentation, Source code

Maintainers: The SunPy Project

package_general integration_full docs_extensive tests_good duplication_none community_excellent dev_stable

Version reviewed: v0.5.7

sunraster

Package designed for reading, manipulating and visualizing data taken with slit spectrograph instruments.

Documentation, Source code

Maintainers: The SunPy Project

package_specialized integration_full docs_some tests_good duplication_none community_excellent dev_stc

Version reviewed: v0.1.2

sunkit-image

Open-source toolbox for solar physics image processing. Currently an experimental library.

Documentation, Source code

Maintainers: The SunPy Project

package_general integration_partial docs_good tests_excellent duplication_none community_excellent dev_stc

Version reviewed: v0.1

aiapy

Package for analyzing data from the Atmospheric Imaging Assembly (AIA) instrument onboard NASA's Solar Dynamics Observatory spacecraft.

Documentation, Source code

Maintainers: Will Barnes, Nabil Freij

package_specialized integration_full docs_extensive tests_good duplication_none community_good dev_stc

Version reviewed: v0.1.0

sunpy-soar

sunpy plugin for accessing data in the Solar Orbiter Archive (SOAR).

Documentation, Source code

Maintainers: The SunPy Project

package_general integration_full docs_some tests_excellent duplication_none community_excellent dev_stable

Version reviewed: v1.5

roentgen

Package for the quantitative analysis of the interaction of energetic x-rays with matter.

Documentation, Source code

Maintainer: Steven Christe, Shane Maloney, Daniel Ryan

package_specialized integration_full docs_extensive tests_excellent duplication_none community_excellent dev_stable

Version reviewed: v2.1

sunkit-instruments

Package for instrument-specific data structures and processing in the SunPy ecosystem.

Documentation, Source code

Maintainers: The SunPy Project

package_general integration_partial docs_good tests_excellent duplication_none community_good dev_low

Version reviewed: v0.3.1

demcmc

Package for differential emission measure (DEM) estimation using Monte Carlo Markov chain (MCMC) methods

Documentation, Source code

Maintainers: David Stansby

package_specialized integration_full docs_extensive tests_good duplication_none community_good dev_low

Version reviewed: v1.1.0

dkist

A package which aims to help you search, obtain and use DKIST data as part of your Python software.

Documentation, Source code

Maintainers: DKIST Data Center Team & Stuart Mumford

package_specialized integration_full docs_good tests_excellent duplication_none community_excellent dev_stable

Version reviewed: v1.0.0b15

solarmach

The Solar MAgnetic Connection Haus (Solar-MACH) tool is a multi-spacecraft longitudinal configuration plotter.

Documentation, Source code

Maintainers: Jan Gieseler

package_general integration_partial docs_good tests_good duplication_none community_excellent dev_stc

Version reviewed: v0.3.3

sunkit-magex

Magnetic Field Extrapolation package. Currently supports Potential Field Source Surface extrapolations. This is a successor to pfsspy.

Documentation, Source code

Maintainer: The SunPy Project

package_specialized integration_partial docs_extensive tests_excellent duplication_none community_excellent dev_stable

Version reviewed: v1.0.0

Provisional packages

These packages are works in progress that do not yet meet the functionality criteria for an affiliated package, but are working towards it.

pyflct

A Python wrapper for Fourier Local Correlation Tracking. Documentation, Source code

Maintainers: The SunPy Project

package_specialized integration_none docs_some tests_excellent duplication_none community_good dev_low

Version reviewed: v0.2.1

radiospectra

This package provides support for some types of solar radio spectrograms (e.g. CALISTO, SWAVES). Documentation, Source code

Maintainers: The SunPy Project

package_general integration_none docs_some tests_good duplication_some community_excellent dev_stc

Version reviewed: v0.3.0

Historical Packages

These packages were previously listed as affiliated but have been de-listed at the request of their authors or as part of our regular re-review processes.

pfsspy

Potential Field Source Surface modelling package. This package has been superseded by sunkit-magex.

Documentation, Source code

Maintainer: David Stansby

package_specialized integration_full docs_extensive tests_excellent duplication_none community_excellent low_activity

Version reviewed: v0.5.2

Affiliated Package Review

Each candidate package is reviewed by a reviewer independent of the package before it can be approved as an affiliated package.

Review Criteria

Functionality

Status Meaning
general Implements functionality relevant to a large cross-section of the solar physics community.
specialized Implements functionality which is relevant to a specific subsection of the solar physics community.
notrelevant This package does not implement functionality relevant to the solar physics community.

Integration

Status Meaning
full The package uses all appropriate features of the core package and affiliated package ecosystem to provide its functionality to users. It uses applicable data structures and has appropriate dependencies.
incomplete Some applicable functionality of the affiliated package ecosystem may be used but further integration is possible in this package.
no Provides functionality which should use features such as data structures in core or other affiliated packages. i.e. provides an array and a WCS but doesn't use ndcube, or represents physical coordinates not using sunpy.coordinates.

Documentation

Status Meaning
extensive Extensive online documentation, the public API has formatted docstrings describing the code's purpose, all inputs and outputs, and includes examples. Provides high level documentation; for example, a user guide and/or an example gallery.
good Online documentation is either lacking in coverage or quality. For example some docstrings maybe lacking detail, or examples, or there may be minimal high level documentation.
some Some online documentation. The public API is documented, but may have some missing or incomplete docstrings. The documentation may be missing guides, tutorials or other high level documentation.
little Little to no online documentation is provided in the version control repository. No guides or tutorials.

Testing

Status Meaning
excellent A high quality testing suite exists which tests the individual components (e.g. functions, classes) as well as providing integration tests. Code coverage is extensive. Testing is automated and runs frequently.
good Unit tests of individual components (e.g. functions, classes) and integration tests, but coverage is good but not extensive. Testing is automated.
needs_work Lacks tests and/or tests are not executed in a test framework (e.g. pytest).

Duplication

Status Meaning
none No code or functionality is duplicated from core, other affiliated packages, or other relevant packages.
some Some code or functionality duplication, some minor functionality may be duplicated from other affiliated packages, or other relevant packages.
major Duplicates major existing functionality in other affiliated packages.

Community

Status Meaning
excellent The developers actively solicit input to aid their decision-making, gather and react to community feedback, and work with other developers to improve ecosystem integration. The developers are active and engaged with the community. The package must also meet the requirements for a 'Good' rating.
good The package is developed openly. The developers have adopted a Code of Conduct compatible with SunPy's. The developers have adopted a Code of Conduct that reflects and is not contradictory to the values in the SunPy Code of Conduct. They welcome contributions, maintain and respond to an issue tracker, and are receptive to appropriate community feedback.
needs_work Code is maintained in hosted version control, but decisions are often made without considering community input or feedback. Lacks a Code of Conduct. It is not clear how to make a contribution or whether contributions are welcome. Developers do not respond to issues or an issue tracker is not used.

Development Status

Status Meaning
stable Package is well maintained, contributions are responded to by the developers. API stability is prioritized and regular versioned releases are made, with any breaking changes well documented.
stc_dev Package is well maintained, but large API changes may be frequent due to rapid development. Contributions are responded to by the developers. Versioned releases exist and changes are documented.
low_activity Package is functional but with little or no activity from the developers. The package has versioned releases and is functional.
needs_work Package is no longer maintained and is not functional.

Review Criteria and Summary

Outcomes Requirements
Accepted Must have a green score in the Functionality criteria and at least one other. They must also have no red scores.
Provisional After review a package is listed as provisional, as long as it is assessed to not have a red score in the "Functionality", "Duplication" or "Community" criteria and is working towards meeting the rest of the review criteria.
Not accepted A package does not currently satisfy the provisional rating.

Becoming an affiliated package

The review process for becoming an affiliated package is designed to be approachable, lightweight and open. Reviews are conducted in GitHub issues through the https://github.com/sunpy/sunpy.org repository, using the following process:

  1. If you're not sure whether to submit your package for the affiliated package review process, you can open an issue to informally discuss your package or contact the :ref:`role_affiliated-liaison` to discuss your package privately.
  2. Open a new issue with the issue template.
  3. The :ref:`role_affiliated-liaison` will identify a reviewer independent of your package.
  4. The reviewer evaluates the affiliated package against the review criteria.
  5. The reviewer adds their review as a comment to the issue.
  6. The submitting author has the right to ask for another review. In this case, the :ref:`role_affiliated-liaison` will identify a new independent reviewer. This new review will be added to the same issue.
  7. Based on the scores in each of the seven categories, the affiliated package is either accepted, given provisional status, or not accepted. In all three cases, this practically means closing the issue and ending the review process. In the last case, the reviewer provides the submitting author with feedback on how to meet the acceptance criteria with the intention of helping the submitting author achieve provisional or accepted status in the future.
  8. If the review passed the review criteria then the submitting author or the :ref:`role_affiliated-liaison` opens a pull request to add the package and its review results to the sunpy.org website, unless the submitting author withdraws the submission.
  9. The :ref:`role_affiliated-liaison` merges the pull request.

Existing Packages Review Process

Existing affiliated packages will be reviewed once per year by the :ref:`role_affiliated-liaison` to ensure the review is current. Developers may challenge a new review, which then requires the liaison to get an independent reviewer to perform the review.

Existing provisional affiliated packages will be reviewed once per year by the :ref:`role_affiliated-liaison`. To pass they must not have a worse score and still be working towards meeting the rest of the review criteria.

Acknowledgements

Sections of this page are heavily inspired by the Astropy affiliated package review process.