-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
SolidusAdmin Journal
Elia Schito edited this page Jun 8, 2023
·
3 revisions
This page will keep track of decisions and considerations developed while working on solidus admin. This is not intended as formal documentation but rather as a way to come back and understand why a direction was taken.
- We don't want to end up with "Deface"-like monkeypatching of templates
- We still want to give maximum flexibility
- We want to allow customizing a helper method without having to override the whole component
- We want an external API for the component registry in which using DRY.rb or not is an implementation detail
- We need to keep extensibility as the base of our design, and not an afterthought
- Allow overriding a helper method on an existing component by inheriting from it
- Keep extensible helper methods in a separate module, and include it in the components
- Attempt to strictly control what can be extended, and how (e.g. have preferences for controlling TailwindCSS and import-maps)
- pro: it's possible to use deprecation cycles
- con: we have to maintain the preferences and act as a middle-man (see webpacker as a cautionary tale)
- Copy configurations to the host application, and allow them to be modified there, like we do with the starter frontend
- pro: extreme flexibility and full control for the host application
- con: extreme flexibility and full control for the host application (things need to be checked manually during upgrades)
- Attempt to provide a starting point and allow the host application to override specific parts, replacing it completely would be a last resort we don't want to encourage nor support
- pro: we own our side of the configuration while still allowing full flexibility
- con: we need to be careful about what we declare as supported and what we don't
- Start this wiki-page to keep track of decisions and considerations
- Use markdown documents (similarly to RFCs or Readme-driven-development) to better convey the intent and the reasoning behind a proposal