springload / draftail

📝🍸 A configurable rich text editor built with Draft.js

Home Page:https://www.draftail.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Is this project dead?

gjvoosten opened this issue · comments

Seeing as:

  • the last functional commit was on August 15, 2019 (when 1.3.0 was released), now more than a year ago
  • there's a 1.4.0 milestone with 0% progress and no deadline
  • and one of the more pressing issues ( #213 ) has still not been addressed (and isn't even part of the 1.4.0 milestone),

should this project be considered dead, @thibaudcolas ?

Hey @gjvoosten, good question! Sorry I totally missed this issue, feels like an important one for me to answer.

The TL;DR; is – Draftail isn’t dead as far as I’m concerned, we’re using it in thousands / tens of thousands of sites for https://github.com/wagtail/wagtail. The caveat to this is that I’m the only person maintaining Draftail more or less since v1.0.0 2 years ago, and doing so in my free time, which I’ve been getting less and less of since then.

I’ve known this would be a problem more or less since 2 years ago, and this is in part why Draftail is designed as a relatively thin layer on top of Draft.js, and more recently on top of draft-js-plugins. Not to say I got it right, but at least that’s the idea.

Since this date you mention I’ve more recently worked on:

The 1.4.0 milestone really is just a placeholder for me to keep track of what I "intend to do next" – there is no progress or deadline simply because this is heavily dependent on my availability, and I have no compelling reason to create frequent releases unless there are pressing issues.

On Draft.js 0.11 support (#213) – you’re right that this is the most pressing issue. There are a few reasons why this has dragged on:

  • Rightly or not, I have very little trust in the quality of Draft.js releases. This means that I’ll only do upgrades in Draftail once I’ve done extensive testing with a new release, and am confident there are no regressions for end users (or if there are, they are at least accounted for and documented in #138). Again, Draftail is used in thousands of projects via Wagtail.
  • Related to the above, the Draft.js project is making it particularly hard to keep track of the contents of their releases – starting in v0.11.0, their CHANGELOG is essentially the project’s commit history, with lots of tooling changes that are completely irrelevant to people trying to know what has changed in a release. There are no indications of breaking changes, and the one thing they had announced as a breaking change (the Entity API) ended up not being one. This means I’ve had to spend lots of time essentially second-guessing their CHANGELOG and trying to make sense of what has actually changed that I would need to account for in Draftail.
  • Because of the dependency on https://github.com/draft-js-plugins/draft-js-plugins, this would likely be a breaking change for Draftail users. I want to avoid unnecessary breaking changes.

The takeaway from all of this is that there hasn’t been enough of a compelling reason for me to press on with the upgrade as I was initially planning to back in 2019.

Now the above has changed recently with the release of React 17, which removes deprecated APIs that Draft.js v0.10 was dependent on, and they’ve since stopped using in v0.11 – meaning there is a very compelling reason for me to go through this now, assuming https://github.com/draft-js-plugins/draft-js-plugins is compatible.


Short term, I have some time off in November, and I intend to spend a couple of days to either make backwards-compatible improvements to Draftail (the elusive v1.4.0), or do this major release with v0.11 compatibility, or who knows maybe even both.

Anyway, I hope this answers your question. I’ll keep this issue open because I’d welcome feedback on what would be good ways to communicate the state of maintenance of this project, or other ways that would help Draftail has a bright future, even if it’s kept on being slow-moving.

I’ll close this now as I believe I’ve answered any questions in the previous comment, and there hasn’t been follow-up discussions. I’ve just published two releases which contained a few bug fixes and small improvements. I’ve updated #213 with my progress from November, and will try to keep that ticket up to date in the future too. I would still appreciate feedback if people think there would be good ways to communicate how much / little maintenance this project gets.

The next things I’ll look into are #429 (#388) and #438 (#436). I’m also interested in #202 as a nice-to-have feature, and #399 as something to investigate (hopefully briefly).