BrazilJS

Compartilhe isto post

Milhares de projetos baseados no npm foram quebrados

www.braziljs.org

Descubra mais de BrazilJS

Plataforma multicanal de produção e curadoria de conteúdo com foco nas Comunidades dev
Over 17,000 subscribers
Continue lendo
Iniciar sessão

Milhares de projetos baseados no npm foram quebrados

BrazilJS
23 de mar. de 2016
Compartilhe isto post

Milhares de projetos baseados no npm foram quebrados

www.braziljs.org
Compartilhar

[Atualização 24/03/2016 19:08] Nota oficial sobre o caso no Blog do npm. http://blog.npmjs.org/post/141577284765/kik-left-pad-and-npm

[Atualização 24/03/2016 10:28] Um post de um funcionário da Kik mostra um pouco dos bastidores da história. https://medium.com/@mproberts/a-discussion-about-the-breaking-of-the-internet-3d4d2a83aa4d#.e7lqgkw3l

Algo inusitado se instaurou na comunidade JavaScript/Node.js ontem (22/03/2016). Uma "simples" despublicação de um módulo no npm fez com que milhares de projetos espalhados pelo mundo todo passassem a quebrar o build.

Panic

Mas como isso foi possível? A história é um pouco mais complicada, pois não se resume a um problema técnico. O desenvolvedor Azer Koçulu que possuia mais de 250 módulos no npm, removeu todos os seus módulos do gerenciador de pacotes. Azer explica o motivo em um post feito no Medium. Acontece que um módulo específico, chamado Kik usava o mesmo nome de uma empresa. Azer foi contatado pela empresa que insistiu que ele removesse o pacote do npm. Azer não cedeu, mas a empresa contatou o npm diretamente, que por sua vez passou o módulo para a empresa, sem a permissão de Azer, segundo ele.

Essa situação me fez perceber que o NPM é uma ilha privada de alguém, onde o corporativismo é mais poderoso do que as pessoas, e eu faço open-source porque, poder ao povo.

Com a despublicação dos seus mais de 250 módulos do npm, Azer conseguiu quebrar milhares de projetos que dependiam de seus projetos. O projeto específico que quebrou até o build do popular Babel, foi o left-pad.

O curioso é ver como um módulo tão simples causou tantos problemas:

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; }  Obviamente, a essência do npm e do ecossistema Node.js é toda baseada em usar pequenos trechos de códigos, então essa não é a raiz do problema. Mas que a situação trouxe à tona outras questões filosóficas e técnicas, isso trouxe. O Laurie Voss, CTO do npm que inclusive palestrou na BrazilJS Conf de 2015, postou no Twitter sobre o caso.    Hey usuários do npm: o left-pad 0.0.3 foi despublicado, quebrando UM MONTE de builds. Para resolver isso, nós estamos re-publicando o módulo com o pedido de um novo dono.  Para resolver o problema, o npm re-publicou o módulo left-pad, porém na conta de outro usuário. Com essa atitude, o npm conseguiu ao menos reparar o dano nos builds quebrados espalhados pela internet. Não sabemos o que vem pela frente, mas o próprio Laurie comentou que vão dar mais atenção para casos desta natureza. Fato é que a despublicação de um módulo não pode simplesmente quebrar o build de todo mundo. Pelo Twitter, o Nando Vieira me explicou como funcina com as gems no mundo Rails:    você pode "despublicar" uma gem, mas o pacote permanece lá, disponível para quem já instalou.  Faz sentido, talvez seja esse o caminho que o npm deva seguir.
Compartilhe isto post

Milhares de projetos baseados no npm foram quebrados

www.braziljs.org
Compartilhar
Anterior
Próximo
Comentários
Topo
Novo
Comunidade

Sem Posts

Pronto para mais?

© 2023 BrazilJS
Privacidade ∙ Termos ∙ Aviso de coleta
Comece a EscreverObtenha o App
Substack é o lar para ótimas escritas