-
-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Labels
Epicdomain:dxThis issue reports a developer experience problem or possible improvement.This issue reports a developer experience problem or possible improvement.domain:integration-dxThis issue reports a problem with the developer experience when integrating CKEditor into a system.This issue reports a problem with the developer experience when integrating CKEditor into a system.domain:tssquad:coreIssue to be handled by the Core team.Issue to be handled by the Core team.type:taskThis issue reports a chore (non-production change) and other types of "todos".This issue reports a chore (non-production change) and other types of "todos".
Milestone
Description
Back in 2015 when we were bootstrapping CKEditor 5 TypeScript wasn't yet mature enough and didn't yet seem as a safe choice taken the long horizon of CKEditor 5's life and fate of e.g. CoffeeScript or Backbone (that were the popular choices at that time).
Nowadays, for a large scale, complex project such as CKEditor 5, TypeScript is a clear choice. We've been actually looking at it for a longer time but it was clear that we need to pick the right moment for a migration. The moment has come 🥳
The main goals of the migration:
- Improving the DX for the community by providing typings for CKEditor 5. This is by far the most popular request on our issue tracker and it's visible how important it is to the community also by the amount of work put by many people, including heroes such as @fedemp. Providing official typings will benefit integrators and plugin developers. It will improve the DX when working with CKEditor 5 and stability of the solutions.
- Improving the core team experience and toolset. While using TypeScript will naturally make us happy (we really wanted to migrate for a long time 😄), we believe that this will have a positive outcome for everyone. CKEditor 5 is a complex project with a large API. We're rigorously documenting the types from day one, but we had to resort to JSDoc for that. It helps during development, but it's nowhere near what we'll have with TypeScript. Type validation, better API documentation, better suggestions, refactoring options – this will all speed up the development and potentially improve the quality even more.
We're right now cooking a plan of action, so I won't share more details for now. Some two last points that I want to mention for now are:
- We're determined to not break the backward compatibility (except minor aspects). We are aiming at making the migration for a great majority of JS-based projects that used CKEditor 5 for now seamless.
- This project will take several months due to the scale of CKEditor 5. We'll be migrating step by step, most likely starting from the infrastructure and one or two first packages.
- We'll use this ticket for further developer as Typings for TypeScript #504 was already too long and does not exactly cover the entire scope of the project for us. We'll start sharing our ideas and questions on what should we deliver here in this thread and potentially in Typings for TypeScript #504 for better visibility too. But this one is the one.
- Once again I'd like to thank @fedemp and everyone else who contributed to the community-driven DefinitelyTyped. For at least a couple of months it's still the place to go when you need typings for CKEditor 5.
Keep your fingers crossed and stay tuned for more information.
qbakozak, Sora2455, AirBair, aprantl, nbeag and 27 moreJake-Thomas-Hall, phrxst, nbeag, namoscato, rooby and 27 morefedemp, dkrahn, chrismyer, jeangovil, Lenny4 and 7 morejodator, ma2ciek, nbeag, tony, chrismyer and 6 more
Sub-issues
Metadata
Metadata
Assignees
Labels
Epicdomain:dxThis issue reports a developer experience problem or possible improvement.This issue reports a developer experience problem or possible improvement.domain:integration-dxThis issue reports a problem with the developer experience when integrating CKEditor into a system.This issue reports a problem with the developer experience when integrating CKEditor into a system.domain:tssquad:coreIssue to be handled by the Core team.Issue to be handled by the Core team.type:taskThis issue reports a chore (non-production change) and other types of "todos".This issue reports a chore (non-production change) and other types of "todos".