Как стать автором
Обновить

Комментарии 8

Я сходил почитал, зачем и почему они дропнули саппорт более старых нод: https://github.com/eslint/eslint/issues/17595

ответ: низачем.

По мне это просто преступные практики.

eslint тут ни при чём, это массовые практики. абсолютно все фронтовые инструменты дропают поддержку старых версий.
нода развивается, у старых версий наступает EOL, выходят новые версии. поддерживать зоопарк версий не ясно зачем. меньше версий — легче тестировать.

ответ: низачем

Так-то у всех исключенных из поддержки версий Node наступил EOL, это в первом же сообщении проводится. Не было бы его, вряд ли бы эти версии кинули из поддержки.

Вряд ли кто захочет есть кактус, когда ESLint после очередной фичи будет баговать на какой-нибудь 19-й Ноде, а её не поддерживают и фиксить из-за репортов ESLint не будут.

Ну, и тест-кейсы сократятся, тестировщиков разгрузят, само собой, да.

А теперь давайте порассуждаем как ответственные разработчики библиотеки или инструмента.

Согласно semver, если мажорная версия остаётся неизменной, новая версия библиотеки в идеале должна быть в состоянии заменить старую версию без значительных ухудшений. Как минимум - должен сохраниться API/ABI (в зависимости от ЯП и соглашений), как максимум - должны сохраниться гарантии относительно сложности алгоритмов, потребления памяти и т.д. Конкретно в экосистеме Node.js принято не ломать совместимость с поддерживаемой версией Ноды/NPM. Иными словами, если версия 7.2.5 поддерживала Node.js 18.x, то и версия 7.3.1 должна поддерживать Node.js 18.x (разве что могут потребовать более свежей минорной или патч-версии). Это правило выполняется не всегда, но чем более влиятельным является инструмент/библиотека, тем оно важнее.

ESLint это дофига влиятельный инструмент, де-факто стандарт линтинга JS-кода. Следовательно, если разработчики, выпустив новую МАЖОРНУЮ версию будут поддерживать в ней Node 18, им следует делать это пока ветка 9.x eslint-а не умрёт. Это может быть довольно долго.

Когда поднимается мажорная версия, самое время поломать интерфейсы - т.к. по сути не гарантируется совместимость ни в чём, можно считать что это "новый" инструмент/библиотека. По этому самое время завязаться на более свежие зависимости, в том числе Ноду.

...Конкретно в экосистеме Node.js принято не ломать совместимость...

Сел смотреть что там наделали, сижу рыдаю переделывая свой старый .eslintrc.json в новый единственный формат.
Ох, вот бы кто написал нормальное руководство по переезду на новый формат...

Поломали формат конфигов, поломали API плагинов (старые плагины никто не бросается переписывать). Всё в лучших традициях.

Кроме того, команда проекта отметила, что статус LTS находится у Node.js 20, поэтому версии 18.18 и 19 больше не поддерживаются

Смотю на наш легаси с node 8 и плачу =))

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости

Истории