JSCS 3.0 наконец-то вышел, и мы оба очень взволнованы и немного опечалены. В восторге, потому что эта новая версия - это то, над чем мы очень много работали, и грустно, потому что это будет последняя версия JSCS.

С вашей помощью компания JSCS добилась успеха. У нас более 5000 звезд на GitHub и более 27000 скачиваний npm каждый день. Тем не менее, мы приняли трудное решение отказаться от JSCS.

История АОС 3.0

Это решение далось нам нелегко, мы очень усердно работали над JSCS 3.0, как вы могли заметить по длинному списку коммитов. Из коммитов не ясно, сколько дополнительной работы мы (самое большое спасибо основателю JSCS - @mdevils) вложили в новый проект, который поддерживает JSCS: CST.

Для нас было невероятно важно иметь рабочую версию CST (конкретное синтаксическое дерево). CST упрощает автоматическое исправление более сложных проблем, таких как неиспользуемые переменные, удаление мертвого кода и всего, что должен исправить линтер вашей самой смелой мечты. (Мы писали больше о CST в нашем выпуске 2.2.0.)

Мы также написали собственный анализатор области видимости CST, переписали каждое правило в JSCS, исправили множество ошибок и много работали над производительностью. Так зачем же прикладывать всю эту работу только для того, чтобы обесценить JSCS?

Стоимость технического обслуживания

Такие проекты, как JSCS, требуют больших усилий - проверки запросов на вытягивание, сортировки проблем, написания документации и поддержки веб-сайта. Мы также тратили много времени (иногда на ночь), оказывая поддержку через Gitter. И, конечно же, есть также работа по продолжению написания кода и тестов для этого кода.

Обслуживание АОС отнимает много времени, и вся команда работает над этим в свободное время (ночи и выходные), работая полный рабочий день. Поскольку мы видим меньше пользователей, участников и отзывов, нам становится все труднее продолжать работу.

Присоединение к ESLint

Мы пришли к выводу, что ESLint и JSCS действительно решают один и тот же набор проблем очень похожими способами. Сообщество, похоже, хочет использовать единый линтер, и мы хотим, чтобы это стало реальностью.

Мы подумали, а зачем продолжать «соревноваться» с ESLint? Почему мы не можем объединить усилия для создания наиболее эффективного, надежного и многофункционального инструмента? Почему бы не объединить команды, работать вместе и распределить тяжелую работу между большим количеством людей?

Вот почему мы рады сообщить, что, начиная с сегодняшнего дня, большинство специалистов по сопровождению JSCS присоединятся к команде ESLint. Мы продолжим поддерживать JSCS в течение трех месяцев, исправляя ошибки, но не будем внедрять никаких новых функций. Мы также продолжим работу над проектом CST, поскольку считаем, что это важная часть будущего линтинга JavaScript. Мы надеемся, что сможем привнести это совершенство в сам ESLint или использовать наш опыт работы с ним, чтобы выяснить, как улучшить автофиксирование ESLint.

В конце начала

Как упоминалось ранее, мы продолжим поддерживать JSCS в течение следующих трех месяцев, исправляя существенные ошибки. Репозиторий JSCS останется на месте, поэтому вы можете его разветвить или использовать код в противном случае.

Переход с JSCS 2.x на 3.0 должен быть таким же простым, как обновление вашей версии в package.json. В конце концов, вы захотите использовать вместо этого ESLint. Мы работаем с командой ESLint над созданием некоторых инструментов и процессов, чтобы максимально упростить переход. Мы надеемся, что это будет плавное обновление, и вы даже не заметите :).

Прощай и спасибо

Мы очень благодарны всем замечательным участникам этого выпуска (и предыдущих). Благодаря вам компания JSCS достигла такого успеха, и мы хотели бы пригласить вас присоединиться к нам и внести свой вклад в развитие ESLint в будущем.