Каковы различия между долгосрочной поддержкой (LTS) и стабильной версией Node.js?
Первоначально задавался вопрос: в чем разница между веткой Node.js 4.x с LTS (долгосрочная поддержка) и веткой 5.x (в списке стабильных)?
Но это одинаково важно для понимания разницы между 6.x и 7.x и, в будущем, 8.x и 9.x
Вообще, я всегда склоняюсь к последней версии для функций и производительности (как я сейчас много делаю с ES6 / ES7). Есть ли информация о том, насколько готово производство "стабильных" филиалов?
2 ответа
Чтобы понять разницу, вам нужно понять, почему существует версия Node с долгосрочной поддержкой (LTS).
Node LTS в первую очередь нацелен на корпоративное использование, где может быть больше сопротивления частым обновлениям, обширным процедурам закупок и длительным испытаниям и требованиям к качеству.
От Рода Вагга, члена рабочей группы Node LTS:
Смысл создания плана LTS для Node заключается в том, чтобы основываться на существующем стабильном цикле выпуска, поставляя новые версии по предсказуемому расписанию с четко определенным расширенным жизненным циклом поддержки. Хотя это может показаться противоречащим традиции с открытым исходным кодом "выпускать раньше, выпускать часто", это является обязательным требованием для групп разработки и эксплуатации корпоративных приложений. Это также влияет на компании... которые оказывают профессиональную поддержку Node.js.
https://medium.com/@nodesource/essential-steps-long-term-support-for-node-js-8ecf7514dbd
Официальное сообщение Node, упомянутое в одном из комментариев, также прекрасно объясняет это:
https://nodejs.org/en/blog/community/node-v5/
Иногда неправильно понимают, что выпуски с нечетным номером версии (v5, v7) являются "бета-версией" следующего выпуска LTS. Это соглашение используется в другом проекте, но не в Node и вводит в заблуждение. Фактически, следующий выпуск LTS выбирается из конкретной версии текущей версии, и обычно это будет четный выпуск версии (v6, v8). Дело не в том, что последние версии являются бета-версиями, а в том, что релизы LTS удовлетворяют конкретным требованиям, которые есть в некоторых организациях.
Для получения справочной информации ознакомьтесь с выпусками расширенной поддержки Firefox ( https://www.mozilla.org/en-US/firefox/organizations/faq/) или выпусками LTS в Ubuntu ( https://wiki.ubuntu.com/LTS)., Я не думаю, что кто-то предложил бы, чтобы последняя версия Firefox была бета-версией, и что большинство пользователей должны придерживаться старых версий ERS.
Как правило, если вы в состоянии следить за последними стабильными и будущими выпусками Node, вы должны это делать. Это стабильные и готовые к работе релизы с отличной поддержкой сообщества. Нестабильная и экспериментальная функциональность сохраняется за флагами сборки и времени выполнения и не должна влиять на ваши повседневные операции.
Как правило, я всегда склоняюсь к последней версии для функций и производительности (как я сейчас делаю ES6 / ES7)
Это говорит о том, что стабильные версии и более поздние будут хорошо соответствовать вашим потребностям. Это даст вам доступ к новейшим и лучшим языковым функциям, предоставляемым базовым движком JavaScript (V8 или Chakra).
Примечательно: существенная разница между v4 (и более ранними версиями) и v5 заключается в том, что v4 поставляется с npm v2, тогда как v5 поставляется с npm v3. v3 npm содержит некоторые потенциально разрушительные изменения для вашего проекта в том, как он обрабатывает peerDependancies. Способ, которым npm v3 теперь пытается установить зависимости как можно более простыми и избегать дубликатов, может повлиять на ваши проекты, но был большим благом для пользователей Windows, так что это также может повлиять на принятие вами решений.
Типы релизов
Текущее: В стадии активной разработки. Код для текущего выпуска находится в ветке его основного номера версии (например, v10.x). Node.js выпускает новую основную версию каждые 6 месяцев, что позволяет вносить критические изменения. Это происходит ежегодно в апреле и октябре. Релизы, выходящие каждый октябрь, имеют срок поддержки 8 месяцев. Релизы, выходящие каждый апрель, конвертируются в LTS (см. Ниже) каждый октябрь.
LTS: Релизы, получающие долгосрочную поддержку, с упором на стабильность и безопасность. Каждая основная четная версия станет выпуском LTS. Релизы LTS получают 18 месяцев активной поддержки LTS и еще 12 месяцев обслуживания. Строки выпуска LTS имеют кодовые имена в алфавитном порядке, начиная с v4 Argon. Нет никаких критических изменений или дополнений функций, за исключением некоторых особых обстоятельств.
4.x - это версия, которая в настоящее время поддерживается, аналогично производственному выпуску. Версия 5.0 стабильна, но это грядущая версия и должна рассматриваться как бета-версия или кандидат на выпуск. Таким образом, в настоящее время вы не видите 5.0 в качестве опции в таких вещах, как Amazon Elastic Beanstalk.
Как только строка стабильного выпуска становится LTS, в этот выпуск не будут добавлены новые функции или критические изменения.