We realised that the current contents of https://github.com/ckeditor/ckeditor5-core can be split into three, highly independent parts: application, editing engine and the UI. They are now more or less kept in separate directories and the code is well decoupled already, but we feel that a split into separate packages will further clarify the situation.
The new separation:
The application: https://github.com/ckeditor/ckeditor5. The repository right now contains only the builder, dev tasks and a such. The base of the application could stay in ckeditor5-core, but then this would be an empty package, because there are just a couple of classes. Therefore, there's also no problem with adding them to ckeditor5.
The engine: https://github.com/ckeditor/ckeditor5-engine. This repository will contain all the data, data manipulation, rendering, and editing logic. This package will be usable without the application (ckeditor5 package) in specific cases, like in server-side services.
The UI: https://github.com/ckeditor/ckeditor5-ui. This repository will be totally decoupled from the ckeditor5 and ckeditor5-engine packages. This will ensure that a totally different UI can be used with the editor, without a need to reimplement the existing components. The developer will use the application and engine packages and his/her UI.
The application and engine will be called "the core", so the features following this logic, will implement their "core" and "UI" separately. This answers #138.
It all started in https://github.com/ckeditor/ckeditor5-core/issues/242 and https://github.com/ckeditor/ckeditor5-design/issues/138.
We realised that the current contents of https://github.com/ckeditor/ckeditor5-core can be split into three, highly independent parts: application, editing engine and the UI. They are now more or less kept in separate directories and the code is well decoupled already, but we feel that a split into separate packages will further clarify the situation.
The new separation:
The application and engine will be called "the core", so the features following this logic, will implement their "core" and "UI" separately. This answers #138.