Hi Clement,
On 23 Feb 2018, at 07:24, Clément Aubin
<aubincleme(a)gmail.com> wrote:
Hi devs,
In October / November of last year, we integrated the Keypress JS
library as a replacement of OpenJS Keyboard in order to better handle
keyboard shortcuts in the platform and its extensions and add new
shortcut types (such as "sequence" shortcuts) useful for [1].
Moving to this library has also brought some bugs, such as XWIKI-15024
[2]. Currently, that bug can be fixed upstream by the library
maintainer, that unfortunately isn't very active on the project.
Choosing a library that isn't properly maintained might have been a
problem that we didn't really thought of when switching to Keypress JS.
In order not to be stuck by waiting for upstream releases, I propose
that we fork the library, and fix the problem raised by XWIKI-15024
ourselves by reviewing and integrating a patch proposed upstream, but
not yet merged [3]. Of course this solution has pros and cons, the main
downside being that we will need to maintain our fork.
Also note that, if we fork the project, we will have to choose either to
keep the source code in its original form (which is CoffeeScript [4]) or
to translate the code into JavaScript, which is more maintainable for
us, but that will probably not allow us to integrate other patches from
the official project branch.
WDYT ?
+1 to do a quick fork to fix XWIKI-15024 because it’s a blocker so we need to do whatever
it takes to fix ASAP (ASAP = in 1 or 2 days).
-1 to keep this fork. This is just painful and costly. It means we’ve picked the wrong JS
library for shortcuts and that we’ve picked an unmaintained one. Bad choice :( Thus I’d
recommend to review existing JS libraries more to try to find a better one (we don’t
necessarily need all the bells and whistles of KeypressJS, we just need to be able to add
our developer shortcuts). Imagine if we had to do this for every library we pick :) That’s
why we need to be careful to only pick maintained libs and move away from them when
they’re not anymore. It’s definitely not the objective of XWiki to maintain JS code for
supporting shortcuts (if we can avoid it ofc, meaning that if there aren’t any libs out
there we won’t have the choice but we need to search again for one first).
-1 to convert to JS for now. We need to bring the minimal modification in the hope that
the PR we submit to Keypress JS gets reintegrated.
Thanks
-Vincent