Skip to content

The Fermitools and Conda

Don Horner edited this page Sep 3, 2019 · 4 revisions

A History Lesson

The Fermitools (also known as the Fermi ScienceTools) is a suite of data analysis software provided by the Fermi-LAT collaboration that is used in the analysis of data produced by the Fermi Gamma-Ray Space Telescope (affectionately known as Fermi). In the past, the ScienceTools were distributed by the Fermi Science Support Center (FSSC) via direct download from the FSSC's public webpage. These downloads offered both precompiled binaries and source tarballs for public consumption.

While this was a functional solution for a long time, it required that the ScienceTools carry with it a large number of external software packages (such as ROOT and Python) which had been modified to be used in conjunction with the complex ScienceTools codebase and build system. These bloated the size of the combined software package and oftentimes introduced environmental conflicts in the user's analysis environment. To alleviate these issues and streamline the development process internally, in 2017 it was decided that the ScienceTools codebase would be migrated to Github and Conda be utilized as the ScienceTool's primary distribution system.

Why Conda?

A number of options were considered and Conda was chosen due to the fact that

  • Python is increasingly used within and in conjunction with the ScienceTools in analyses
  • Anaconda Python had many of the ScienceTools' required python modules included with the vanilla installation
  • Users were increasingly choosing Anaconda Python as their base python installation
  • Anaconda Cloud channels could be used to manage the installation of the ScienceTools dependencies

From a user perspective, this change results in a lighter-weight ScienceTools package with a much smaller chance of conflicts with the local user environment. The use of Github in conjunction with the Conda distribution system will also allow patches and updates to the ScienceTools to be tested and pushed to the publicly availible distribution much faster than in the past.

A Note On Nomenclature: 'Fermitools' is the name of the ScienceTool's conda distribution. For all intents and purposes in this documentation 'ScienceTools' will refer to the legacy distribution and 'Fermitools' will be the current distribution.