SunPy Project#
The SunPy Project is the organization which maintains the SunPy library and sponsored affiliated packages.
The organizational structure is described in SEP-2, and consists of:
-
a group of trusted community members the “Project Custodians”
a three person “Steering Committee” who manage the project day-to-day
an Advisory Board who provide oversight and guidance
In addition to this there are other roles people may hold with a specific focus inside the project (see Other Roles).
People#
In this section we list everyone with a specific role in the project, all the members of the development community are too numerous to list here. A list of anyone who contributed code to the SunPy Project is available on Github contributors and for each major release we keep track of who contributed in-between releases.
Steering Committee#

Albert Y. Shih

Stuart Mumford

Laura A. Hayes
Project Custodians#
Active#

Samuel Badman

Will Barnes

Monica Bobra

Daniel Garcia Briseno

Steven Christe

Hannah Collier

Nabil Freij

Brett Graham

Laura A. Hayes

Michael S. F. Kirk

Samuel Van Kooten

Shane Maloney

Stuart Mumford

Nick Murphy

Sophie Musset

Tiago Pereira

David Pérez-Suárez

Daniel Ryan

Albert Y. Shih

Alisdair Wilson
Emeritus#

Russell Hewett

Conor MacBride

David Stansby
SunPy Advisory Board#
The advisory board is not yet staffed. If you are interested in serving on the advisory board please let us know in the Chat Room.
Other Roles#
The following people hold named roles. See Role Descriptions for more details on each role.
Communication and Education Lead

Laura A. Hayes
Summer of Code Administrator

David Pérez-Suárez
Lead Newcomer Mentor

Role Unfilled
Continuous Integration Maintainer

Conor MacBride
Release Manager

Role Unfilled
Webmaster

Role Unfilled
Affiliated Package Liaison

Will Barnes
Maintainers#
The following section list the individuals who extend or maintain various aspects of the SunPy Project that are not covered by the above roles.
These are people who maintain a submodule of sunpy
or who maintain a separate package that under the control of the SunPy Project.
These people might also lead development of their specific domain.
We are always looking for people to join the SunPy Project to ensure we continue to provide the best possible set of libraries to the solar physics community. If you would like to get involved please get in touch in the Chat Room.
drms:
Role Descriptions#
This section describes each of the SunPy projects community (executive) roles, and lists the current holder(s) of that role. Community members can also participate by being members of the board. We would like to encourage anyone interested parties to apply to roles which are currently unfilled by contacting the lead developer or the deputy lead developer. It is possible for more than one person to share the responsibilities of a role. If you are interested in a role which is filled, contact the individual(s) and ask how you can help.
Continuous Integration Maintainer#
SunPy core and the affiliated packages using the package-template all use the same CI setup. The primary responsibility of the CI Maintainer is to keep these resources up to date and fix issues as they arise with new package versions or changes to CI platforms. An outline of the current CI services used can be found in the sunpy documentation. A non-exhaustive list of things involved with this role is:
Maintaining the Azure pipeline templates.
Maintaining the documentation build pipeline (i.e. Read the Docs).
Updating the tox configurations.
Investigating new CI services and recommending which ones could be useful.
Estimated Commitment Level: 3-5 hours per week. This role requires keeping an eye on the core repo and other repos’ PRs to spot issues with the CI systems and builds which needs attention. The time commitment is probably around 3-5 hours per week, with additional scope for improving the status quo.
Release Manager#
The release manager is responsible for the logistics of sunpy core releases, and assisting with releases of affiliated packages as required. This comprises of the following main tasks:
Ensuring that PRs are backported as appropriate.
Working with the CI maintainer to maintain the CI on release branches.
Following, maintaining, and improving the release checklist for each release.
Notifying the Communications Lead of new releases.
Maintaining the automated release pipeline.
Maintaining the conda-forge packages for core and affiliated packages.
Estimated Commitment Level: 3-5 hours/week. The main component of this role is monitoring PRs which get milestoned to be backported to release branches and ensuring the backports happen correctly, and releasing bug fix versions.
Webmaster#
The webmaster maintains and improves the sunpy.org website, sunpy-sphinx-theme and the ablog sphinx plugin. This primarily involves:
Reviewing pull requests and issues on these repositories.
Maintaining and improving the website theme and ablog.
Updating the website as needed.
Implementing analytics on the website and docs.
Estimated Commitment Level: Around 1 hour per week, but comes in bursts as PRs are opened.
Maintainer#
Responsibilities of a maintainer (subpackage, or library etc) include:
Evaluating and soliciting new pull requests which are consistent with their scope and contribution standards.
Providing material support for open pull requests to enable merging.
Maintaining and developing the roadmap consistent with the roadmap of the project.
Mentoring the next generation of maintainers and developers.
Responding to relevant queries on all official SunPy communication channels.
Handling GitHub issues associated with their scope.
Overseeing and improving related documentation content.
Soliciting and implementing improvements and new additions to related documentation content.
Estimated Commitment Level: Around 2 hour per week, but comes in bursts as PRs are opened or as questions roll in.
Lead Newcomer and Summer of Code Mentor#
The newcomer mentor is responsible for supporting new users and contributors to sunpy and sponsored affiliated packages. This involves:
Being responsive to GitHub issues, pull requests, mailing lists and chat.
Helping new contributors understand SunPy’s development methodologies.
Maintaining the Newcomers Guide.
Leading SunPy’s participation in sprints and events to attract new contributors.
Finding other suitable mentors and pairing them with mentees.
Leading the project’s interaction with the Open Astronomy organization for the Google Summer of Code project.
Estimated Commitment Level: 5 hours/week. This role is highly seasonal as the peak time for newcomers to the project is during the lead up to GSOC (Feb - April) and Hacktoberfest (October). During these times the time commitment is probably around 5 hours per week, at other times it will be less. There is also a lot of scope for improving our on-boarding process as part of this role.
Communication and Education Lead#
Recruits people to write interesting blog posts.
Recruits members of the SunPy community to present about the project at relevant conferences (e.g. AAS/SPD, AGU) and maintaining the Github repo of presentations.
Sends updates to the community about the project.
Manages the @SunPyProject Twitter account.
Moderates the mailing list.
Organizes and provides support for tutorials.
Maintains the tutorial notebook repository.
Maintains a list of ideas for tutorials and solicits members of the community to develop tutorials according to set standards.
Provides any input or guidance to the board Chair about the Code of Conduct.
Estimated Commitment Level: 2-3 hours / week. This role has a lot of scope for developing new community engagement methods.
Affiliated Package Liaison#
SunPy is starting to develop a set of general affiliated packages, i.e ndcube, sunkit-image and drms as well as instrument specific ones like IRISPy. Affiliated packages are not very structured currently, although a framework for them exists in SEP-4.
This role would develop a set of processes for both sponsored and non-sponsored affiliated packages, a review procedure for new affiliated packages, and lead the effort to integrate instrument teams with SunPy.
Commitment Level: This role needs an investment of time at the beginning to set up the processes for affiliated packages. These processes would then determine the likely time commitment after that.
Emeritus role holders#
These people have previously served in named roles in the SunPy Project, either in community roles or on the board.
Name |
Role |
Period |
---|---|---|
Board member and Secretary |
2014 - 2017 |
|
Board member, Lead Developer |
2014 - 2018, 2014 - 2015 |
|
Board member and Secretary |
2017 - 2019 |
|
Board member |
2014 - 2017 |
|
Juan Carlos Martínez Oliveros |
Board member |
2014 - 2019 |
sunpy.database and sunpy.time maintainer |
2019 - 2021 |
|
Deputy Lead Developer |
2016 - 2019 |
|
Release Manager, sunkit-pyvista and sunkit-soar maintainer |
2019 - 2023 |