Notas de Lançamento da versão 0.10.5 do IPM
A versão 0.10.5 do IPM foi lançada em 15 de janeiro de 2026. Esta nova versão contém diversas melhorias e correções de bugs, então não deixe de conferir diretamente na página do GitHub ou no Registro da Comunidade!
As principais mudanças incluem:
- Uma reescrita da resolução de dependências que melhora drasticamente o desempenho, incluindo um aumento de velocidade de 200 vezes em casos muito complexos.
- Um registro de histórico que rastreia as instalações, carregamentos, atualizações e desinstalações do IPM, que pode ser visualizado usando o comando zpm "log".
- Expressões de sistema, como ${namespace}, e macros `$$$` agora são avaliadas em arquivos de mesclagem CPF, permitindo maior flexibilidade na configuração inicial.
- O método
<Invoke>no arquivo `module.xml` agora se comporta de forma mais intuitiva, verificando sempre o valor de retorno %Status somente se a assinatura do método declarar que `%Status` é retornado. Isso significa que um erro será lançado se nada for retornado, se o valor de retorno não for `%Status` ou se não for $$$OK.
Segue a lista completa de alterações:
Adicionado
- #938: Adicionada a flag
-export-python-depsao comandopackage- #462: O comando
repopara configuração de repositório agora suporta o modo de entrada secreta de senhas com a flag-password-stdin- #935: Adicionado um processador de recursos genérico para JFrog Artifactory em formato tarball para empacotar artefatos com um pacote e implantá-los em um local final durante a instalação.
- #950: Adicionado suporte para listar pacotes Python instalados usando
list -python,list -pyelist-installed -python- #822: O processador de recursos CPF agora suporta expressões e macros do sistema em arquivos de mesclagem CPF
- #578: Adicionada funcionalidade para registrar e exibir o histórico do IPM de instalação, desinstalação, carregamento e atualização
- #961: Adicionada a criação de um arquivo de bloqueio para um módulo usando a flag
-create-lockfiledurante a instalação.- #959: Nos repositórios ORAS, o nome externo agora pode ser usado de forma intercambiável com o nome (padrão) para instalação e atualização, ou seja, um módulo publicado com seu nome (padrão) pode ser instalado usando seu nome externo.
- #951: O comando
unpublishignorará a solicitação de confirmação do usuário se a flag-forcefor fornecida.- #1018: Exigir o nome do módulo para desinstalação quando a flag
-allnão for usada.Alterado
- #316: Todos os parâmetros, exceto o modo de desenvolvedor, incluídos em um comando de
load,installouupdateserão propagados para as dependências.- #885: Sempre carregar as dependências de forma síncrona e permitir que cada módulo execute multithreading conforme necessário para carregar usando multicompile, em vez de tentar executar seu próprio multithreading para o carregamento de itens, o que causa contenção de bloqueio ao ignorar o compilador IRIS.
- #481: Melhorar o desempenho do BuildDependencyGraph fazendo o seguinte:
- Eliminar a recursão e usar iteração.
- Remover a busca em profundidade e realizar uma busca em largura pura.
- Obter um cache melhor dos resultados para buscas de módulos, consolidando expressões de busca (reduzindo expressões que são interseções).
Removido
- #938: Remoção do tratamento da flag secreta NewVersion em %Publish()
Corrigido
- #943: O comando
load, quando usado com uma URL de repositório do GitHub, aceita novamente um argumentobranch.- #701: Corrigidos comentários de ajuda enganosos sobre o comando
search.- #958: O comando
updatenão deve falhar prematuramente se um nome externo for usado.- #970: Correção: Resolvido erro no processamento do WebApp com o comando
generate.- #965: O comando
fileCopyem um diretório com um nome sem a barra inicial agora funciona.- #937: Publicar um módulo com um
<WebApplication>contendo umPathnão gera mais erros.- #957: Mensagens de erro aprimoradas para a execução de comandos do sistema operacional. Agora, quando um comando falha, a mensagem de erro inclui o comando completo e seu código de retorno. Também foi corrigida a separação de argumentos para o comando
attribdo Windows e removido o tratamento de erros enganoso para comandos ausentes.- #789: Corrigido erro ao listar módulos para um repositório ORAS com um namespace especificado.
- #999, #1000: A instalação do IPM limpa mapeamentos obsoletos usados em versões antigas do IPM.
- #1007: A expressão
${ipmDir}agora funciona no argumento<Arg>de um<Invoke>.- #1015: Corrigidos bugs de resolução de dependências onde
*como requisito de versão e intervalos sobrepostos não funcionavam corretamente.- #1036: O comando
updatenão propaga mais o modo de desenvolvedor para as dependências.Obsoleto
- #828: The
CheckStatusflag for<Invoke>action has been deprecated. Default behavior is now to always check the status of the method if and only if the method signature returns %Library.Status- #885:
-synchronousflag since loading dependencies synchronously is now the default behavior.- #828: A flag
CheckStatuspara a ação<Invoke>foi descontinuada. O comportamento padrão agora é sempre verificar o status do método somente se a assinatura do método retornar %Library.Status.- #885: Flag
-synchronous, já que o carregamento síncrono de dependências agora é o comportamento padrão.Segurança
- O pacote urllib3 foi atualizado para a versão 2.6.3.
Se você tiver alguma dúvida, sugestão ou bug que queira relatar, fique à vontade para fazê-lo aqui ou na página do GitHub. (No GitHub, perguntas e sugestões devem ser enviadas para a página de discussões e bugs para a página de problemas.)
Ir para o posto original escrito por @Dominic Chui
Discussão (0)0