-
Notifications
You must be signed in to change notification settings - Fork 240
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
feat: restructure core
by component
#1842
feat: restructure core
by component
#1842
Conversation
Codecov Report
@@ Coverage Diff @@
## main #1842 +/- ##
==========================================
- Coverage 62.52% 62.50% -0.03%
==========================================
Files 780 781 +1
Lines 16635 16638 +3
Branches 1085 1085
==========================================
- Hits 10401 10399 -2
- Misses 5784 5789 +5
Partials 450 450
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
mostly addressing your "further notes"
-
All the chickens are coming home to roost 🐔 🐓 🐔
best comment so far.
-
boot
vsbase
: they're separate because they serve distinct purposes:boot
takes care of runtime boostrap and extension loading, whereasbase
provides some basic (but optional) features. Some runtimes will only require theboot
module for bootstrapping, but will not need thebase
module. Thus having them separate still makes sense to me. -
selector-store
: as per the (updated) documentation, a default provider for a service should be in its own extension, even if it does not use any other injected fields. -
control-plane-core
: I would rename theControlPlaneCoreExtension
to something likeDefaultStoresExtension
or something to clearly state what it's doing. -
selector-api
andselector-client
: architecturally, adata-plane-selector
should not need them. For example when running the selector embedded. They are only needed when the selector runs in its own process (e.g. as pod in a K8s). If there is currenlty a dependency it should be cleaned up (in another PR, I can help out in that regard) -
federated-catalog-core
is empty, except for a build file. on purpose? -
minor nit: in some files the Copyright seems to have been captured by BMW :) e.g.
ControlPlaneCoreExtension
- the original Copyright is by Microsoft. could have happened in others as well.
ok
These three points are strictly related, in my opinion every component should have a "core" extension that defines the base services and the default ones, for the control plane is Having a Seems a clean pattern to me. EDIT: I also created and forgot at issue for this 🥲 #1812
Ok
Fixed |
I like the
The problem there is that it is the same extension (
OK that's fine, but now we have
could we just merge/move everything from |
* Move contract and transfer core modules into control-plane * PR remarks * Fix CI * Extract instance store provision to a specific extension * Rename federated-catalog-cache to federated-catalog-core
What this PR changes/adds
move all the
core
folders into thecore
folder, grouped by the component they are needed by:Why it does that
To accomplish project structure review
Further notes
spi
by component #1832: we need to untangle the policy knots, let's talk about this in the discussion: Policy classes and interfaces structure #1836boot
andbase
are separated, they could be the same module, and they are used pretty much always together (unifying them plus refactoring the policy ones could avoid that uglycommon
folder)selector-store
intoselector-core
, as it was only a default provider for theDefaultDataPlaneInstanceStore
catalog
and substituted byfederated-catalog-core
control-plane-core
and inlineddefaults
, as it was pretty straightforward. Seems like thecore
module of a specific component is the right place where to declare default components to-be registered by extensionsselector-api
andselector-client
, they are extensions used to build adata-plane-selector
, but at the same time could a data-plane-selector exist without them? if not, I would put them as core modules fordata-plane-selector
, but they are completely fine as exception as they are.Linked Issue(s)
Closes #1809
Checklist
no-changelog
)