Atenção:
O eduCAPES é um repositório de objetos educacionais, não sendo responsável por materiais de terceiros submetidos na plataforma. O usuário assume ampla e total responsabilidade quanto à originalidade, à titularidade e ao conteúdo, citações de obras consultadas, referências e outros elementos que fazem parte do material que deseja submeter. Recomendamos que se reporte diretamente ao(s) autor(es), indicando qual parte do material foi considerada imprópria (cite página e parágrafo) e justificando sua denúncia.
Caso seja o autor original de algum material publicado indevidamente ou sem autorização, será necessário que se identifique informando nome completo, CPF e data de nascimento. Caso possua uma decisão judicial para retirada do material, solicitamos que informe o link de acesso ao documento, bem como quaisquer dados necessários ao acesso, no campo abaixo.
Todas as denúncias são sigilosas e sua identidade será preservada. Os campos nome e e-mail são de preenchimento opcional. Porém, ao deixar de informar seu e-mail, um possível retorno será inviabilizado e/ou sua denúncia poderá ser desconsiderada no caso de necessitar de informações complementares.
Metadados | Descrição | Idioma |
---|---|---|
Autor(es): dc.contributor | Polato, Ivanilton | - |
Autor(es): dc.contributor | Wiese, Igor Scaliante | - |
Autor(es): dc.contributor | Polato, Ivanilton | - |
Autor(es): dc.contributor | Wiese, Igor Scaliante | - |
Autor(es): dc.contributor | Silva, Marco Aurélio Graciotto | - |
Autor(es): dc.contributor | Ré, Reginaldo | - |
Autor(es): dc.creator | Venturini, Daniel | - |
Data de aceite: dc.date.accessioned | 2025-08-29T12:14:09Z | - |
Data de disponibilização: dc.date.available | 2025-08-29T12:14:09Z | - |
Data de envio: dc.date.issued | 2021-10-04 | - |
Data de envio: dc.date.issued | 2021-10-04 | - |
Data de envio: dc.date.issued | 2020-11-26 | - |
Fonte completa do material: dc.identifier | http://repositorio.utfpr.edu.br/jspui/handle/1/26106 | - |
Fonte: dc.identifier.uri | http://educapes.capes.gov.br/handle/capes/1091529 | - |
Descrição: dc.description | Context: Packages hosted on npm create a dependency network, where client packages use some recource from provider packages. Occasionally, providers introduce breaking changes, which are changes that may cause defects on clients. These changes should be only introduced in major level of Semantic Versioning, but when introduced in minor or patch levels, these may cause issues on clients. Objective: This work proposes a study about breaking changes in minor and patch levels on npm . Our objectives are: (RQ1) to measure the breaking change occurrence, (RQ2) to show the most common breaking change types, and (RQ3) to analyze how clients recover themselves. Method: From a sample of clients from npm , we restored the releases and installed the latest version of providers that the client accepted in the release timestamp. Following, we executed the npm install/test scripts. All releases that raised an error were analyzed, and the client and providers code and repositories was verified to check whether the error was raised by a provider, characterizing a breaking change. Results: (RQ1) Altogether, 13.9% of client releases are impacted by breaking changes, which have happened year after year and 54.9% of provider releases with breaking changes have more commits than their other releases. (RQ2) The majority of breaking changes are fixed by providers in patch levels and are documented in 78.1% of cases, mainly on issues, causing the fix to be 3.3 time faster. (RQ3) While indirect providers are the ones that introduces the majority of breaking changes, clients fix these in 39.1% of cases and they prefer to do an upgrade on the provider’s version without changing the range. Conclusions: Breaking changes do really happen in minor and patch releases. Previous studies focused only on API breaking changes, while this study used clients’ tests to find any types of breaking changes. We presented several suggestions to developers to improve their interaction with the npm ecosystem. | - |
Descrição: dc.description | Contexto: Os pacotes hospedados no npm criam uma rede de dependências, qual um pacote cliente utiliza algum recurso de um pacote provedor. Por vezes, os provedores introduzem breaking changes, que são alterações que podem causar defeitos nos clientes. Essas alterações deveriam ser publicadas apenas no nível major do Versionamento Semântico, mas quando são introduzidas nos níveis minor ou patch , podem causar defeitos inesperados nos clientes. Objetivo: Este trabalho propõe um estudo sobre breaking changes em níveis minor e patch no npm. Os objetivos são: (QP1) mensurar a ocorrência de breaking changes, (QP2) categorizar as modificações mais usuais causadoras de breaking changes e (QP3) analisar como os clientes se recuperam das breaking changes. Método: De uma amostra de clientes do npm foram restauradas as releases e instalada a última versão dos provedores que o cliente aceitava no momento da release. Em seguida, foram executados os scripts npm install/test . Para todas as releases que resultaram em erros, foram analisados os códigos e os repositórios dos clientes e dos provedores para verificar se o erro foi causado por um provedor, ou seja, uma breaking change. Resultados: (QP1) Ao todo, 13,9% das releases dos clientes são impactadas por breaking changes que estão ocorrendo ano após ano, e 54,9% das releases dos provedores com breaking changes possuem mais commits que as suas demais releases. (QP2) A maioria das breaking changes são corrigidas pelos provedores em níveis patch e são documentadas em 78,1% dos casos, principalmente em issues, o que faz com que a correção ocorra 3,3 vezes mais rápida. (QP3) Enquanto os provedores indiretos são os que mais introduzem as breaking changes, os clientes as corrigem em 39,1% dos casos e preferem realizar um upgrade na versão do provedor, mas sem alterar o range. Conclusões: As breaking changes realmente ocorrem em releases minor e patch. Enquanto estudos anteriores focaram em alterações de APIs, esse estudo utilizou os testes dos clientes para encontrar qualquer tipo de breaking change. Finalmente, apresentamos várias sugestões para os desenvolvedores melhorarem suas interações com o ecossistema do npm. | - |
Formato: dc.format | application/pdf | - |
Idioma: dc.language | pt_BR | - |
Publicador: dc.publisher | Universidade Tecnológica Federal do Paraná | - |
Publicador: dc.publisher | Campo Mourao | - |
Publicador: dc.publisher | Brasil | - |
Publicador: dc.publisher | Departamento Acadêmico de Computação | - |
Publicador: dc.publisher | Ciência da Computação | - |
Publicador: dc.publisher | UTFPR | - |
Direitos: dc.rights | openAccess | - |
Palavras-chave: dc.subject | JavaScript (Linguagem de programação de computador) | - |
Palavras-chave: dc.subject | Software - Desenvolvimento | - |
Palavras-chave: dc.subject | Gerenciamento de configurações de software | - |
Palavras-chave: dc.subject | JavaScript (Computer program language) | - |
Palavras-chave: dc.subject | Computer software - Development | - |
Palavras-chave: dc.subject | Software configuration management | - |
Palavras-chave: dc.subject | CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO | - |
Título: dc.title | Um estudo empírico sobre breaking changes no ecossistema do NPM | - |
Título: dc.title | An empirical study of breaking changes in the NPM ecosystem | - |
Tipo de arquivo: dc.type | livro digital | - |
Aparece nas coleções: | Repositorio Institucional da UTFPR - RIUT |
O Portal eduCAPES é oferecido ao usuário, condicionado à aceitação dos termos, condições e avisos contidos aqui e sem modificações. A CAPES poderá modificar o conteúdo ou formato deste site ou acabar com a sua operação ou suas ferramentas a seu critério único e sem aviso prévio. Ao acessar este portal, você, usuário pessoa física ou jurídica, se declara compreender e aceitar as condições aqui estabelecidas, da seguinte forma: