JSCS, CST і новий початок

Ми нарешті випустили JSCS версії 3.0, і треба сказати, що крім ентузіазму, ми відчуваємо ще й деяку смуток. Над нової мажорної версії ми працювали багато і довго, це було досить цікаво і місцями захоплююче. Сумно від того, що це буде останньою версією JSCS.

За допомогою вас, JavaScript розробників, які допомагали JSCS, проект зміг досягти успіху. Близько 5 тисяч зірок на гітхабі і понад 27 тисяч скачувань npm пакета в день. Тим не менш, ми прийняли рішення не випускати нових мажорних версій і згодом припинити роботу над проектом.

Історія JSCS 3.0

Таке рішення було прийняти дуже складно. По довгому списку комітів видно, як багато ми працювали над JSCS 3.0. Але чого ви там не побачите — так це роботи над новим проектом CST, який ліг в основу JSCS 3.0.

Ми якось згадували CST анонсі JSCS 2.2.0. У якийсь момент JSCS, який, як і багато інші проекти, використовував esprima, зіткнувся з неможливістю проводити складні зміни в коді. Тоді ми і придумали CST (Concrete Syntax Tree), мета якого — вирішити сучасні проблеми інструментів для стильовий і логічної перевірки коду. З допомогою CST вже зараз можна видаляти невживані змінні, мертвий код… виправити все, що лінтер може виправити у ваших самих диких мріях :-)

Таким чином, ми написали власний Scope Analyzer. Переписали кожне правило в JSCS, фиксили, фиксили, боролися за продуктивність і знову фиксили… Так навіщо ж ми вирішили зупинитися на третьої версії як на останній?

Вартість підтримки

Проекти на кшталт JSCS вимагають величезного вкладення енергії і часу. Рев'ю пулл-реквестов, виправлення багів, написання документації. Як і підтримка веб-сайту проекту. Як і відповіді (бувало, що і по ночах) на запитання користувачів в Gitter.

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

Приєднання до ESLint

Як ми побачили, ESLint і JSCS вже вирішують різними способами одну і ту ж проблему. А співтовариство з більшою радістю буде використовувати один лінтер, а не розриватися між двома різними. І ми вирішили допомогти спільноті.

Замість того, щоб продовжувати змагатися з ESLint, ми вирішили приєднатися до ESLint і привнести в нього свій досвід і інструменти, які ми розробили за час розвитку JSCS.

Тому сьогодні ми раді поділитися з вами новиною про те, що більша частина команди розробки JSCS приєднується до команди ESLint. Ми продовжимо підтримувати JSCS три наступних місяці: виправляти баги, але без нових фіч. Репозиторій JSCS нікуди не подінеться, і ви завжди можете форкнуть і використовувати код за своїм розсудом. Ми також продовжимо працювати над CST: ми віримо, що це майбутнє JS-лінтер. Ми сподіваємося, що зможемо допомогти ESLint розробити якісний і функціональний механізм автоматичного виправлення помилок стилю і логіки.

І тим не менш

Ми будемо раді, якщо ви допоможете нам протестувати CST у справі і оновіть свій JSCS до версії 3. Нам дуже цікаво, як CST себе покаже в різних проектах.

В майбутньому рекомендуємо вам переходити на ESLint. Ми працюємо з командою ESLint над інструментами та документацією, які зроблять перехід менш болючим. В ідеалі перехід взагалі буде непомітним :-)

Подяки

Ми дуже вдячні всім, хто допомагав нам з JSCS. Тільки завдяки вам JSCS зміг стати таким популярним. І тепер ми запрошуємо вас приєднатися до нас в роботі над ESLint.

Команда розробників JSCS

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.