2016/03/23

11 linhas de Javascript lançam o caos na Internet


Pode um developer independente causar o pânico em milhares de projectos usados por milhões de pessoas? Pode; e bastaram 11 linhas de Javascript para o fazer - ou melhor, o desaparecimento dessas mesmas linhas.

Actualmente, qualquer projecto minimamente complexo recorre à utilização de módulos já existentes para as mais variadas funções. Só que essa dependência pode também tornar-se num grande problema, onde algo tão insignificante como uma função para adicionar espaços à esquerda de um pedaço de texto.

Azer Koçulu é um developer que disponibiliza centenas de módulos javascript deste tipo em open-source, para que todos os possam utilizar. Uma das formas de os usar é através do package manager NPM, e foi aqui que começaram os problemas...

Um dos seus módulos, entre as mais de duas centenas que disponibiliza, chama-se "Kik". Recentemente, Azer recebeu uma carta dos responsáveis pela app com o mesmo nome, para que removesse este módulo; coisa que recusou fazer. Então, os advogados viraram-se para os administradores do NPM, e fizeram com que o módulo fosse retirado de qualquer maneira. Apologista do open-source e da liberdade de disponibilização do seu código, Azer não gostou da atitude, e em retaliação retirou todos os seus módulos do NPM.

O problema é que entre eles se encontrava um que se chama left-pad, um pequeno módulo usado para adicionar espaços (ou outros caracteres) à esquerda de um bloco de texto, e que é incrivelmente popular, sendo usado por muitos milhares de projectos (num só mês teve quase 2.5 milhões de acessos), incluindo o Node e Babel - com o seu desaparecimento a fazer com que todos eles deixassem de funcionar.

Os responsáveis pelo NPM optaram por repor o código numa acção "excepcional" para tentar minimizar os dados... Mas servirá o caso para alertar para todos os potenciais perigos das inúmeras e inevitáveis dependências que os projectos actuais têm de muitos outros projectos (e para pedir aos advogados que deixem de ser tão picuinhas quanto aos nomes usados por projectos open-source. :P)

1 comentário:

  1. E de futuro esperem mais situações destas. Tenho visto dezenas de projectos que nem sequer fazem build se não tiverem online ou se a pessoa não colocar num repositório local, portanto, isto é só o começo.

    ResponderEliminar