-
Notifications
You must be signed in to change notification settings - Fork 286
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
Iris Core + Plugins #4798
Comments
Having some specific user requirements/scenarios for this would help. |
Regardless, it begs the fundamental Iris developer question: |
There are various small packages out there that do specific things that are useful for scientists. For example, I am currently having a go with xeofs which currently has interfaces for pandas, xarray and numpy types. If one were to think about adding an Iris interface to such a package, it would be useful (for testing) to have an Iris flavour that knows about the cube class and probably not much else. |
@HGWright pointed out : The big cost of this, not just the effort of doing it but the ongoing extra repo maintenance (e.g. multiple dependabot hits) |
I am still in favour of establishing a core 'concept' - defining Iris core determines Iris' core dependencies - but I don't think plugins would be worth the hassle. We can instead cut the Conda recipe down to the core dependencies and introduce errors/warnings for when a user needs a core dependency but has not yet installed it. We can also use the core concept to structure our tests such that we don't have enormous environments everywhere. Perhaps only our core is tested against multiple Python versions, while anything involving optional dependencies is only tested against latest Python. |
An important consideration: |
Something not well captured above: Iris-grib and iris-esmf-regrid have benefitted from being separated from the release cadence of Iris itself. This may be an opportunity for other areas of Iris too. If any part of Iris is unlikely to reap this benefit (e.g. our plotting capabilities do not evolve very frequently) then I am still keen to explore optional Conda dependencies rather than full blown repo separation. |
Separating Iris API into 'core' API and multiple 'plugins' is a popular ambition offline, so deserves to be recorded publicly, especially for voting purposes 😉 .
Benefits:
Examples of elements that could be plugins:
The text was updated successfully, but these errors were encountered: