Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maintenance of Indirect/Inelastic interfaces #37229

Open
6 tasks
robertapplin opened this issue Apr 26, 2024 · 0 comments
Open
6 tasks

Maintenance of Indirect/Inelastic interfaces #37229

robertapplin opened this issue Apr 26, 2024 · 0 comments
Labels
Epic Indirect/Inelastic Issues and pull requests related to indirect or inelastic ISIS Team: Spectroscopy Issue and pull requests managed by the Spectroscopy subteam at ISIS Maintenance Unassigned issues to be addressed in the next maintenance period.

Comments

@robertapplin
Copy link
Contributor

robertapplin commented Apr 26, 2024

Description

The Indirect/Inelastic interfaces are among the oldest interfaces in the Mantid codebase. They've accumulated a lot of maintenance needs over time and require significant restructuring to make them easier to maintain and expand. There are several problems with the way these interfaces are set up currently. For example:

  • The Qt Framework is pervasive throughout the code, which makes it hard to debug and test code.
  • The logic isn't organized into smaller, testable modules/functions.
  • The use of multiple layers of base classes makes the current structure unclear what each class is meant to do. This has also lead to a large amount of unused code in the base classes.
  • Commonly used functions are attached to these base classes, when they would be better off being in their own independent module (not within a class at all).

As a result we are lacking in automated tests for many of the interfaces. This issue has been created to track our progress in improving the code behind the Indirect/Inelastic interfaces. Our goal is to make them more maintainable and easier to extend, which should also improve their longevity, and make them more testable.

Plan

We want to actively refactor the following Indirect/Inelastic interfaces:

It is currently believed that refactoring the following Indirect/Inelastic interfaces would not provide enough benefit to justify the time spent refactoring the code:

  • Indirect Simulations
  • Indirect Tools
@robertapplin robertapplin added ISIS Team: Spectroscopy Issue and pull requests managed by the Spectroscopy subteam at ISIS Epic Indirect/Inelastic Issues and pull requests related to indirect or inelastic Maintenance Unassigned issues to be addressed in the next maintenance period. labels Apr 26, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Epic Indirect/Inelastic Issues and pull requests related to indirect or inelastic ISIS Team: Spectroscopy Issue and pull requests managed by the Spectroscopy subteam at ISIS Maintenance Unassigned issues to be addressed in the next maintenance period.
Projects
Status: No status
Development

No branches or pull requests

1 participant