Skip to content

Fermitools Roadmap

Don Horner edited this page Sep 9, 2019 · 20 revisions

This is general outline of the future plans for the Fermitools. This is an initial draft and will likely change.

Releases

I imagine that the releases in the list below would happen somewhat quarterly. There would likely be patch releases for bug fixes between the major items.

  • 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).
    • Add other TBD enhancements or bug fixes.
  • 2019 Q3 C++11 Compatibility Release
    • Make the tools C++11 compatible
    • Will no longer need cf201901 conda label
    • Move pipeline to Micrsoft Azure.
  • 2019 Q4 Python 3 transition
    • Many packages used by the Tools are dropping support for Python 2 before 2020, e.g., Numpy will not be adding new features to Python 2 version starting on January 1, 2019 but will provide bug fixes for Python 2 until December 31, 2019.
    • Will require changes to SWIG and SCons
    • Make necessary syntax updates
    • Maybe iterate major version number to 2.0.0

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.
  • Change to use Conda 5. What will be required for this?
  • Support alternate distribution mechanisms, e.g., pip, brew, apt-get, etc.
  • Better fermipy integration.
  • Turn FSSC analysis threads into Jupyter notebooks.
    • Add to Jenkins pipeline as tests.
    • Will provide additional layer of testing and automatically generate products that can be put on web version.
  • Improve/fix gtorbsim.
  • Organize and deal with unresolved JIRA issues. Group them into logical blocks and assign to releases.