Skip to content

Fermitools Roadmap

Don Horner edited this page Jun 22, 2022 · 20 revisions

This is general outline of the future plans for the Fermitools. It was updated in September 2020 to reflect how the releases actually happened. Priorities after the Python 3 release are now being discussed to determine future plans.

Releases

  • 2018 Q3 Fermitools release 1.0.0
    • Initial release.
    • Switch to Conda for distribution.
  • 2019 Q1 Patch release
    • Fix problem with gtsrcmaps not working (Likelihood #10).
    • Include other likelihood fixes by Eric.
  • 2019 Q3 Feature Release
    • Improve handling of energy dispersion (JIRA LK-141).
    • Added gtdrm to write energy dispersion matrix (JIRA LK-143).
    • Various other enhancements or bug fixes.
  • 2020 Q1 Patch release
    • Fix various issues.
  • 2020 Q3 Python 3 transition and C++11 Compatibility Release
    • Transition to Python 3, ROOT 6, and updated compilers.
    • Moved pipeline to Microsoft Azure.
    • Build system modified to help developers.
  • 2022 Q2 ROOT-free release
    • Remove ROOT from the standard tools.
    • Will reduce installation issues and speed up build process.
    • Add native ARM builds for Apple silicon (e.g., M1) processors
  • 2022 Q3 Patch release

Long term changes

These are ideas that should be done but may take a long time. They could be worked on in parallel with the releases or scheduled for a specific future release.

  • Increase build modularity
    • Separate packages so they can be built and tested without requiring rebuilding dependencies or unrelated packages.
    • This would speed up our builds and unit tests.
  • Improve unit tests
    • Separate flyweight and integration tests. Improve reporting.
    • Possibly use some of the analysis threads that have been converted to python notebooks.
  • Support alternate distribution mechanisms, e.g., pip, brew, apt-get, etc.
  • Better fermipy integration.
  • Improve/fix gtorbsim.
  • Organize and deal with unresolved JIRA issues. Group them into logical blocks and assign to releases.
  • Build natively on Apple ARM architecture.