Project & Team
This page describes the fermipy project organisation and the main roles and responsibilities in the fermipy team. This structure was set in place in July 2024, but we expect this structure to evolve over the coming years, adapting to the size and composition of the fermipy development team, and the requirements and needs of scientists and projects using fermipy. If you would like to become part of the fermipy team, please get in contact. Help is always welcome!
Overview
The following sections describe the major roles and responsibilities in the fermipy team:
Coordination Committee
The fermipy coordination committee (CC) is the board that is responsible to promote, coordinate and steer fermipy developments. It also serves as main contact point for the fermipy project.
fermipy is developed mostly by member of the Fermi-LAT collaboration, and it is used by people and projects from several institutes and countries. The CC is composed by the analysis coordinator (and their deputy) of the Fermi LAT collaboration, the fermipy principal investigator and lead developers. The CC also includes representation from the Fermi Science Support Center (FSSC) and Fermi User Group (FUG).
Responsibilities include:
Being the point of contact for the fermipy project.
Promote the use of fermipy by new projects, especially as science tool for Fermi-LAT.
Keep the overview of ongoing activities, schedules and action items and follow up to make sure all important things get done.
Make decisions on the scope, content and development priorities for the fermipy package.
Support and grow the fermipy team (help find manpower and funding)
Support and coordinate the use of fermipy for scientific or technical studies and papers
Organise and drive all non-technical aspects of the project on a day-to-day basis.
Keep an overview and help coordinate all activities that have some involvement of fermipy, such as e.g. papers, presentations or posters about or using fermipy at gamma-ray astronomy meetings or conferences, or tutorials at schools / workshops on gamma-ray astronomy data analysis.
Manage the fermipy developer / maintainer / contributor team. Distribute tasks and assign responsibilities to other fermipy developers.
Ensure that anyone interested in contributing to fermipy development has good resources (documentation, communication, mentoring) to get started. Specifically: maintain the fermipy developer documentation that describes all aspects of fermipy development (code, testing, documentation, processes).
Organise fermipy developer calls and coding sprints via fermipy-meetings
Schedule fermipy releases and define which fixes and features go in which release, taking the needs of people and projects using fermipy as well as available manpower for developments into account. Either execute releases directly or assign a release manager.
Monitor and assign of issues and pull requests,
Ensure fermipy infrastructure is well set up and maintained (issue tracker and pull requests on Github, continuous integration tests, documentation builds, releases and distribution).
Current CC members (alphabetical order):
Niccolò Di Lalla (Core Developer) - Stanford University
Leonardo Di Venere (Core Developer) - INFN Bari
Michela Negro (Fermi-LAT Analysis Deputy Coordinator) - Louisiana State University
Nicola Omodei (PI, Core Developer) - Stanford University
Giacomo Principe (Core Developer) - INFN Trieste
Miguel Sánchez-Conde (Fermi-LAT Analysis Coordinator) - Universidad Autónoma de Madrid
Marcos Santander (FUG) - University of Alabama
Alex Reustle (FSSC) - NASA GSFC
Principal Investigator
The fermipy Principal Investigator (PI) is in charge of seeking funding, they overview the work and work closely with the fermipy coordination committee, lead developers, contributors and users.
Responsibilities include:
Maintain fermipy communication channels (mailing lists, slack, github, …)
Serve as fermipy coordination committee secretary (schedule and moderate calls; give status reports; write minutes)
Serve on the fermipy coordination committee, as the link between CC and the development team.
Appoint the fermipy managers (non-technical lead) and lead developers (technical lead)
Organise fermipy user calls and training events via fermipy-meetings
Review the documents are properly reviewed and eventually decisions made by the CC.
Current fermipy PI:
Nicola Omodei (PI, Core Developer) - Stanford University
Lead developers
The lead developers are the technical executive leads for the fermipy project. The lead developers are appointed by the fermipy coordination committee, and work closely with the fermipy coordination committee, project managers and contributors.
Responsibilities include:
Organize and drive all technical aspects of the project on a day-to-day basis. Keep the overview of ongoing activities, schedules and action items and follow up to make sure all important things get done.
Evaluating new pull requests for quality, API consistency and fermipy coding standards,
Supporting developers on tasks associated to the sub-package(s),
Taking care of the global design of the sub-package(s) in the context of the global fermipy architecture, participating to the User Support for questions related to the sub-package(s).
Solve, comment, or re-assign issues and pull requests.
Current fermipy lead developers:
Niccolò Di Lalla (Core Developer) - Stanford University
Leonardo Di Venere (Core Developer) - INFN Bari
Nicola Omodei (PI, Core Developer) - Stanford University
Giacomo Principe (Core Developer) - INFN Trieste
Sub-package maintainers
Among the fermipy core developer team, they are some experts that are devoted to the maintenance of some sub-packages.
Responsibilities include:
Solve, comment or reassign issues and pull requests.
support development on tasks associated to the sub-package(s),
evaluating new pull requests for quality, API consistency and fermipy coding standards,
taking care of the global design of the sub-package(s) in the context of the global fermipy architecture,
participating to the User Support for questions related to the sub-package(s).
List of sub-package (with assigned maintainers):
Catalogs (data, format) -
Diffuse (GalProp, MapCube) - Troy Porter - Stanford University
SED -
Localization - Niccolò Di Lalla - Stanford University
Lightcurve - Janeth Valverde - NASA GSFC
Jobs (managing pipelines) - Nicola Omodei, Niccolò Di Lalla - Stanford University
Contributors and previous core developers
Some of the original fermipy developer have left the academia or move to different jobs. Nonetheless we want to acknowledge their original involvement and vision in creating fermipy.
Matt Wood
Eric Charles
Henrike Fleischhack
Mattia Di Mauro
Sara Buson
Anna Franckowiak
Alex Drlica-Wagner
Rolf Buehler
Terri Brandt
Joe Acercion
Stephan Zimmer
James Chiang
Andy Smith
Supporting institutions
People involved in fermipy are coming from different institutions, laboratories and universities. We acknowledge them for their daily support.
Grants
Grants that are supporting the development of fermipy:
Fermi GI cycle 16 (Large project): proposal n. 161029. P.I.: Nicola Omodei (Stanford University)