НовостиОбзорыСобытияIT@WorkРеклама
Open Source:

Блог

Имя и пакеты

Пару дней назад произошла история, доказавшая на практике тезис о том, что к выбору имени свободного проекта следует относится максимально серьёзно. Поскольку последствия могут оказаться действительно глобальными.

[spoiler]Началось всё с того, что программист Азер Кочулу получил письмо от компании Kik, в котором содержалась просьба переименовать написанную им утилиту, которую он назвал kik и распространял через систему NPM. Поскольку программист отказался это делать, то юристы фирмы связались с администрацией NPM, которая переименовала приложение без ведома программиста.

Программисту, понятное дело, это совершенно не понравилось. Поэтому он удалил из NPM все пакеты, которые были им опубликованы на этом сервисе. Причём, написал, что сделал это не сгоряча, а совершенно осознанно, поскольку теперь для него NPM не является тем проектом, с которым можно сотрудничать.

В результате перестали работать все программы, которые зависели от его пакетов. Он принёс их авторам свои извинения и предложил два способа исправить такую неприятную ситуацию.

Тем не менее, реализация «обходных путей» требует времени, в течении которого пользователи будут сталкиваться с ошибками установки. И совершенно не очевидно, что они согласятся потерпеть какое-то время, а не найдут другие решения.

Кто тут прав, а кто виноват? Наверное, на этот вопрос нельзя дать однозначного ответа.

Азер Кочулу ничего не знал про компанию Kik, когда давал имя своей утилите. Компании не нравится использование их названия для другого продукта, хоть и получилось это случайно. А администрация NPM, скорее всего, вообще устранилась от решения таких задач, считая, что разработчики как-то сами со всем этим разберутся.
Олег Фатеев
"Он принёс их авторам свои извинения и предложил два способа исправить такую неприятную ситуацию." -- Так что ж ничего в публикации не сказано про эти 2 способа?

Один из них - просто заберите себе этот код:

module.exports = leftpad;
function leftpad (str, len, ch) {
   str = String(str);
   var i = -1;
   if (!ch && ch !== 0) ch = ' ';
   len = len - str.length;
   while (++i < len) {
        str = ch + str;
   }
   return str;
}