Splitting core functionality to separate plugins
See original GitHub issueHello, dear contributors and Cerebro users!
In this issue I want to raise awareness and hear your feedback about my thoughts. I see that complexity and amount of core features are growing and now it is a time to split everything and leave only really core features in the main repository and move other stuff to separate packages. For that purpose I’ve already created repositories for everything, that I think should be moved out, such as:
- https://github.com/KELiON/cerebro-ui – here I want to create another package, like
cerebro-tools
, but with common react-components, that could be reused in plugins. It will help to have consistent UI across all plugins
Repositories for plugins:
- https://github.com/KELiON/cerebro-basic-apps
- https://github.com/KELiON/cerebro-converter
- https://github.com/KELiON/cerebro-files-nav
- https://github.com/KELiON/cerebro-google
- https://github.com/KELiON/cerebro-google-maps
- https://github.com/KELiON/cerebro-math
- https://github.com/KELiON/cerebro-open-web
- https://github.com/KELiON/cerebro-mac-apps
- https://github.com/KELiON/cerebro-yandex-translate
Moving all plugins to separate repositories/packages will help to keep them small, clear, and testable. It will reduce size of application installer. Also, it will help to involve more contributors, because some developers could be more interested in helping with a specific plugin instead of dealing with huge amount of code and building process of main application.
At the same time it helps us with UX, because after that change every plugin in the system could be installed or uninstalled by the user (so, i.e. currently some users already uses duck-duck-go search, but disabling google is not possible). I thought about adding “disable” option, but why should we keep plugins, that are not used?
So, I want to track here updates of moving code out. Contributors are welcome to help – it will increase our speed of doing it! Just leave a comment if you start to extracting any plugin.
As a last step here we will have to add initial installing of some plugins and we have to decide which plugins should be included as core. As I see it, it will be:
- basic-apps (apps search and launch on windows and linux)
- osx-app
- math
- converter
- files navigation
- open web
So, basically translate and google maps plugins could be removed from core. Share you thoughts in comments!
Issue Analytics
- State:
- Created 6 years ago
- Reactions:3
- Comments:8 (2 by maintainers)
Top GitHub Comments
This looks like a great change 👍 It’d make developing new features a lot easier and quicker.
Tonight I’m going to extract the Google plugin 😄 Starting the math after that one is done
Going to extract google maps now