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

Albert Y. Shih

Stuart Mumford

Stuart Mumford

Laura A. Hayes

Laura A. Hayes

Project Custodians#

Active#

Samuel Badman

Samuel Badman

Will Barnes

Will Barnes

Monica Bobra

Monica Bobra

Daniel Garcia Briseno

Daniel Garcia Briseno

Steven Christe

Steven Christe

Hannah Collier

Hannah Collier

Nabil Freij

Nabil Freij

Brett Graham

Brett Graham

Laura A. Hayes

Laura A. Hayes

Michael S. F. Kirk

Michael S. F. Kirk

Samuel Van Kooten

Samuel Van Kooten

Shane Maloney

Shane Maloney

Stuart Mumford

Stuart Mumford

Nick Murphy

Nick Murphy

Sophie Musset

Sophie Musset

Tiago Pereira

Tiago Pereira

David Pérez-Suárez

David Pérez-Suárez

Daniel Ryan

Daniel Ryan

Albert Y. Shih

Albert Y. Shih

Alisdair Wilson

Alisdair Wilson

Emeritus#

Russell Hewett

Russell Hewett

Conor MacBride

Conor MacBride

David Stansby

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

Laura A. Hayes

Summer of Code Administrator

David Pérez-Suárez

David Pérez-Suárez

Lead Newcomer Mentor

Role Unfilled

Role Unfilled

Continuous Integration Maintainer

Conor MacBride

Conor MacBride

Release Manager

Role Unfilled

Role Unfilled

Webmaster

Role Unfilled

Role Unfilled

Affiliated Package Liaison

Will Barnes

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.

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

Andy Inglis

Board member and Secretary

2014 - 2017

Albert Shih

Board member, Lead Developer

2014 - 2018, 2014 - 2015

Sabrina Savage

Board member and Secretary

2017 - 2019

Thomas Robitaille

Board member

2014 - 2017

Juan Carlos Martínez Oliveros

Board member

2014 - 2019

Vishnunarayan K. I.

sunpy.database and sunpy.time maintainer

2019 - 2021

Nabil Freij

Deputy Lead Developer

2016 - 2019

David Stansby

Release Manager, sunkit-pyvista and sunkit-soar maintainer

2019 - 2023