[FEATURE]-Organize interfaces into PepperDash.Essentials.Interfaces namespace
Is your feature request related to a problem? Please describe. We need a common folder for interrfaces to make them easier to find
Describe the solution you'd like Move interfaces to a separate Interfaces folder in Essentials Core and organize them together in subfolders. The goal will be to move all interfaces here over time.
I want to resurface this issue. Interfaces definition and organization is paramount for plugin development. Better grouping of the interfaces or a separate project entirely will make the interfaces more accessible. This new org structure can reference existing interfaces keeping backwards compatibility and allow for growth and expansion.
@ndorin What steps can we take to help push this forward?
To clarify, it looks like this is part of 2.0.0. What needs to happen for 2.0.0 to be released?
Based on conversations with the team we will take a two tiered approach.
- Organization: Move all the interfaces into a new namespace PepperDash.Essentials.Interfaces, This does not need to be organized into categories day 1.
- Documentation: Add basic XML documentation comments to all interface definition.
Because this is a breaking change it will need to be but onto a 2.0 branch. A new branch will be created (or resurrected) "development-2.0.0" and changes to the Interfaces will start and end there.
To clarify, it looks like this is part of 2.0.0. What needs to happen for 2.0.0 to be released?
I think this absolutely needs to be discussed as well - if we're stymied on implementing this until 2.0.0 is released, and there's no defined goal post for that release, then it makes it difficult to prioritize this work when we don't know if it's needed in two months or twelve.
Broadly this also means that for the 2.0.0 update, nearly every single plugin will require an update, at least to the namespaces utilized in the plugin - so we need to make sure we realize we're going to have that nontrivial effort associated - everything will break overnight with the 2.0.0 update - which is fine - but we need to make sure we're ready with "fixed" plugins at or near release.