Например, у меня есть библиотека с открытым исходным кодом, который я написал несколько лет назад в ES5, но я хочу, чтобы обновить его использовать ES6.
Прежде всего, вам нужно решить, будете ли вы продолжать поддерживать версию вашей библиотеки ES5 или нет. Если да, то вы, вероятно, закончите с двумя ветвями вашей библиотеки, которые работают с ES5, и те, которые требуют ES6, и используют возможности ES6. Вам нужно будет решить, сколько усилий вы вложите в версию ES5 и как долго. Предположительно, вы исправили бы значительные ошибки, обнаруженные в этой версии, по крайней мере в течение некоторого периода времени, и, в конце концов, вы забудете эту версию без новых изменений/исправлений.
Если эта библиотека предназначена для node.js в качестве целевой среды, то вы можете просто сразу проверить свою библиотеку ES6, чтобы узнать, доступна ли соответствующая среда при запуске, а если нет, то войдите в консоль и выполните исключение из значимого сообщения в качестве ошибки, чтобы сообщить разработчику, если у них неправильная среда для этой библиотеки.
Если вы не собираетесь продолжать поддерживать версию библиотеки ES5 с дополнительными функциями или исправлениями, то, вероятно, вы должны разветвить ваш репозиторий на последней версии, предназначенной для ES5, чтобы сообщество разработчиков с открытым исходным кодом могло продолжать поддерживать/усовершенствуйте его, если отдельно, если они этого захотят.
Должен ли я сказать своим пользователям, что если вы хотите использовать моя библиотека собирается вперед вы будете версия узла должен быть повышен, а?
Вам не нужно ничего делать. Это зависит от вас, чтобы сделать то, что, по вашему мнению, подходит для вашей библиотеки и вашей ситуации. Поскольку это открытый исходный код, вы также можете подумать о том, что хотят сделать ваши авторы с открытым исходным кодом.
Какова предпочтительная практика сообщества для решения этой проблемы?
Не существует конкретного предпочтения сообщества, которое одинаково хорошо относится ко всем библиотекам или ситуациям. Одной из исходных точек для поддержки node.js является просмотр того, что node.js делает для своих собственных версий, и посмотреть, как долго он поддерживает постоянную поддержку более старых версий. Вам не обязательно быть таким щедрым (это зависит от вашей ситуации), но вам, вероятно, не нужно быть более щедрым, чем сам node.js с поддержкой более старой версии, поскольку на тот момент разработчик будет запускать старую версию node.js, который больше не поддерживает себя. Это взгляд на узел.Поддержка js-версии: https://github.com/nodejs/LTS.
В этой диаграмме вы заметите, что все версии до версии v4 заканчиваются в декабре 2016 года. И были значительные возможности ES6 (не все) в v4, поэтому, если вы могли бы скомпоновать функции ES6 в v4, вероятно, было бы разумно потребовать node.js v4 довольно скоро. Если вы хотите использовать функции ES6, которые находятся только в node.js v6, вам действительно нужно будет опросить свою пользовательскую базу, чтобы узнать, в какой степени это было бы тяжело, если для вашей ветви с новой технологией требуется узел. js v6. node.js v6 сейчас идет LTS (долгосрочная поддержка), так что это действительно начало самого продолжительного цикла поддержки.
Это полностью зависит от того, какая библиотека это и какие функции она использует. Иногда бывает нормально нажимать пользователей на более поздние версии Node, иногда это не так. Иногда рекомендуется поддерживать предыдущую основную версию для обратной совместимости, иногда это не так. Если функции хорошо переносятся на ES5, у вас всегда есть './Dist' как' main', чтобы вы никого не расстроили. – estus