Essentials icon indicating copy to clipboard operation
Essentials copied to clipboard

[FEATURE]-Organize interfaces into PepperDash.Essentials.Interfaces namespace

Open ndorin opened this issue 5 years ago • 4 comments

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.

ndorin avatar Nov 24 '20 18:11 ndorin

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?

jtalborough avatar Mar 15 '22 15:03 jtalborough

To clarify, it looks like this is part of 2.0.0. What needs to happen for 2.0.0 to be released?

ngenovese11 avatar Mar 15 '22 16:03 ngenovese11

Based on conversations with the team we will take a two tiered approach.

  1. Organization: Move all the interfaces into a new namespace PepperDash.Essentials.Interfaces, This does not need to be organized into categories day 1.
  2. 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.

jtalborough avatar Mar 16 '22 15:03 jtalborough

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.

TrevorPayne avatar Mar 16 '22 15:03 TrevorPayne